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 | 4.5.1 GA (05-02-2010)
|
---|
8 |
|
---|
9 | Improvements:
|
---|
10 |
|
---|
11 | - general: Switched the compiler to the GCC 4.4.2 build provided by Paul
|
---|
12 | Smeldey. This gives better standard conformance, better code optimization
|
---|
13 | and provides more compact DLLs and EXEs whose size is greater than ~1M.
|
---|
14 |
|
---|
15 | - corelib: QSettings: Use IniFormat (plain INI files) when NativeFormat is
|
---|
16 | requested instead of the Open32 registry which is known to be unstable and
|
---|
17 | can be easily corrupted. The old behavior may be restored using the
|
---|
18 | QT_PM_REGISTRY environment variable.
|
---|
19 |
|
---|
20 | - corelib: Use UniStrcoll for QString::localeAwareCompare() for locale-aware
|
---|
21 | comparison of NLS strings.
|
---|
22 |
|
---|
23 | - gui: Implemented full Direct Manipulation (Drag And Drop) support. This
|
---|
24 | includes dragging text, URLs and files between PM and Qt applications,
|
---|
25 | dragging any MIME data across Qt applications, setting custom drag pointer
|
---|
26 | pixmaps, painting in widgets while dragging.
|
---|
27 |
|
---|
28 | - gui: Implemented session management with the QSessionManager class.
|
---|
29 |
|
---|
30 | - gui: Fully implemented the QDesktopServices class.
|
---|
31 |
|
---|
32 | - gui: Added support for numpad keys and for some common multimedia keys
|
---|
33 | recognized by eCS (volume, home, search, favorites).
|
---|
34 |
|
---|
35 | - gui: QCursor: Added missing cursor shapes and implemented support for custom
|
---|
36 | cursor shapes.
|
---|
37 |
|
---|
38 | - gui: Implemented QFontDatabase::addApplicationFont()/removeApplicationFont()
|
---|
39 | and friends.
|
---|
40 |
|
---|
41 | - gui: Implemented proper generation of possible key and modifier combinations
|
---|
42 | for a given key event. This in particular enables Ctrl+<letter> shortcuts
|
---|
43 | for non-Latin languages and also makes Ctrl+<letter>, Alt+<letter> and
|
---|
44 | similar shortcuts language-neutral.
|
---|
45 |
|
---|
46 | - gui: QWidget: When setting the parent, take the parent's resolve masks to
|
---|
47 | make sure attributes imposed by the user on the parent won't be overriden
|
---|
48 | byv the natural palette for this widget if it differs from
|
---|
49 | QApplication::palette() [vendor bug].
|
---|
50 |
|
---|
51 | - gui: Use a normal border for top-level Tool widgets since the thin one is
|
---|
52 | too thin and cannot be resized.
|
---|
53 |
|
---|
54 | - gui: Implemented delivering of QEvent::NonClientAreaMouse* events to
|
---|
55 | top-level widgets. This enables undocked dock widgets to be docked back by
|
---|
56 | a double click on the title bar and also by moving over the dock areas.
|
---|
57 |
|
---|
58 | - plugins: Enabled the sqlite3 plugin which makes the sql module (and
|
---|
59 | applications depending on it) actually usable.
|
---|
60 |
|
---|
61 | - tools: Enabled the Qt Designer application.
|
---|
62 |
|
---|
63 | - tools: Enabled the following toos: pixeltool, q3toq4, xmplatterns.
|
---|
64 |
|
---|
65 | - qmake/os2-g++: Recognize the "map" option in the CONFIG variable that allows
|
---|
66 | to turn the generation of .map files on and off. The option is set by
|
---|
67 | default.
|
---|
68 |
|
---|
69 | - qmake/os2-g++: Recognize the "highmem" option in the CONFIG variable that
|
---|
70 | allows to enabled memory support in LIBC for genereated DLLs and
|
---|
71 | executables. The option is set by default.
|
---|
72 |
|
---|
73 | Fixes:
|
---|
74 |
|
---|
75 | - corelib: Created wrappers for all Win* and Gpi* calls that restore the FPU
|
---|
76 | Control Word to what C/C++ programs expect. This fixes crashes in various
|
---|
77 | Qt applications (e.g. mp3diags) due to SIGFPE.
|
---|
78 |
|
---|
79 | - corelib: QLibraryInfo: Fixed: qt.conf would not have been loaded if a
|
---|
80 | component path was requested before QCoreApplication instance creation.
|
---|
81 |
|
---|
82 | - corelib: QLibraryInfo: Changed default "Settings" path to %ETC%/xdg.
|
---|
83 | Also use %ETC%/qtsys.conf as the system-wide qt.conf instead of
|
---|
84 | %ETC%/qt/qtsys.conf.
|
---|
85 |
|
---|
86 | - corelib: QFSFileEngine: Fixed: On OS/2, trailing spaces in file names are
|
---|
87 | ignored ("readme " = "readme") but kLIBC doesn't handle this well so strip
|
---|
88 | them before passing to LIBC APIs.
|
---|
89 |
|
---|
90 | - corelib: QFile::copy(): Use DosCopy() instead of read/write.
|
---|
91 |
|
---|
92 | - corelib: Fixed: QProcess::startDetached() would either crash or fail to
|
---|
93 | start a process.
|
---|
94 |
|
---|
95 | - corelib: Fixed: QFileInfo::isExecutable() would return true for all files on
|
---|
96 | local OS/2 file systems.
|
---|
97 |
|
---|
98 | - gui: Fixed: Popups shown when another application is active were not
|
---|
99 | controllable with keyboard and didn't close on an outside mouse click.
|
---|
100 |
|
---|
101 | - gui: Fixed: Visible title bar and frame of the top-level window after
|
---|
102 | switching to fullscreen.
|
---|
103 |
|
---|
104 | - gui: Fixed: Wrong widget-relative mouse position in mouse events. This fixes
|
---|
105 | problems with dragging widget splitters (separators) in applications using
|
---|
106 | dock widgets.
|
---|
107 |
|
---|
108 | - gui: Fixed: QEvent::Enter/Leave events were delivered incorrectly if the
|
---|
109 | alien child widget belonging to a native parent intersected with a native
|
---|
110 | child of this parent (this in particular caused extended tool bars to
|
---|
111 | immediately un-extend once the mouse moves over the extended part).
|
---|
112 |
|
---|
113 | - gui: Fixed: Mouse press events replayed after closing the popup by clicking
|
---|
114 | outside it had incorrect coordinates. This resulted into various kinds of
|
---|
115 | misbehavior including spatial text selection in QTextEdit widgets after
|
---|
116 | closing popups by clicking inside these widgets.
|
---|
117 |
|
---|
118 | - gui: Fixed: The default application icon embedded into the executable was
|
---|
119 | not actually used as the default window icon for top-level widgets.
|
---|
120 |
|
---|
121 | - qmake/os2-g++: Do not use EXEPACK tool on static libraries.
|
---|
122 |
|
---|
123 | - qmake: Several fixes to make install targets work correctly.
|
---|
124 |
|
---|
125 |
|
---|
126 | Beta 5 (06-12-2009)
|
---|
127 |
|
---|
128 | Improvements:
|
---|
129 |
|
---|
130 | - gui: Added support for the system clipboard. Qt can now exchange plain text,
|
---|
131 | HTML (Mozilla application suite) and bitmaps with other PM applications, as
|
---|
132 | well as all supported MIME data types with other Qt-based applications.
|
---|
133 |
|
---|
134 | - corelib: Use system unicode conversion routines to convert from the system
|
---|
135 | code page to Unicode and back. This makes it unnecessary to specify the
|
---|
136 | system encoding in the LANG environment variable -- Qt will use the system
|
---|
137 | encoding of the current process.
|
---|
138 |
|
---|
139 | - gui: Implemented support for the IME input box (used on DBCS systems) in Qt
|
---|
140 | applications with a known limitation that the input box is always positioned
|
---|
141 | at the lower left corner of the top-level window.
|
---|
142 |
|
---|
143 | - gui: Improved font handling on DBCS systems (patch by komh):
|
---|
144 | * Read national face names from font files instead of always taking the
|
---|
145 | Latin name.
|
---|
146 | * Use the PM_AssociateFont registry key to select a fallback font for
|
---|
147 | missing characters.
|
---|
148 |
|
---|
149 | - gui: Implemented QPixmap::grabWindow() which takes a screenshot of a window.
|
---|
150 |
|
---|
151 | - gui: Steal the Alt key from the PM which prevents the PM system menu to be
|
---|
152 | shown when single Alt is pressed in a Qt application. The system menu may
|
---|
153 | still be called using Alt+Space. Note that this also disables all default
|
---|
154 | shortuts from the system menu (Alt+F7, Alt+F10 etc.) so that they available
|
---|
155 | to Qt applications now. Exceptions are Alt+F4, Ctrl+Esc, Alt+Esc which are
|
---|
156 | not passed to Qt and will function as in regular PM applciations.
|
---|
157 |
|
---|
158 | - general: Binary Qt library builds are made portable: they do not contain
|
---|
159 | hard-coded paths to various Qt components any more and use relative
|
---|
160 | locations whenever possible. See
|
---|
161 | http://svn.netlabs.org/qt4/browser/tags/4.5.1-os2-beta5/doc/src/qt-conf.qdoc
|
---|
162 | for more info.
|
---|
163 |
|
---|
164 | - corelib: Improved the polling QFileSystemWatcher implementation so that it
|
---|
165 | doesn't eat all CPU when there are more than 100 items to watch, like when
|
---|
166 | showing a file open dialog with many files in a directory.
|
---|
167 |
|
---|
168 | - qmake: Improved processing of the project library list (LIBS variable) to
|
---|
169 | avoid appearance of raw library names that require substitution (fixes the
|
---|
170 | debug build of linguist).
|
---|
171 |
|
---|
172 | - qmake: Added support for DEF_FILE_VERSION, DEF_FILE_DESCRIPTION and
|
---|
173 | DEF_FILE_VENDOR project variables that allow to embed the description
|
---|
174 | string into a generated DLL or executable. For compatibility with other
|
---|
175 | platforms, these variables by default are mapped to VERSION,
|
---|
176 | QMAKE_TARGET_PRODUCT + QMAKE_TARGET_DESCRIPTION + QMAKE_TARGET_COPYRIGHT and
|
---|
177 | QMAKE_TARGET_COMPANY, respectively.
|
---|
178 |
|
---|
179 | Fixes:
|
---|
180 |
|
---|
181 | - gui: Table views showed alternate rows in black color instead of light gray.
|
---|
182 |
|
---|
183 | - gui: If some font style (e.g. Bold) does not provide characters for some
|
---|
184 | script (e.g. Cyrillic) while the Normal style does, a different font will be
|
---|
185 | chosen for Bold Cyrillic instead of drawing empty boxes.
|
---|
186 |
|
---|
187 | - corelib: Fixed two issues related to loading text codec plugins from the
|
---|
188 | application's directory.
|
---|
189 |
|
---|
190 | - corelib: Fixed QDir::absoluteFilePath(), midir()/mkpath(), rmdir()/rmpath()
|
---|
191 | that didn't properly handle relative and UNC paths which could cause various
|
---|
192 | path-related failures.
|
---|
193 |
|
---|
194 | - corelib: Properly report root directories of drives to Qt. This makes
|
---|
195 | letters of removable drives always seen by Qt (for example, in the file open
|
---|
196 | dialog) even if the medium isn't currently inserted.
|
---|
197 |
|
---|
198 | - corelib: Fixed unnecessary access to removable drives and a long delay and
|
---|
199 | noice caused by it when showing a file open dialog in Qt applications.
|
---|
200 |
|
---|
201 | Beta 4 (11-11-2009)
|
---|
202 |
|
---|
203 | Improvements:
|
---|
204 |
|
---|
205 | - Added sound support (implemented QSound class).
|
---|
206 |
|
---|
207 | - Added system tray support (QSystemTrayIcon class). This support requires
|
---|
208 | the Extended system tray XCenter plugin to be installed. See the note above
|
---|
209 | on how to compile and install this plugin.
|
---|
210 |
|
---|
211 | - Enabled QPlugin support on OS/2. This in turn enables SVG support for
|
---|
212 | QIcon (which is built as a Qt plugin DLL by default).
|
---|
213 |
|
---|
214 | - Better widget modality support (widgets blocked by modality cannot be
|
---|
215 | activated and moved using the mouse and the title bar anymore).
|
---|
216 |
|
---|
217 | - Added support for 'console' and 'windows' CONFIG options in .pro files.
|
---|
218 | Now, if 'windows' is present, the target executable will have the WINDOWAPI
|
---|
219 | attribute set which effectively makes it a PM application. This, in
|
---|
220 | particular, disables standard input, output and error streams so that when
|
---|
221 | started, the application will not have a console window attached to it.
|
---|
222 | By default, 'console' mode is active unless you perform a release build and
|
---|
223 | the application is linked against the QtGui library ('QT = gui' in .pro),
|
---|
224 | in which case the default is 'windows'.
|
---|
225 |
|
---|
226 | - Improved paint speed in Qt windows which should increase overall graphical
|
---|
227 | UI performance by 10%-20% in Qt4 applications.
|
---|
228 |
|
---|
229 | - Implemented setting window icons for top-level windows (using
|
---|
230 | QWidget::setWindowIcon()).
|
---|
231 |
|
---|
232 | - Added LxLite support to provide compression for executables and DLLs. The
|
---|
233 | compression is controlled by the 'exepack' CONFIG option which is turned on
|
---|
234 | by default for release builds if the LxLite executable is present in PATH
|
---|
235 | during the configure.cmd invocation. The compression may be turned off on a
|
---|
236 | per-project basis by adding a 'CONFIG -= exepack' line to the .pro file.
|
---|
237 |
|
---|
238 | - Improved the section of this README.OS2 file that describes how to properly
|
---|
239 | set the LANG variable to have correct national characters in file names and
|
---|
240 | in window titles of Qt applications.
|
---|
241 |
|
---|
242 | Fixes:
|
---|
243 |
|
---|
244 | - QProcess: The executable's path was not always added to BEGINLIBPATH.
|
---|
245 |
|
---|
246 | - Fixed-size top-level widgets could not be moved.
|
---|
247 |
|
---|
248 | - Application crash after pressing a button in a dialog window that resizes
|
---|
249 | this dialog (for example, makes it bigger to show more information).
|
---|
250 |
|
---|
251 | - Resizing top level windows using the top border broke mouse coordinates so
|
---|
252 | that Qt tought you pressed the mouse button in a different place of the
|
---|
253 | window than where you actually did it.
|
---|
254 |
|
---|
255 | - Events posted with QCoreApplication::postEvent() were only processed upon
|
---|
256 | receiving a next message from the system. This caused funny delays such as
|
---|
257 | controls in a Qt window still indicating the input focus (the dotted
|
---|
258 | rectangle) after the window was deactivated and losing this indication only
|
---|
259 | when the mouse pointer was moved over the window.
|
---|
260 |
|
---|
261 | - Don't replay mouse button press on a push button that is showing a popup
|
---|
262 | menu but instead hide the popup menu and unpress the button to get more
|
---|
263 | native look and feel.
|
---|
264 |
|
---|
265 | - Deactivating the window with a push button showing a popup menu would hide
|
---|
266 | the popup but leave the button pressed.
|
---|
267 |
|
---|
268 | - Fixed incorrect Qt dirty widget region calculation when processing WM_PAINT
|
---|
269 | messages. This fixes a lot of redraw problems (menu items in the main menu
|
---|
270 | bar, text in combo-boxes, various redraw problems in smplayer when switching
|
---|
271 | interfaces and going to/from fullscreen, and similar).
|
---|
272 |
|
---|
273 | Beta 3 (17-10-2009)
|
---|
274 |
|
---|
275 | Improvements:
|
---|
276 |
|
---|
277 | - Added proper font support. All outline (scalable) fonts visible in the Font
|
---|
278 | Palette should be now recognized by Qt. The fonts are hinted and antialiased
|
---|
279 | using the Freetype2 library when drawing text.
|
---|
280 |
|
---|
281 | - System fonts and colors are now used by default for Qt widgets.
|
---|
282 |
|
---|
283 | - configure.cmd now generates the main Makefile to simplify building of Qt.
|
---|
284 |
|
---|
285 | - corelib: QProcess: Implemented child termination detection.
|
---|
286 |
|
---|
287 | - corelib: QProcess: Implemented redirection to another QProcess.
|
---|
288 |
|
---|
289 | - corelib: QProcess now uses native pipes for stream redirection. This fixes
|
---|
290 | various issues like 'Socket operation on non-socket' errors during
|
---|
291 | parent-child communication.
|
---|
292 |
|
---|
293 | - corelib: QProcess: Make sure that the directory containing the executable
|
---|
294 | file is always searched (first) for DLLs needed by this executable. This
|
---|
295 | makes it unnecessary to change the current directory to the executable's
|
---|
296 | directory or add it to LIBPATH before starting the Qt application.
|
---|
297 |
|
---|
298 | - corelib: QProcess can now start applications of different type (e.g. PM
|
---|
299 | applications from text-mode applications) directly.
|
---|
300 | QProcess::startDetached() also works.
|
---|
301 |
|
---|
302 | - qmake: In debug_and_release mode, 'release-(all|clean|distclean|install|
|
---|
303 | uninstall)' and 'debug-(all|clean|distclean|install|uninstall)' make
|
---|
304 | targets are now available.
|
---|
305 |
|
---|
306 | Fixes:
|
---|
307 |
|
---|
308 | - Doing 'make clean' could result into a hang due to CMD.EXE command line
|
---|
309 | length limitation.
|
---|
310 |
|
---|
311 | - corelib: Fixed: QProcess: Lost data during stream redirection.
|
---|
312 |
|
---|
313 | - corelib: QSettings could sometimes distort data when saving it to the
|
---|
314 | registry (by replacing some characters with codes 0x80 and above with '?').
|
---|
315 |
|
---|
316 | Beta 2 (17-09-2009)
|
---|
317 |
|
---|
318 | Improvements:
|
---|
319 |
|
---|
320 | - Ported the network module (QtNetwork4.dll) and added to the default build.
|
---|
321 |
|
---|
322 | - Added modules sql, svg, xmlpatterns, scripttools, plugins to the default
|
---|
323 | build.
|
---|
324 |
|
---|
325 | - gui: Added recognition of dead keys which makes it possible to type
|
---|
326 | umlauts and other accented characters that require composition.
|
---|
327 |
|
---|
328 | - gui: Implemented standard cursor shapes in Qt applications.
|
---|
329 |
|
---|
330 | Fixes:
|
---|
331 |
|
---|
332 | - qmake: Fixed the trailing slash problem which caused qmake to generate
|
---|
333 | incorrect makefiles and fail to build the Qt library on some platforms.
|
---|
334 |
|
---|
335 | - configure.cmd: Return to the root source tree directory after building
|
---|
336 | qmake.
|
---|
337 |
|
---|
338 | - qmake: Automatically use different link flags when linking qmake with WLINK.
|
---|
339 |
|
---|
340 | - qmake: Recognize TARGET_SHORT that allows to specify a short DLL name
|
---|
341 | (vital for OS/2 which reqires DLL names to be in 8x3 format).
|
---|
342 |
|
---|
343 | - build: Set short DLL names for Qt modules on OS/2 using TARGET_SHORT.
|
---|
344 |
|
---|
345 | - corelib: Various fixes to file system classes that deal with the file name
|
---|
346 | case (which should be ignored on OS/2) and forward and back slashes.
|
---|
347 |
|
---|
348 | - corelib: Fixed: QMutex could let more than one thread access the protected
|
---|
349 | resource.
|
---|
350 |
|
---|
351 | - corelib: Standard stream redirection in QProcess should now work for
|
---|
352 | kLIBC-based child processes. Redirection for all other applications
|
---|
353 | (such as CMD.EXE) will be added later (seems to be a kLIBC bug/feature).
|
---|
354 |
|
---|
355 | - gui: Fixed erroneous QFileDialog behavior (duplicate entires in the list,
|
---|
356 | incomplete contents of the root directory of the current drive).
|
---|
357 |
|
---|
358 | - gui: Fixed: Ctrl+A..Z should generate characters with codes 0x01-0x1F.
|
---|
359 |
|
---|
360 | - gui: Fixed: Close popups when resizing/moving the top level window.
|
---|
361 |
|
---|
362 | - gui: Enabled actual enforcing min/max Qt widget constraints for top-level windows.
|
---|
363 |
|
---|
364 | - gui: Fixed child widget duplication when resizing top level widgets after
|
---|
365 | showing a popup; moving native child widgets should now work correctly.
|
---|
366 | This also fixed a number of redraw problems (for example, drawing the main
|
---|
367 | menu and tool bars in smplayer, moving tool bars around in other
|
---|
368 | applications such as textedit from the demo folder).
|
---|
369 |
|
---|
370 | Beta 1 (29-08-2009)
|
---|
371 |
|
---|
372 | - First public release.
|
---|