| 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 | Beta 5 (06-12-2009)
 | 
|---|
| 8 | 
 | 
|---|
| 9 |   Improvements:
 | 
|---|
| 10 | 
 | 
|---|
| 11 |   - gui: Added support for the system clipboard. Qt can now exchange plain text,
 | 
|---|
| 12 |     HTML (Mozilla application suite) and bitmaps with other PM applications, as
 | 
|---|
| 13 |     well as all supported MIME data types with other Qt-based applications.
 | 
|---|
| 14 | 
 | 
|---|
| 15 |   - corelib: Use system unicode conversion routines to convert from the system
 | 
|---|
| 16 |     code page to Unicode and back. This makes it unnecessary to specify the
 | 
|---|
| 17 |     system encoding in the LANG environment variable -- Qt will use the system
 | 
|---|
| 18 |     encoding of the current process.
 | 
|---|
| 19 | 
 | 
|---|
| 20 |   - gui: Implemented support for the IME input box (used on DBCS systems) in Qt
 | 
|---|
| 21 |     applications with a known limitation that the input box is always positioned
 | 
|---|
| 22 |     at the lower left corner of the top-level window.
 | 
|---|
| 23 | 
 | 
|---|
| 24 |   - gui: Improved font handling on DBCS systems (patch by komh):
 | 
|---|
| 25 |     * Read national face names from font files instead of always taking the
 | 
|---|
| 26 |       Latin name.
 | 
|---|
| 27 |     * Use the PM_AssociateFont registry key to select a fallback font for
 | 
|---|
| 28 |       missing characters.
 | 
|---|
| 29 | 
 | 
|---|
| 30 |   - gui: Implemented QPixmap::grabWindow() which takes a screenshot of a window.
 | 
|---|
| 31 | 
 | 
|---|
| 32 |   - gui: Steal the Alt key from the PM which prevents the PM system menu to be
 | 
|---|
| 33 |     shown when single Alt is pressed in a Qt application. The system menu may
 | 
|---|
| 34 |     still be called using Alt+Space. Note that this also disables all default
 | 
|---|
| 35 |     shortuts from the system menu (Alt+F7, Alt+F10 etc.) so that they available
 | 
|---|
| 36 |     to Qt applications now. Exceptions are Alt+F4, Ctrl+Esc, Alt+Esc which are
 | 
|---|
| 37 |     not passed to Qt and will function as in regular PM applciations.
 | 
|---|
| 38 | 
 | 
|---|
| 39 |   - general: Binary Qt library builds are made portable: they do not contain
 | 
|---|
| 40 |     hard-coded paths to various Qt components any more and use relative
 | 
|---|
| 41 |     locations whenever possible. See
 | 
|---|
| 42 |     http://svn.netlabs.org/qt4/browser/tags/4.5.1-os2-beta5/doc/src/qt-conf.qdoc
 | 
|---|
| 43 |     for more info.
 | 
|---|
| 44 | 
 | 
|---|
| 45 |   - corelib: Improved the polling QFileSystemWatcher implementation so that it
 | 
|---|
| 46 |     doesn't eat all CPU when there are more than 100 items to watch, like when
 | 
|---|
| 47 |     showing a file open dialog with many files in a directory.
 | 
|---|
| 48 | 
 | 
|---|
| 49 |   - qmake: Improved processing of the project library list (LIBS variable) to
 | 
|---|
| 50 |     avoid appearance of raw library names that require substitution (fixes the
 | 
|---|
| 51 |     debug build of linguist).
 | 
|---|
| 52 | 
 | 
|---|
| 53 |   - qmake: Added support for DEF_FILE_VERSION, DEF_FILE_DESCRIPTION and
 | 
|---|
| 54 |     DEF_FILE_VENDOR project variables that allow to embed the description
 | 
|---|
| 55 |     string into a generated DLL or executable. For compatibility with other
 | 
|---|
| 56 |     platforms, these variables by default are mapped to VERSION,
 | 
|---|
| 57 |     QMAKE_TARGET_PRODUCT + QMAKE_TARGET_DESCRIPTION + QMAKE_TARGET_COPYRIGHT and
 | 
|---|
| 58 |     QMAKE_TARGET_COMPANY, respectively.
 | 
|---|
| 59 | 
 | 
|---|
| 60 |   Fixes:
 | 
|---|
| 61 | 
 | 
|---|
| 62 |   - gui: Table views showed alternate rows in black color instead of light gray.
 | 
|---|
| 63 | 
 | 
|---|
| 64 |   - gui: If some font style (e.g. Bold) does not provide characters for some
 | 
|---|
| 65 |     script (e.g. Cyrillic) while the Normal style does, a different font will be
 | 
|---|
| 66 |     chosen for Bold Cyrillic instead of drawing empty boxes.
 | 
|---|
| 67 | 
 | 
|---|
| 68 |   - corelib: Fixed two issues related to loading text codec plugins from the
 | 
|---|
| 69 |     application's directory.
 | 
|---|
| 70 | 
 | 
|---|
| 71 |   - corelib: Fixed QDir::absoluteFilePath(), midir()/mkpath(), rmdir()/rmpath()
 | 
|---|
| 72 |     that didn't properly handle relative and UNC paths which could cause various
 | 
|---|
| 73 |     path-related failures.
 | 
|---|
| 74 | 
 | 
|---|
| 75 |   - corelib: Properly report root directories of drives to Qt. This makes
 | 
|---|
| 76 |     letters of removable drives always seen by Qt (for example, in the file open
 | 
|---|
| 77 |     dialog) even if the medium isn't currently inserted.
 | 
|---|
| 78 | 
 | 
|---|
| 79 |   - corelib: Fixed unnecessary access to removable drives and a long delay and
 | 
|---|
| 80 |     noice caused by it when showing a file open dialog in Qt applications.
 | 
|---|
| 81 | 
 | 
|---|
| 82 | Beta 4 (11-11-2009)
 | 
|---|
| 83 | 
 | 
|---|
| 84 |   Improvements:
 | 
|---|
| 85 | 
 | 
|---|
| 86 |   - Added sound support (implemented QSound class).
 | 
|---|
| 87 | 
 | 
|---|
| 88 |   - Added system tray support (QSystemTrayIcon class). This support requires
 | 
|---|
| 89 |     the Extended system tray XCenter plugin to be installed. See the note above
 | 
|---|
| 90 |     on how to compile and install this plugin.
 | 
|---|
| 91 | 
 | 
|---|
| 92 |   - Enabled QPlugin support on OS/2. This in turn enables SVG support for
 | 
|---|
| 93 |     QIcon (which is built as a Qt plugin DLL by default).
 | 
|---|
| 94 | 
 | 
|---|
| 95 |   - Better widget modality support (widgets blocked by modality cannot be
 | 
|---|
| 96 |     activated and moved using the mouse and the title bar anymore).
 | 
|---|
| 97 | 
 | 
|---|
| 98 |   - Added support for 'console' and 'windows' CONFIG options in .pro files.
 | 
|---|
| 99 |     Now, if 'windows' is present, the target executable will have the WINDOWAPI
 | 
|---|
| 100 |     attribute set which effectively makes it a PM application. This, in
 | 
|---|
| 101 |     particular, disables standard input, output and error streams so that when
 | 
|---|
| 102 |     started, the application will not have a console window attached to it.
 | 
|---|
| 103 |     By default, 'console' mode is active unless you perform a release build and
 | 
|---|
| 104 |     the application is linked against the QtGui library ('QT = gui' in .pro),
 | 
|---|
| 105 |     in which case the default is 'windows'.
 | 
|---|
| 106 | 
 | 
|---|
| 107 |   - Improved paint speed in Qt windows which should increase overall graphical
 | 
|---|
| 108 |     UI performance by 10%-20% in Qt4 applications.
 | 
|---|
| 109 | 
 | 
|---|
| 110 |   - Implemented setting window icons for top-level windows (using
 | 
|---|
| 111 |     QWidget::setWindowIcon()).
 | 
|---|
| 112 | 
 | 
|---|
| 113 |   - Added LxLite support to provide compression for executables and DLLs. The
 | 
|---|
| 114 |     compression is controlled by the 'exepack' CONFIG option which is turned on
 | 
|---|
| 115 |     by default for release builds if the LxLite executable is present in PATH
 | 
|---|
| 116 |     during the configure.cmd invocation. The compression may be turned off on a
 | 
|---|
| 117 |     per-project basis by adding a 'CONFIG -= exepack' line to the .pro file.
 | 
|---|
| 118 | 
 | 
|---|
| 119 |   - Improved the section of this README.OS2 file that describes how to properly
 | 
|---|
| 120 |     set the LANG variable to have correct national characters in file names and
 | 
|---|
| 121 |     in window titles of Qt applications.
 | 
|---|
| 122 | 
 | 
|---|
| 123 |   Fixes:
 | 
|---|
| 124 | 
 | 
|---|
| 125 |   - QProcess: The executable's path was not always added to BEGINLIBPATH.
 | 
|---|
| 126 | 
 | 
|---|
| 127 |   - Fixed-size top-level widgets could not be moved.
 | 
|---|
| 128 | 
 | 
|---|
| 129 |   - Application crash after pressing a button in a dialog window that resizes
 | 
|---|
| 130 |     this dialog (for example, makes it bigger to show more information).
 | 
|---|
| 131 | 
 | 
|---|
| 132 |   - Resizing top level windows using the top border broke mouse coordinates so
 | 
|---|
| 133 |     that Qt tought you pressed the mouse button in a different place of the
 | 
|---|
| 134 |     window than where you actually did it.
 | 
|---|
| 135 | 
 | 
|---|
| 136 |   - Events posted with QCoreApplication::postEvent() were only processed upon
 | 
|---|
| 137 |     receiving a next message from the system. This caused funny delays such as
 | 
|---|
| 138 |     controls in a Qt window still indicating the input focus (the dotted
 | 
|---|
| 139 |     rectangle) after the window was deactivated and losing this indication only
 | 
|---|
| 140 |     when the mouse pointer was moved over the window.
 | 
|---|
| 141 | 
 | 
|---|
| 142 |   - Don't replay mouse button press on a push button that is showing a popup
 | 
|---|
| 143 |     menu but instead hide the popup menu and unpress the button to get more
 | 
|---|
| 144 |     native look and feel.
 | 
|---|
| 145 | 
 | 
|---|
| 146 |   - Deactivating the window with a push button showing a popup menu would hide
 | 
|---|
| 147 |     the popup but leave the button pressed.
 | 
|---|
| 148 | 
 | 
|---|
| 149 |   - Fixed incorrect Qt dirty widget region calculation when processing WM_PAINT
 | 
|---|
| 150 |     messages. This fixes a lot of redraw problems (menu items in the main menu
 | 
|---|
| 151 |     bar, text in combo-boxes, various redraw problems in smplayer when switching
 | 
|---|
| 152 |     interfaces and going to/from fullscreen, and similar).
 | 
|---|
| 153 | 
 | 
|---|
| 154 | Beta 3 (17-10-2009)
 | 
|---|
| 155 | 
 | 
|---|
| 156 |   Improvements:
 | 
|---|
| 157 | 
 | 
|---|
| 158 |   - Added proper font support. All outline (scalable) fonts visible in the Font
 | 
|---|
| 159 |     Palette should be now recognized by Qt. The fonts are hinted and antialiased
 | 
|---|
| 160 |     using the Freetype2 library when drawing text.
 | 
|---|
| 161 | 
 | 
|---|
| 162 |   - System fonts and colors are now used by default for Qt widgets.
 | 
|---|
| 163 | 
 | 
|---|
| 164 |   - configure.cmd now generates the main Makefile to simplify building of Qt.
 | 
|---|
| 165 | 
 | 
|---|
| 166 |   - corelib: QProcess: Implemented child termination detection.
 | 
|---|
| 167 | 
 | 
|---|
| 168 |   - corelib: QProcess: Implemented redirection to another QProcess.
 | 
|---|
| 169 | 
 | 
|---|
| 170 |   - corelib: QProcess now uses native pipes for stream redirection. This fixes
 | 
|---|
| 171 |     various issues like 'Socket operation on non-socket' errors during
 | 
|---|
| 172 |     parent-child communication.
 | 
|---|
| 173 | 
 | 
|---|
| 174 |   - corelib: QProcess: Make sure that the directory containing the executable
 | 
|---|
| 175 |     file is always searched (first) for DLLs needed by this executable. This
 | 
|---|
| 176 |     makes it unnecessary to change the current directory to the executable's
 | 
|---|
| 177 |     directory or add it to LIBPATH before starting the Qt application.
 | 
|---|
| 178 | 
 | 
|---|
| 179 |   - corelib: QProcess can now start applications of different type (e.g. PM
 | 
|---|
| 180 |     applications from text-mode applications) directly.
 | 
|---|
| 181 |     QProcess::startDetached() also works.
 | 
|---|
| 182 | 
 | 
|---|
| 183 |   - qmake: In debug_and_release mode, 'release-(all|clean|distclean|install|
 | 
|---|
| 184 |     uninstall)' and 'debug-(all|clean|distclean|install|uninstall)' make
 | 
|---|
| 185 |     targets are now available.
 | 
|---|
| 186 | 
 | 
|---|
| 187 |   Fixes:
 | 
|---|
| 188 | 
 | 
|---|
| 189 |   - Doing 'make clean' could result into a hang due to CMD.EXE command line
 | 
|---|
| 190 |     length limitation.
 | 
|---|
| 191 | 
 | 
|---|
| 192 |   - corelib: Fixed: QProcess: Lost data during stream redirection.
 | 
|---|
| 193 | 
 | 
|---|
| 194 |   - corelib: QSettings could sometimes distort data when saving it to the
 | 
|---|
| 195 |     registry (by replacing some characters with codes 0x80 and above with '?').
 | 
|---|
| 196 | 
 | 
|---|
| 197 | Beta 2 (17-09-2009)
 | 
|---|
| 198 | 
 | 
|---|
| 199 |   Improvements:
 | 
|---|
| 200 | 
 | 
|---|
| 201 |   - Ported the network module (QtNetwork4.dll) and added to the default build.
 | 
|---|
| 202 | 
 | 
|---|
| 203 |   - Added modules sql, svg, xmlpatterns, scripttools, plugins to the default
 | 
|---|
| 204 |     build.
 | 
|---|
| 205 | 
 | 
|---|
| 206 |   - gui: Added recognition of dead keys which makes it possible to type
 | 
|---|
| 207 |     umlauts and other accented characters that require composition.
 | 
|---|
| 208 | 
 | 
|---|
| 209 |   - gui: Implemented standard cursor shapes in Qt applications.
 | 
|---|
| 210 | 
 | 
|---|
| 211 |   Fixes:
 | 
|---|
| 212 | 
 | 
|---|
| 213 |   - qmake: Fixed the trailing slash problem which caused qmake to generate
 | 
|---|
| 214 |     incorrect makefiles and fail to build the Qt library on some platforms.
 | 
|---|
| 215 | 
 | 
|---|
| 216 |   - configure.cmd: Return to the root source tree directory after building
 | 
|---|
| 217 |     qmake.
 | 
|---|
| 218 | 
 | 
|---|
| 219 |   - qmake: Automatically use different link flags when linking qmake with WLINK.
 | 
|---|
| 220 | 
 | 
|---|
| 221 |   - qmake: Recognize TARGET_SHORT that allows to specify a short DLL name
 | 
|---|
| 222 |     (vital for OS/2 which reqires DLL names to be in 8x3 format).
 | 
|---|
| 223 | 
 | 
|---|
| 224 |   - build: Set short DLL names for Qt modules on OS/2 using TARGET_SHORT.
 | 
|---|
| 225 | 
 | 
|---|
| 226 |   - corelib: Various fixes to file system classes that deal with the file name
 | 
|---|
| 227 |     case (which should be ignored on OS/2) and forward and back slashes.
 | 
|---|
| 228 | 
 | 
|---|
| 229 |   - corelib: Fixed: QMutex could let more than one thread access the protected
 | 
|---|
| 230 |     resource.
 | 
|---|
| 231 | 
 | 
|---|
| 232 |   - corelib: Standard stream redirection in QProcess should now work for
 | 
|---|
| 233 |     kLIBC-based child processes. Redirection for all other applications
 | 
|---|
| 234 |     (such as CMD.EXE) will be added later (seems to be a kLIBC bug/feature).
 | 
|---|
| 235 | 
 | 
|---|
| 236 |   - gui: Fixed erroneous QFileDialog behavior (duplicate entires in the list,
 | 
|---|
| 237 |     incomplete contents of the root directory of the current drive).
 | 
|---|
| 238 | 
 | 
|---|
| 239 |   - gui: Fixed: Ctrl+A..Z should generate characters with codes 0x01-0x1F.
 | 
|---|
| 240 | 
 | 
|---|
| 241 |   - gui: Fixed: Close popups when resizing/moving the top level window.
 | 
|---|
| 242 | 
 | 
|---|
| 243 |   - gui: Enabled actual enforcing min/max Qt widget constraints for top-level windows.
 | 
|---|
| 244 | 
 | 
|---|
| 245 |   - gui: Fixed child widget duplication when resizing top level widgets after
 | 
|---|
| 246 |     showing a popup; moving native child widgets should now work correctly.
 | 
|---|
| 247 |     This also fixed a number of redraw problems (for example, drawing the main
 | 
|---|
| 248 |     menu and tool bars in smplayer, moving tool bars around in other
 | 
|---|
| 249 |     applications such as textedit from the demo folder).
 | 
|---|
| 250 | 
 | 
|---|
| 251 | Beta 1 (29-08-2009)
 | 
|---|
| 252 | 
 | 
|---|
| 253 |   - First public release.
 | 
|---|