source: trunk/CHANGES.OS2@ 595

Last change on this file since 595 was 542, checked in by Dmitry A. Kuminov, 15 years ago

README for GA (update #2).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Revision Author Id
File size: 16.0 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
74.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
126Beta 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
201Beta 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
273Beta 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
316Beta 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
370Beta 1 (29-08-2009)
371
372 - First public release.
Note: See TracBrowser for help on using the repository browser.