source: trunk/CHANGES.OS2@ 534

Last change on this file since 534 was 524, checked in by Dmitry A. Kuminov, 16 years ago

README for GA.

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