source: trunk/CHANGES.OS2@ 1112

Last change on this file since 1112 was 1095, checked in by Dmitry A. Kuminov, 14 years ago

CHANGES.OS2: Small typo.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Revision Author Id
File size: 35.5 KB
Line 
1This document contains a brief list of the most important OS/2-specific changes
2in the Qt library from release to release.
3
4
5CHANGES
6
7
84.7.3 (15-09-2011)
9
10 Improvements:
11
12 - general: Updated Qt codebase to version 4.7.3 (see the changes-4.7.3 file
13 for details). This version should be binary compatible with the previous
14 version of Qt for OS/2.
15
16 - general: Enable building the QtDeclarative and QtWebKit libraries by
17 default.
18
19 - corelib: QProcess: Implemented new I/O pipe notification mechanism that
20 fixes a number of issues such as hangs and truncated data during inter-
21 process communication using redirection of standard I/O channels.
22
23 - corelib: Make the native QFileSystemWatcher engine a singleton to reduce
24 the number of clients connecting to the server (part of XWP) that has a
25 limit on the number of connections.
26
27 - corelib: Make the native QFileSystemWatcher recognize file changes (i.e.
28 changes in file date/time/size) using a special poller thread. The original
29 OS/2 file notification mechanism (used by XWP) does not report such changes.
30
31 - corelib: QDir: Filter out "." and ".." from root directory listings to be
32 consistent across different IFSes and to match Windows behavior.
33
34 - gui: QSound: Use shared mode by default.
35
36 - gui: Include higher res pixmaps in icons returned by
37 QCommonStyle::standardIcon().
38
39 - gui: Make QFileSystemModel put "." and ".." entries first.
40
41 - gui: Take style icons for SP_FileIcon & SP_DirIcon from QFileIconProvider
42 by default.
43
44 - gui: Disable native window masking code as it is not complete (doesn't
45 work properly in DIVE mode).
46
47 - gui: Add support for short DLL names of QML plugins.
48
49 - gui: Enable linking to cups.dll at runtime (requires CUPS 1.4.8 and above).
50
51 - xsystray: Paint an empty box for NULL icons instead of leaving the old icon
52 if it was not NULL.
53
54 - xsystray: Fixed duplicate mouse click notifications.
55
56 - qmake: Make the shadow build mode work (both for Qt itself and for other
57 qmake-based applications).
58
59 - qmake: Do not shorten library names for DLLs when TARGET_SHORT is used.
60 This allows to use the same library name on all platforms.
61
62 - qmake: Added support for .SYM file generation on OS/2 (controlled by the
63 'sym' CONFIG option, which is present in release builds by default).
64
65 - qmake: Added replace functions 'fixpath_target' and 'fixpath_local'.
66
67 - qmake: Always add project directory to INCLUDEPATH. This makes individual
68 per-project 'INCLUDEPATH += .' statements unnecessary.
69
70 - qmake: Support FAST_BUILD make macro in generated Makefiles to disable slow
71 noncritical steps like .sym file generation.
72
73 - qmake: Recognize QMAKE_TARGET_VERSION in .pro which allows to embed the
74 version to EXE/DLL like VERSION but w/o appending the major version suffix
75 to the DLL name.
76
77 - qmake: Let INSTALL_ROOT override the dirve letter too to be able to redirect
78 make install to another drive.
79
80 - configure.cmd: Support build type options (-release, -debug,
81 -debug-and-release, -developer-build, -make and -nomake). Run with --help
82 or details.
83
84 - configure.cmd: Enable building examples by default.
85
86 Fixes:
87
88 - corelib: QProcess: Don't close the stdin pipe until the child reads it all.
89
90 - corelib: QProcess: Use dup()/dup2() instead of DosDupHandle() to make sure
91 the child process sees the correct state of stdin/out/err (e.g. isatty()).
92
93 - corelib: QProcess: Fixed the way how pipes are closed to makes sure that
94 feof() will return 1 and ferror() will not return 1 on the child end of the
95 pipe connected to its stdin. This fixes programs relying on these functions.
96
97 - corelib: QProcess: Fix possible hangs when using syncronous wait functions
98 in a GUI program.
99
100 - corelib: Fixed spontaneous failures to create native QFileSystemWatcher
101 objects.
102
103 - corelib: Don't eat drive letters in QDir::cleanPath() for paths like
104 "D:/../../mydir" (which would become "mydir").
105
106 - gui: Make sure that modal widgets never go behind the blocked widgets.
107
108 - gui: Make blocked widgets always follow the modal widget on Z-order change.
109 This makes sure that bringing the modal widget to front also raises all
110 widgets it blocks (keeping them right under it in the same Z-order).
111
112 - gui: Fixed the assertion in QPixmap::setMask() that could also lead to
113 creating pixmaps w/o masks.
114
115 - gui: Fixed creating HPOINTERs from QPixmaps with no mask. This fixes
116 setting PNG files with no mask as top-level window icnos.
117
118 - gui: Do not attempt to natively hide widgets with no handle and fix
119 hiding reparented child widgets with native handles.
120
121 - gui: Create native IDs (HWNDs) for all siblings and children of the widget
122 when its native ID is requested. This is for proper clipping and to be
123 compatible with other platforms.
124
125 - gui: Don't destroy widget's HWND on reparent until children are reparented,
126 otherwise all children with native HWNDs will be deleted.
127
128 - gui: Fix position errors on resize of child widgets during complex geometry
129 changes (e.g. manually changing the geometry of a layout-managed widget).
130
131 - gui: Fix Qt Assistant remote control which would only process
132 '\0'-terminated commands.
133
134 - gui: Fix signal recursion at Assistant startup in remote control mode that
135 could cause 100% CPU load.
136
137 - qmake: Fixed a hang when compiling .RC files with too long include paths.
138
139 - qmake: Don't call lxlite on phony targets.
140
141 - qmake: Make sure string quotes in DEFINES statements are processed
142 correctly (similar to other platforms).
143
144 - qmake: Several small fixes to path quoting and slashes that could cause
145 various build and install problems under certain conditions.
146
147 - uic: Fixed doubling EOLs (CRs) in pipe mode.
148
149
1504.6.3 (19-11-2010)
151
152 Improvements:
153
154 - general: Updated Qt codebase to version 4.6.3 (see the changes-4.6.3 file
155 for details). This version should be binary compatible with the previous
156 version of Qt for OS/2.
157
158 - general: qmake uses .NOTPARALLEL for some targets to support parallel
159 building of complex applications with the -jN GNU make option.
160
161 - corelib: Significantly improve the performance of directory iterators
162 walking through directories with thousands of files on slow file systems
163 with inefficient cache policies [based on patch by rudi].
164
165 - corelib: Don't report non-existent floppy drives in QDir::drives(). This
166 makes letter A: and B: disappear from standard file dialogs in case if the
167 computer doesn't have the floppy controller at all or it is disabled in BIOS
168 [patch by rudi].
169
170 - corelib: Implemented QSysInfo::os2Version(). Fixes the UserAgent string
171 in QWebKit-based browsers.
172
173 - corelib: Fixed: Hang when attempting to stop the file watcher thread after
174 reusing it for more than one directory (e.g. like in the standard file
175 dialog).
176
177 - network: Added OpenSSL support. This enables visiting web sites using the
178 secure HTTPS protocol in Qt based web-browser applications.
179
180 - network: Improved network disk cache performance by reducing the number of
181 stat() calls twice when expiring the cache items [based on patch by rudi].
182
183 - network: More verbose error messages from QLocalServer/QLocalSocket instead
184 of just "Unknown error".
185
186 - network: QNetworkInterface::hardwareAddress() returns a real MAC and
187 netmask() returns a correct value.
188
189 - plugins: Enabled the MySQL and PostgresSQL Qt plugins. Note that these
190 plugins require MySQL and PostgresSQL DLLs to be installed.
191
192 - gui: DIVE: Detection code of the Panorama video driver now detects the
193 driver presence in memory rather than what will be loaded on next reboot.
194 This also solves redraw problems in cases where Panorama is installed
195 together with some other video extension -- the old method could not
196 detect Panorama and would enable DIVE leading to screen corruption.
197
198 - gui: Send PDF data to a CUPS printer on by default if CUPS is version 1.4.4
199 or above (where printing PDF data was fixed).
200
201 - gui: QCommonStyle::standardIconImplementation(): Generate the stanrad small
202 and/or large icon size if it is missing from the stock icon to avoid icon
203 size differences in e.g. file dialogs.
204
205 - webkit: Try to allocate memory blocks in high memory on OS/2 first and fall
206 back to low memory on failure.
207
208 Fixes:
209
210 - general: Fixed: configure.cmd would not work in Object REXX bmode.
211
212 - corelib: Fixed a deadlock during alien thread termination (copy-paste bug)
213 [found by komh].
214
215 - corelib: Fixed: QProcess::startDetached() would fail with a certain set of
216 arguments [patch by rudi].
217
218 - network: Fixed: QLocalServer/QLocalSocket: Make sure the socket path name
219 always starts with "\socket\". This fixes applications that use local
220 sockets for single application instance detection [based on patch by rudi].
221
222 - network: Fixed: Filter out garbage entries returned by ioctl(SIOCGIFCONF) on
223 OS/2 so they don't appear in the QNetworkInteface::allInterfaces() list.
224
225 - network: Fixed: QLocalServer could hang forever in the destructor trying to
226 close the listen socket being watched by a socket notifier. This fixes the
227 Assistant application hang at startup.
228
229 - gui: Fixed: Doing Drag-n-Drop over a Qt target in DIVE mode would corrupt
230 the window contents.
231
232 - gui: Fixed: Children with real HWNDs (a.k.a native widgets) were painted
233 over by the parent widget causing annoying flicker (smplayer).
234
235 - gui: Fixed: In Dive mode, the screen would get corrupted if the application
236 created a child window with a real HWND (as e.g. smplayer does).
237
238 - gui: Fixed: Qt Assistant would corrupt screen at startup in DIVE FB mode
239 [based on patch by rudi].
240
241 - gui: Fixed: DIVE mode was unreasonably disabled in 24-bit color depth
242 display modes.
243
244 - gui: Fixed: Path separator was missing in the output file name when printing
245 to a PDF or PS file in the print dialog.
246
247 - gui: Fixed QFileDialog: Item height in the side bar was increased by
248 increasing icon size which caused ugly icon scaling. Now the item size hint
249 is used instead (based on the normal item height) [vendor bug].
250
251 - gui: Fixed: Possible crash and an endless PM event loop recursion when
252 re-parenting widgets in DIVE mode. This could be seen when dragging a
253 toolbar out of the dock widget, dragging it back then closing the
254 application (crash) or attempting to drag the toolbar out again (endless
255 recursion).
256
257 - gui: Fixed: Assertion shown when dragging the "Computer" item in the side
258 bar of the file dialog.
259
260 - gui: Fixed: QCups would try to unlink() a NULL path which crashed some
261 libc implementations [vendor bug].
262
263 - gui: Workaround: Set O_BINARY for temporary file descriptors we get from
264 CUPS when printing using the PDF engine to avoid file contents corruption.
265
266 - gui: Fixed: Starting the drag operation would take the Qt focus away and
267 close all popups which is unexpected.
268
269 - gui: Fixed: Repainting the widget during Drag-n-Drop outside the
270 drag*Event() callbacks would cause screen corruption under the mouse pointer
271 in DIVE mode.
272
273 - gui: Fixed: Pressing Shift[+Ctrl]]+<numpad_digit> generated digits in
274 NumLock ON mode instead of cursor movement events (which is necessary to
275 make it possible to select text using numpad keys with Shift pressed.
276
277 - gui: Fixed: Hiding the main application window programmatically with
278 QWidget::hide() and then showing it again with QWidget::show() would not
279 activate it from the Qt point of view which prevented the child widgets from
280 getting the keyboard focus (and input).
281
282 - gui: Fixed a crash that could happen at program termination in DIVE mode if
283 a top-level window had a native HWND window embedded in it.
284
285 - gui: Fixed SIGSEGV on SSE2 processors due to misaligned m128i variables
286 on stack (an OS/2-specific GCC 4.x compiler bug).
287
288 - webkit: Fixed: Symbols typed with AltGr as a shift modifier could not be
289 entered in line entry fields in WebKit-based applications.
290
291 - webkit: Fixed: posix_memalign() broken in kLIBC 0.6.3/4 whould crash in
292 QWebKit under heavy memory consumption conditions.
293
294
2954.6.2 (14-05-2010)
296
297 Improvements:
298
299 - general: Updated Qt codebase to version 4.6.2 (see the changes-4.6.2 file
300 for details). Note that this version is binary incompatible with the
301 previous version (see README.OS2 for more information).
302
303 - general: Implemented support for the OS/2 platform in the webkit module. The
304 webkit module is used in many complex web-based applications such as web
305 browsers to implement the JavaScript support. Note that the script module
306 uses the JavaScript implementation from the WebKit project too and it was
307 also ported to OS/2. The webkit module is always present in the official Qt
308 build but is disabled by defautl in the custom builds due to big compilation
309 times.
310
311 - general: Use declspec(dllexport) on OS/2 to significantly reduce the number
312 of exports in generated DLLs. This mode is on by default which reduces the
313 number of exported symbols by 90-100% in Qt DLLs and makes it not necessary
314 to split the QtGui DLL in 3 parts in debug mode. The old method which causes
315 all public symbols to be exported is still available using the "export_all"
316 CONFIG option (see README.OS2 for details).
317
318 - general: Provide the "doc" WPI archive that contains the Qt reference
319 documentation.
320
321 - corelib: Implemented native (XWP-based) file system watcher for OS/2 that
322 does not eat CPU (which is best noticed in file dialogs showing directories
323 containing hundreds of files. Requires XWorkplace to be installed.
324
325 - corelib: Implemented deriving the defaut locale from the process country
326 code if LANG is not set and integration with the system locale object
327 (System Setup -> Country Palette). See the QT_PM_NO_SYSTEM_LOCALE
328 description in README.OS2 for details.
329
330 - gui: Implemented printing support through CUPS. Refer to section "PRINTING
331 SUPPORT" in README.OS2 for details.
332
333 - gui: Implemented painting in widgets using DIVE (direct interface video
334 extensions). Using DIVE gives a significant graphical performance boost, up
335 to 100% in BLIT mode and 130% in FBSWM mode, depending on the combination of
336 the graphics hardware, video driver and the current screen mode. See the
337 QT_PM_DIVE and QT_PM_NO_DIVE description in README.OS2 for more details.
338
339 - gui: Improved the painting speed when not using DIVE. The performance boost
340 varies from 30% to 200% (e.g. 3 times faster), depending on the combination
341 of the graphics hardware, video driver and the current screen mode.
342
343 - gui: Enabled MMX/SSE support (on by default) to speed up graphical
344 operations by a couple of percents.
345
346 - gui: Enabled accessibility support on OS/2. Note that in order to use the
347 accessibility functions, a QAccessibleBridge plugin for the corresponding
348 accessibility device is necessary but none of them exist at the present
349 time.
350
351 - gui: Use native file icons in standard Qt file dialogs.
352
353 - assistant: Enabled the help module and made the Qt Assistant tool build on
354 OS/2. Also enabled help and assistant examples and demos.
355
356 - demos: Enabled the browser demo application that makes use of the webkit
357 module.
358
359 - demos: Enabled the qtdemo example that demonstrates all Qt features and
360 acts as a launcher for other example and demo applications.
361
362 - gnumake/os2-g++: Switch the compiler to using the i486 instruciton set for
363 code generation. This gives around 3% of the performance boost when
364 painting. As a drawback, the code will no longer run on i386 PCs but it is
365 assumed that it does not make sense to use Qt4 on these computers.
366
367 Fixes:
368
369 - general: Fixed: Building Qt applications with the "dev" WPI archive would
370 fail due to extra spaces in the output object file names.
371
372 - corelib: Fixed: Regular files were treated as sequential streams which made
373 the seek functionality unavailable. This in particular affected Qt Designer
374 that didn't expect sequential streams when reading .ui files and refused to
375 load files bigger than 8192 bytes as a result.
376
377 - corelib: Make sure the hardware error popup dialogs do not appear when
378 opening the standard Qt file dialog and selecting a removable drive with no
379 media inserted even with AUTOFAIL=YES in CONFIG.SYS
380
381 - corelib: QProcess: Fixed: Data could not be successfully read or written to
382 the standard streams of the started process in 'highmem' link mode (which is
383 on by default since 4.5.1 GA), as well as in normal link mode in some
384 situations.
385
386 - corelib: Fixed QProcess::startDetached() which would not work in 'highmem'
387 mode.
388
389 - corelib: QProcess: Fixed: Having stderr of a started child process
390 redirected to a pipe (which is the default) would indirectly cause an
391 impossibility to write anything to its stdin.
392
393 - corelib: QProcess: Get rid of the unexpected "DosQueryNPipeSemState returned
394 87" warning.
395
396 - corelib: QFileSystemWatcher: In the fall-back polling watcher, increased the
397 sleep time between checks of all watched files from 1 second to 3 seconds to
398 decrease the CPU load on big sets of watched files. Also, replaced the sleep
399 between checking individual items with the yield call as it doesn't give
400 significant improvement but just causes more CPU cycles to be spent between
401 each check.
402
403 - corelib: Always return true from QFileInfo::isRoot()/isDir() for paths
404 referring to root directories of drives with no media and always return
405 false from QFileInfo::exists() for them. Also, don't lstat() on such paths
406 since they are definitely not symlinks. This improves the file dialog
407 appearance and behavior for removable drives.
408
409 - corelib: Protect against the frozen system when QSocketNotifier is given an
410 unsupported socket (for example, an OS/2 file handle). There is still 100%
411 CPU load in this case, but the application can be at least closed using
412 normal means.
413
414 - corelib: Sockets: Fixed: "has data to read" socket notifications would be
415 sometimes delivered with a delay depending on the frequency of timers which
416 could significantly slow down network data transfer.
417
418 - corelib: QTemporaryFile: Fixed: Files were opened in O_TEXT mode which
419 caused unexpected LF <-> CRLF translation. In particular, this broke
420 QNetworkDiskCache functionality (seen in e.g. demos/browser as missing
421 images and CSS sheets when read from cache).
422
423 - corelib: Fixed: Clear FPU CW in qdtoa() to avoid the floating point
424 exception in various scenarios [patch by rudi].
425
426 - gui: Fixed assertion in QVector::at() at startup.
427
428 - gui: Fixed assertion at #1125 in qwidget.cpp (due to an attempt to
429 re-instantiate QDesktopWidget during application termination).
430
431 - gui: Select the correct icon for the drive letter in standard file dialogs
432 depending on the drive type (floppy, hard disk etc) [patch by rudi].
433
434 - gui: Fixed crash in PMMERGE during resize & move of the top level window
435 with the complex layout (caused by reading outside the bitmap data).
436
437 - gui: Fixed: Never add tooltip windows to the top-level window list and only
438 do so for splash windows if they have the Qt::WindowTitleHint flag set.
439
440 - 3rdparty: Added OS/2 support to clucene used by the help module for fulltext
441 search in help files [based on the patch by rudi].
442
443 - configure.cmd: Fixed: QT_BUILD_KEY (and QLibraryInfo::buildKey()) would
444 always contain "release", even in debug builds, which caused debug builds to
445 load the release plugins and refuse the debug ones.
446
447 - qmake/os2-g++: Use -Wl, to pass the object list response file to the
448 linker as is instead of the expanded list of objects (this overcomes the
449 64KB limitation of the total process command line length in OS/2).
450
451
4524.5.1 GA (05-02-2010)
453
454 Improvements:
455
456 - general: Switched the compiler to the GCC 4.4.2 build provided by Paul
457 Smeldey. This gives better standard conformance, better code optimization
458 and provides more compact DLLs and EXEs whose size is greater than ~1M.
459
460 - corelib: QSettings: Use IniFormat (plain INI files) when NativeFormat is
461 requested instead of the Open32 registry which is known to be unstable and
462 can be easily corrupted. The old behavior may be restored using the
463 QT_PM_REGISTRY environment variable.
464
465 - corelib: Use UniStrcoll for QString::localeAwareCompare() for locale-aware
466 comparison of NLS strings.
467
468 - gui: Implemented full Direct Manipulation (Drag And Drop) support. This
469 includes dragging text, URLs and files between PM and Qt applications,
470 dragging any MIME data across Qt applications, setting custom drag pointer
471 pixmaps, painting in widgets while dragging.
472
473 - gui: Implemented session management with the QSessionManager class.
474
475 - gui: Fully implemented the QDesktopServices class.
476
477 - gui: Added support for numpad keys and for some common multimedia keys
478 recognized by eCS (volume, home, search, favorites).
479
480 - gui: QCursor: Added missing cursor shapes and implemented support for custom
481 cursor shapes.
482
483 - gui: Implemented QFontDatabase::addApplicationFont()/removeApplicationFont()
484 and friends.
485
486 - gui: Implemented proper generation of possible key and modifier combinations
487 for a given key event. This in particular enables Ctrl+<letter> shortcuts
488 for non-Latin languages and also makes Ctrl+<letter>, Alt+<letter> and
489 similar shortcuts language-neutral.
490
491 - gui: QWidget: When setting the parent, take the parent's resolve masks to
492 make sure attributes imposed by the user on the parent won't be overriden
493 byv the natural palette for this widget if it differs from
494 QApplication::palette() [vendor bug].
495
496 - gui: Use a normal border for top-level Tool widgets since the thin one is
497 too thin and cannot be resized.
498
499 - gui: Implemented delivering of QEvent::NonClientAreaMouse* events to
500 top-level widgets. This enables undocked dock widgets to be docked back by
501 a double click on the title bar and also by moving over the dock areas.
502
503 - plugins: Enabled the sqlite3 plugin which makes the sql module (and
504 applications depending on it) actually usable.
505
506 - tools: Enabled the Qt Designer application.
507
508 - tools: Enabled the following toos: pixeltool, q3toq4, xmplatterns.
509
510 - qmake/os2-g++: Recognize the "map" option in the CONFIG variable that allows
511 to turn the generation of .map files on and off. The option is set by
512 default.
513
514 - qmake/os2-g++: Recognize the "highmem" option in the CONFIG variable that
515 allows to enabled memory support in LIBC for genereated DLLs and
516 executables. The option is set by default.
517
518 Fixes:
519
520 - corelib: Created wrappers for all Win* and Gpi* calls that restore the FPU
521 Control Word to what C/C++ programs expect. This fixes crashes in various
522 Qt applications (e.g. mp3diags) due to SIGFPE.
523
524 - corelib: QLibraryInfo: Fixed: qt.conf would not have been loaded if a
525 component path was requested before QCoreApplication instance creation.
526
527 - corelib: QLibraryInfo: Changed default "Settings" path to %ETC%/xdg.
528 Also use %ETC%/qtsys.conf as the system-wide qt.conf instead of
529 %ETC%/qt/qtsys.conf.
530
531 - corelib: QFSFileEngine: Fixed: On OS/2, trailing spaces in file names are
532 ignored ("readme " = "readme") but kLIBC doesn't handle this well so strip
533 them before passing to LIBC APIs.
534
535 - corelib: QFile::copy(): Use DosCopy() instead of read/write.
536
537 - corelib: Fixed: QProcess::startDetached() would either crash or fail to
538 start a process.
539
540 - corelib: Fixed: QFileInfo::isExecutable() would return true for all files on
541 local OS/2 file systems.
542
543 - gui: Fixed: Popups shown when another application is active were not
544 controllable with keyboard and didn't close on an outside mouse click.
545
546 - gui: Fixed: Visible title bar and frame of the top-level window after
547 switching to fullscreen.
548
549 - gui: Fixed: Wrong widget-relative mouse position in mouse events. This fixes
550 problems with dragging widget splitters (separators) in applications using
551 dock widgets.
552
553 - gui: Fixed: QEvent::Enter/Leave events were delivered incorrectly if the
554 alien child widget belonging to a native parent intersected with a native
555 child of this parent (this in particular caused extended tool bars to
556 immediately un-extend once the mouse moves over the extended part).
557
558 - gui: Fixed: Mouse press events replayed after closing the popup by clicking
559 outside it had incorrect coordinates. This resulted into various kinds of
560 misbehavior including spatial text selection in QTextEdit widgets after
561 closing popups by clicking inside these widgets.
562
563 - gui: Fixed: The default application icon embedded into the executable was
564 not actually used as the default window icon for top-level widgets.
565
566 - qmake/os2-g++: Do not use EXEPACK tool on static libraries.
567
568 - qmake: Several fixes to make install targets work correctly.
569
570
571Beta 5 (06-12-2009)
572
573 Improvements:
574
575 - gui: Added support for the system clipboard. Qt can now exchange plain text,
576 HTML (Mozilla application suite) and bitmaps with other PM applications, as
577 well as all supported MIME data types with other Qt-based applications.
578
579 - corelib: Use system unicode conversion routines to convert from the system
580 code page to Unicode and back. This makes it unnecessary to specify the
581 system encoding in the LANG environment variable -- Qt will use the system
582 encoding of the current process.
583
584 - gui: Implemented support for the IME input box (used on DBCS systems) in Qt
585 applications with a known limitation that the input box is always positioned
586 at the lower left corner of the top-level window.
587
588 - gui: Improved font handling on DBCS systems (patch by komh):
589 * Read national face names from font files instead of always taking the
590 Latin name.
591 * Use the PM_AssociateFont registry key to select a fallback font for
592 missing characters.
593
594 - gui: Implemented QPixmap::grabWindow() which takes a screenshot of a window.
595
596 - gui: Steal the Alt key from the PM which prevents the PM system menu to be
597 shown when single Alt is pressed in a Qt application. The system menu may
598 still be called using Alt+Space. Note that this also disables all default
599 shortuts from the system menu (Alt+F7, Alt+F10 etc.) so that they available
600 to Qt applications now. Exceptions are Alt+F4, Ctrl+Esc, Alt+Esc which are
601 not passed to Qt and will function as in regular PM applciations.
602
603 - general: Binary Qt library builds are made portable: they do not contain
604 hard-coded paths to various Qt components any more and use relative
605 locations whenever possible. See
606 http://svn.netlabs.org/qt4/browser/tags/4.5.1-os2-beta5/doc/src/qt-conf.qdoc
607 for more info.
608
609 - corelib: Improved the polling QFileSystemWatcher implementation so that it
610 doesn't eat all CPU when there are more than 100 items to watch, like when
611 showing a file open dialog with many files in a directory.
612
613 - qmake: Improved processing of the project library list (LIBS variable) to
614 avoid appearance of raw library names that require substitution (fixes the
615 debug build of linguist).
616
617 - qmake: Added support for DEF_FILE_VERSION, DEF_FILE_DESCRIPTION and
618 DEF_FILE_VENDOR project variables that allow to embed the description
619 string into a generated DLL or executable. For compatibility with other
620 platforms, these variables by default are mapped to VERSION,
621 QMAKE_TARGET_PRODUCT + QMAKE_TARGET_DESCRIPTION + QMAKE_TARGET_COPYRIGHT and
622 QMAKE_TARGET_COMPANY, respectively.
623
624 Fixes:
625
626 - gui: Table views showed alternate rows in black color instead of light gray.
627
628 - gui: If some font style (e.g. Bold) does not provide characters for some
629 script (e.g. Cyrillic) while the Normal style does, a different font will be
630 chosen for Bold Cyrillic instead of drawing empty boxes.
631
632 - corelib: Fixed two issues related to loading text codec plugins from the
633 application's directory.
634
635 - corelib: Fixed QDir::absoluteFilePath(), midir()/mkpath(), rmdir()/rmpath()
636 that didn't properly handle relative and UNC paths which could cause various
637 path-related failures.
638
639 - corelib: Properly report root directories of drives to Qt. This makes
640 letters of removable drives always seen by Qt (for example, in the file open
641 dialog) even if the medium isn't currently inserted.
642
643 - corelib: Fixed unnecessary access to removable drives and a long delay and
644 noice caused by it when showing a file open dialog in Qt applications.
645
646
647Beta 4 (11-11-2009)
648
649 Improvements:
650
651 - Added sound support (implemented QSound class).
652
653 - Added system tray support (QSystemTrayIcon class). This support requires
654 the Extended system tray XCenter plugin to be installed. See the note above
655 on how to compile and install this plugin.
656
657 - Enabled QPlugin support on OS/2. This in turn enables SVG support for
658 QIcon (which is built as a Qt plugin DLL by default).
659
660 - Better widget modality support (widgets blocked by modality cannot be
661 activated and moved using the mouse and the title bar anymore).
662
663 - Added support for 'console' and 'windows' CONFIG options in .pro files.
664 Now, if 'windows' is present, the target executable will have the WINDOWAPI
665 attribute set which effectively makes it a PM application. This, in
666 particular, disables standard input, output and error streams so that when
667 started, the application will not have a console window attached to it.
668 By default, 'console' mode is active unless you perform a release build and
669 the application is linked against the QtGui library ('QT = gui' in .pro),
670 in which case the default is 'windows'.
671
672 - Improved paint speed in Qt windows which should increase overall graphical
673 UI performance by 10%-20% in Qt4 applications.
674
675 - Implemented setting window icons for top-level windows (using
676 QWidget::setWindowIcon()).
677
678 - Added LxLite support to provide compression for executables and DLLs. The
679 compression is controlled by the 'exepack' CONFIG option which is turned on
680 by default for release builds if the LxLite executable is present in PATH
681 during the configure.cmd invocation. The compression may be turned off on a
682 per-project basis by adding a 'CONFIG -= exepack' line to the .pro file.
683
684 - Improved the section of this README.OS2 file that describes how to properly
685 set the LANG variable to have correct national characters in file names and
686 in window titles of Qt applications.
687
688 Fixes:
689
690 - QProcess: The executable's path was not always added to BEGINLIBPATH.
691
692 - Fixed-size top-level widgets could not be moved.
693
694 - Application crash after pressing a button in a dialog window that resizes
695 this dialog (for example, makes it bigger to show more information).
696
697 - Resizing top level windows using the top border broke mouse coordinates so
698 that Qt tought you pressed the mouse button in a different place of the
699 window than where you actually did it.
700
701 - Events posted with QCoreApplication::postEvent() were only processed upon
702 receiving a next message from the system. This caused funny delays such as
703 controls in a Qt window still indicating the input focus (the dotted
704 rectangle) after the window was deactivated and losing this indication only
705 when the mouse pointer was moved over the window.
706
707 - Don't replay mouse button press on a push button that is showing a popup
708 menu but instead hide the popup menu and unpress the button to get more
709 native look and feel.
710
711 - Deactivating the window with a push button showing a popup menu would hide
712 the popup but leave the button pressed.
713
714 - Fixed incorrect Qt dirty widget region calculation when processing WM_PAINT
715 messages. This fixes a lot of redraw problems (menu items in the main menu
716 bar, text in combo-boxes, various redraw problems in smplayer when switching
717 interfaces and going to/from fullscreen, and similar).
718
719
720Beta 3 (17-10-2009)
721
722 Improvements:
723
724 - Added proper font support. All outline (scalable) fonts visible in the Font
725 Palette should be now recognized by Qt. The fonts are hinted and antialiased
726 using the Freetype2 library when drawing text.
727
728 - System fonts and colors are now used by default for Qt widgets.
729
730 - configure.cmd now generates the main Makefile to simplify building of Qt.
731
732 - corelib: QProcess: Implemented child termination detection.
733
734 - corelib: QProcess: Implemented redirection to another QProcess.
735
736 - corelib: QProcess now uses native pipes for stream redirection. This fixes
737 various issues like 'Socket operation on non-socket' errors during
738 parent-child communication.
739
740 - corelib: QProcess: Make sure that the directory containing the executable
741 file is always searched (first) for DLLs needed by this executable. This
742 makes it unnecessary to change the current directory to the executable's
743 directory or add it to LIBPATH before starting the Qt application.
744
745 - corelib: QProcess can now start applications of different type (e.g. PM
746 applications from text-mode applications) directly.
747 QProcess::startDetached() also works.
748
749 - qmake: In debug_and_release mode, 'release-(all|clean|distclean|install|
750 uninstall)' and 'debug-(all|clean|distclean|install|uninstall)' make
751 targets are now available.
752
753 Fixes:
754
755 - Doing 'make clean' could result into a hang due to CMD.EXE command line
756 length limitation.
757
758 - corelib: Fixed: QProcess: Lost data during stream redirection.
759
760 - corelib: QSettings could sometimes distort data when saving it to the
761 registry (by replacing some characters with codes 0x80 and above with '?').
762
763
764Beta 2 (17-09-2009)
765
766 Improvements:
767
768 - Ported the network module (QtNetwork4.dll) and added to the default build.
769
770 - Added modules sql, svg, xmlpatterns, scripttools, plugins to the default
771 build.
772
773 - gui: Added recognition of dead keys which makes it possible to type
774 umlauts and other accented characters that require composition.
775
776 - gui: Implemented standard cursor shapes in Qt applications.
777
778 Fixes:
779
780 - qmake: Fixed the trailing slash problem which caused qmake to generate
781 incorrect makefiles and fail to build the Qt library on some platforms.
782
783 - configure.cmd: Return to the root source tree directory after building
784 qmake.
785
786 - qmake: Automatically use different link flags when linking qmake with WLINK.
787
788 - qmake: Recognize TARGET_SHORT that allows to specify a short DLL name
789 (vital for OS/2 which reqires DLL names to be in 8x3 format).
790
791 - build: Set short DLL names for Qt modules on OS/2 using TARGET_SHORT.
792
793 - corelib: Various fixes to file system classes that deal with the file name
794 case (which should be ignored on OS/2) and forward and back slashes.
795
796 - corelib: Fixed: QMutex could let more than one thread access the protected
797 resource.
798
799 - corelib: Standard stream redirection in QProcess should now work for
800 kLIBC-based child processes. Redirection for all other applications
801 (such as CMD.EXE) will be added later (seems to be a kLIBC bug/feature).
802
803 - gui: Fixed erroneous QFileDialog behavior (duplicate entires in the list,
804 incomplete contents of the root directory of the current drive).
805
806 - gui: Fixed: Ctrl+A..Z should generate characters with codes 0x01-0x1F.
807
808 - gui: Fixed: Close popups when resizing/moving the top level window.
809
810 - gui: Enabled actual enforcing min/max Qt widget constraints for top-level windows.
811
812 - gui: Fixed child widget duplication when resizing top level widgets after
813 showing a popup; moving native child widgets should now work correctly.
814 This also fixed a number of redraw problems (for example, drawing the main
815 menu and tool bars in smplayer, moving tool bars around in other
816 applications such as textedit from the demo folder).
817
818
819Beta 1 (29-08-2009)
820
821 - First public release.
Note: See TracBrowser for help on using the repository browser.