1 | This document contains a brief list of the most important OS/2-specific changes
|
---|
2 | in the Qt library from release to release.
|
---|
3 |
|
---|
4 |
|
---|
5 | CHANGES
|
---|
6 |
|
---|
7 |
|
---|
8 | 4.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 |
|
---|
42 | 4.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 |
|
---|
184 | 4.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 |
|
---|
329 | 4.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 |
|
---|
486 | 4.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 |
|
---|
605 | Beta 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 |
|
---|
681 | Beta 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 |
|
---|
754 | Beta 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 |
|
---|
798 | Beta 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 |
|
---|
853 | Beta 1 (29-08-2009)
|
---|
854 |
|
---|
855 | - First public release.
|
---|