| [397] | 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 | 
 | 
|---|
| [740] | 7 | 
 | 
|---|
| [1147] | 8 | 4.7.3 GA2 (22-03-2013)
 | 
|---|
| [1121] | 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 | 
 | 
|---|
| [1085] | 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 | 
 | 
|---|
| [1095] | 50 |   - general: Enable building the QtDeclarative and QtWebKit libraries by
 | 
|---|
| [1085] | 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 | 
 | 
|---|
| [830] | 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 | 
 | 
|---|
| [740] | 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 | 
 | 
|---|
| [542] | 486 | 4.5.1 GA (05-02-2010)
 | 
|---|
| [524] | 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
 | 
|---|
| [541] | 545 |     to turn the generation of .map files on and off. The option is set by
 | 
|---|
 | 546 |     default.
 | 
|---|
| [524] | 547 | 
 | 
|---|
| [541] | 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 | 
 | 
|---|
| [524] | 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 | 
 | 
|---|
| [541] | 574 |   - corelib: Fixed: QFileInfo::isExecutable() would return true for all files on
 | 
|---|
 | 575 |     local OS/2 file systems.
 | 
|---|
 | 576 | 
 | 
|---|
| [524] | 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 | 
 | 
|---|
| [541] | 602 |   - qmake: Several fixes to make install targets work correctly.
 | 
|---|
| [524] | 603 | 
 | 
|---|
| [541] | 604 | 
 | 
|---|
| [397] | 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 | 
 | 
|---|
| [740] | 680 | 
 | 
|---|
| [397] | 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 | 
 | 
|---|
| [740] | 753 | 
 | 
|---|
| [397] | 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 | 
 | 
|---|
| [740] | 797 | 
 | 
|---|
| [397] | 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 | 
 | 
|---|
| [740] | 852 | 
 | 
|---|
| [397] | 853 | Beta 1 (29-08-2009)
 | 
|---|
 | 854 | 
 | 
|---|
 | 855 |   - First public release.
 | 
|---|