source: trunk/CHANGES.OS2@ 1121

Last change on this file since 1121 was 1121, checked in by Dmitry A. Kuminov, 12 years ago

Release version 4.7.3 GA2.

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