| [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 |  | 
|---|
| [830] | 8 | 4.6.3 (19-11-2010) | 
|---|
|  | 9 |  | 
|---|
|  | 10 | Improvements: | 
|---|
|  | 11 |  | 
|---|
|  | 12 | - general: Updated Qt codebase to version 4.6.3 (see the changes-4.6.3 file | 
|---|
|  | 13 | for details). This version should be binary compatible with the previous | 
|---|
|  | 14 | version of Qt for OS/2. | 
|---|
|  | 15 |  | 
|---|
|  | 16 | - general: qmake uses .NOTPARALLEL for some targets to support parallel | 
|---|
|  | 17 | building of complex applications with the -jN GNU make option. | 
|---|
|  | 18 |  | 
|---|
|  | 19 | - corelib: Significantly improve the performance of directory iterators | 
|---|
|  | 20 | walking through directories with thousands of files on slow file systems | 
|---|
|  | 21 | with inefficient cache policies [based on patch by rudi]. | 
|---|
|  | 22 |  | 
|---|
|  | 23 | - corelib: Don't report non-existent floppy drives in QDir::drives(). This | 
|---|
|  | 24 | makes letter A: and B: disappear from standard file dialogs in case if the | 
|---|
|  | 25 | computer doesn't have the floppy controller at all or it is disabled in BIOS | 
|---|
|  | 26 | [patch by rudi]. | 
|---|
|  | 27 |  | 
|---|
|  | 28 | - corelib: Implemented QSysInfo::os2Version(). Fixes the UserAgent string | 
|---|
|  | 29 | in QWebKit-based browsers. | 
|---|
|  | 30 |  | 
|---|
|  | 31 | - corelib: Fixed: Hang when attempting to stop the file watcher thread after | 
|---|
|  | 32 | reusing it for more than one directory (e.g. like in the standard file | 
|---|
|  | 33 | dialog). | 
|---|
|  | 34 |  | 
|---|
|  | 35 | - network: Added OpenSSL support. This enables visiting web sites using the | 
|---|
|  | 36 | secure HTTPS protocol in Qt based web-browser applications. | 
|---|
|  | 37 |  | 
|---|
|  | 38 | - network: Improved network disk cache performance by reducing the number of | 
|---|
|  | 39 | stat() calls twice when expiring the cache items [based on patch by rudi]. | 
|---|
|  | 40 |  | 
|---|
|  | 41 | - network: More verbose error messages from QLocalServer/QLocalSocket instead | 
|---|
|  | 42 | of just "Unknown error". | 
|---|
|  | 43 |  | 
|---|
|  | 44 | - network: QNetworkInterface::hardwareAddress() returns a real MAC and | 
|---|
|  | 45 | netmask() returns a correct value. | 
|---|
|  | 46 |  | 
|---|
|  | 47 | - plugins: Enabled the MySQL and PostgresSQL Qt plugins. Note that these | 
|---|
|  | 48 | plugins require MySQL and PostgresSQL DLLs to be installed. | 
|---|
|  | 49 |  | 
|---|
|  | 50 | - gui: DIVE: Detection code of the Panorama video driver now detects the | 
|---|
|  | 51 | driver presence in memory rather than what will be loaded on next reboot. | 
|---|
|  | 52 | This also solves redraw problems in cases where Panorama is installed | 
|---|
|  | 53 | together with some other video extension -- the old method could not | 
|---|
|  | 54 | detect Panorama and would enable DIVE leading to screen corruption. | 
|---|
|  | 55 |  | 
|---|
|  | 56 | - gui: Send PDF data to a CUPS printer on by default if CUPS is version 1.4.4 | 
|---|
|  | 57 | or above (where printing PDF data was fixed). | 
|---|
|  | 58 |  | 
|---|
|  | 59 | - gui: QCommonStyle::standardIconImplementation(): Generate the stanrad small | 
|---|
|  | 60 | and/or large icon size if it is missing from the stock icon to avoid icon | 
|---|
|  | 61 | size differences in e.g. file dialogs. | 
|---|
|  | 62 |  | 
|---|
|  | 63 | - webkit: Try to allocate memory blocks in high memory on OS/2 first and fall | 
|---|
|  | 64 | back to low memory on failure. | 
|---|
|  | 65 |  | 
|---|
|  | 66 | Fixes: | 
|---|
|  | 67 |  | 
|---|
|  | 68 | - general: Fixed: configure.cmd would not work in Object REXX bmode. | 
|---|
|  | 69 |  | 
|---|
|  | 70 | - corelib: Fixed a deadlock during alien thread termination (copy-paste bug) | 
|---|
|  | 71 | [found by komh]. | 
|---|
|  | 72 |  | 
|---|
|  | 73 | - corelib: Fixed: QProcess::startDetached() would fail with a certain set of | 
|---|
|  | 74 | arguments [patch by rudi]. | 
|---|
|  | 75 |  | 
|---|
|  | 76 | - network: Fixed: QLocalServer/QLocalSocket: Make sure the socket path name | 
|---|
|  | 77 | always starts with "\socket\". This fixes applications that use local | 
|---|
|  | 78 | sockets for single application instance detection [based on patch by rudi]. | 
|---|
|  | 79 |  | 
|---|
|  | 80 | - network: Fixed: Filter out garbage entries returned by ioctl(SIOCGIFCONF) on | 
|---|
|  | 81 | OS/2 so they don't appear in the QNetworkInteface::allInterfaces() list. | 
|---|
|  | 82 |  | 
|---|
|  | 83 | - network: Fixed: QLocalServer could hang forever in the destructor trying to | 
|---|
|  | 84 | close the listen socket being watched by a socket notifier. This fixes the | 
|---|
|  | 85 | Assistant application hang at startup. | 
|---|
|  | 86 |  | 
|---|
|  | 87 | - gui: Fixed: Doing Drag-n-Drop over a Qt target in DIVE mode would corrupt | 
|---|
|  | 88 | the window contents. | 
|---|
|  | 89 |  | 
|---|
|  | 90 | - gui: Fixed: Children with real HWNDs (a.k.a native widgets) were painted | 
|---|
|  | 91 | over by the parent widget causing annoying flicker (smplayer). | 
|---|
|  | 92 |  | 
|---|
|  | 93 | - gui: Fixed: In Dive mode, the screen would get corrupted if the application | 
|---|
|  | 94 | created a child window with a real HWND (as e.g. smplayer does). | 
|---|
|  | 95 |  | 
|---|
|  | 96 | - gui: Fixed: Qt Assistant would corrupt screen at startup in DIVE FB mode | 
|---|
|  | 97 | [based on patch by rudi]. | 
|---|
|  | 98 |  | 
|---|
|  | 99 | - gui: Fixed: DIVE mode was unreasonably disabled in 24-bit color depth | 
|---|
|  | 100 | display modes. | 
|---|
|  | 101 |  | 
|---|
|  | 102 | - gui: Fixed: Path separator was missing in the output file name when printing | 
|---|
|  | 103 | to a PDF or PS file in the print dialog. | 
|---|
|  | 104 |  | 
|---|
|  | 105 | - gui: Fixed QFileDialog: Item height in the side bar was increased by | 
|---|
|  | 106 | increasing icon size which caused ugly icon scaling. Now the item size hint | 
|---|
|  | 107 | is used instead (based on the normal item height) [vendor bug]. | 
|---|
|  | 108 |  | 
|---|
|  | 109 | - gui: Fixed: Possible crash and an endless PM event loop recursion when | 
|---|
|  | 110 | re-parenting widgets in DIVE mode. This could be seen when dragging a | 
|---|
|  | 111 | toolbar out of the dock widget, dragging it back then closing the | 
|---|
|  | 112 | application (crash) or attempting to drag the toolbar out again (endless | 
|---|
|  | 113 | recursion). | 
|---|
|  | 114 |  | 
|---|
|  | 115 | - gui: Fixed: Assertion shown when dragging the "Computer" item in the side | 
|---|
|  | 116 | bar of the file dialog. | 
|---|
|  | 117 |  | 
|---|
|  | 118 | - gui: Fixed: QCups would try to unlink() a NULL path which crashed some | 
|---|
|  | 119 | libc implementations [vendor bug]. | 
|---|
|  | 120 |  | 
|---|
|  | 121 | - gui: Workaround: Set O_BINARY for temporary file descriptors we get from | 
|---|
|  | 122 | CUPS when printing using the PDF engine to avoid file contents corruption. | 
|---|
|  | 123 |  | 
|---|
|  | 124 | - gui: Fixed: Starting the drag operation would take the Qt focus away and | 
|---|
|  | 125 | close all popups which is unexpected. | 
|---|
|  | 126 |  | 
|---|
|  | 127 | - gui: Fixed: Repainting the widget during Drag-n-Drop outside the | 
|---|
|  | 128 | drag*Event() callbacks would cause screen corruption under the mouse pointer | 
|---|
|  | 129 | in DIVE mode. | 
|---|
|  | 130 |  | 
|---|
|  | 131 | - gui: Fixed: Pressing Shift[+Ctrl]]+<numpad_digit> generated digits in | 
|---|
|  | 132 | NumLock ON mode instead of cursor movement events (which is necessary to | 
|---|
|  | 133 | make it possible to select text using numpad keys with Shift pressed. | 
|---|
|  | 134 |  | 
|---|
|  | 135 | - gui: Fixed: Hiding the main application window programmatically with | 
|---|
|  | 136 | QWidget::hide() and then showing it again with QWidget::show() would not | 
|---|
|  | 137 | activate it from the Qt point of view which prevented the child widgets from | 
|---|
|  | 138 | getting the keyboard focus (and input). | 
|---|
|  | 139 |  | 
|---|
|  | 140 | - gui: Fixed a crash that could happen at program termination in DIVE mode if | 
|---|
|  | 141 | a top-level window had a native HWND window embedded in it. | 
|---|
|  | 142 |  | 
|---|
|  | 143 | - gui: Fixed SIGSEGV on SSE2 processors due to misaligned m128i variables | 
|---|
|  | 144 | on stack (an OS/2-specific GCC 4.x compiler bug). | 
|---|
|  | 145 |  | 
|---|
|  | 146 | - webkit: Fixed: Symbols typed with AltGr as a shift modifier could not be | 
|---|
|  | 147 | entered in line entry fields in WebKit-based applications. | 
|---|
|  | 148 |  | 
|---|
|  | 149 | - webkit: Fixed: posix_memalign() broken in kLIBC 0.6.3/4 whould crash in | 
|---|
|  | 150 | QWebKit under heavy memory consumption conditions. | 
|---|
|  | 151 |  | 
|---|
|  | 152 |  | 
|---|
| [740] | 153 | 4.6.2 (14-05-2010) | 
|---|
|  | 154 |  | 
|---|
|  | 155 | Improvements: | 
|---|
|  | 156 |  | 
|---|
|  | 157 | - general: Updated Qt codebase to version 4.6.2 (see the changes-4.6.2 file | 
|---|
|  | 158 | for details). Note that this version is binary incompatible with the | 
|---|
|  | 159 | previous version (see README.OS2 for more information). | 
|---|
|  | 160 |  | 
|---|
|  | 161 | - general: Implemented support for the OS/2 platform in the webkit module. The | 
|---|
|  | 162 | webkit module is used in many complex web-based applications such as web | 
|---|
|  | 163 | browsers to implement the JavaScript support. Note that the script module | 
|---|
|  | 164 | uses the JavaScript implementation from the WebKit project too and it was | 
|---|
|  | 165 | also ported to OS/2. The webkit module is always present in the official Qt | 
|---|
|  | 166 | build but is disabled by defautl in the custom builds due to big compilation | 
|---|
|  | 167 | times. | 
|---|
|  | 168 |  | 
|---|
|  | 169 | - general: Use declspec(dllexport) on OS/2 to significantly reduce the number | 
|---|
|  | 170 | of exports in generated DLLs. This mode is on by default which reduces the | 
|---|
|  | 171 | number of exported symbols by 90-100% in Qt DLLs and makes it not necessary | 
|---|
|  | 172 | to split the QtGui DLL in 3 parts in debug mode. The old method which causes | 
|---|
|  | 173 | all public symbols to be exported is still available using the "export_all" | 
|---|
|  | 174 | CONFIG option (see README.OS2 for details). | 
|---|
|  | 175 |  | 
|---|
|  | 176 | - general: Provide the "doc" WPI archive that contains the Qt reference | 
|---|
|  | 177 | documentation. | 
|---|
|  | 178 |  | 
|---|
|  | 179 | - corelib: Implemented native (XWP-based) file system watcher for OS/2 that | 
|---|
|  | 180 | does not eat CPU (which is best noticed in file dialogs showing directories | 
|---|
|  | 181 | containing hundreds of files. Requires XWorkplace to be installed. | 
|---|
|  | 182 |  | 
|---|
|  | 183 | - corelib: Implemented deriving the defaut locale from the process country | 
|---|
|  | 184 | code if LANG is not set and integration with the system locale object | 
|---|
|  | 185 | (System Setup -> Country Palette). See the QT_PM_NO_SYSTEM_LOCALE | 
|---|
|  | 186 | description in README.OS2 for details. | 
|---|
|  | 187 |  | 
|---|
|  | 188 | - gui: Implemented printing support through CUPS. Refer to section "PRINTING | 
|---|
|  | 189 | SUPPORT" in README.OS2 for details. | 
|---|
|  | 190 |  | 
|---|
|  | 191 | - gui: Implemented painting in widgets using DIVE (direct interface video | 
|---|
|  | 192 | extensions). Using DIVE gives a significant graphical performance boost, up | 
|---|
|  | 193 | to 100% in BLIT mode and 130% in FBSWM mode, depending on the combination of | 
|---|
|  | 194 | the graphics hardware, video driver and the current screen mode. See the | 
|---|
|  | 195 | QT_PM_DIVE and QT_PM_NO_DIVE description in README.OS2 for more details. | 
|---|
|  | 196 |  | 
|---|
|  | 197 | - gui: Improved the painting speed when not using DIVE. The performance boost | 
|---|
|  | 198 | varies from 30% to 200% (e.g. 3 times faster), depending on the combination | 
|---|
|  | 199 | of the graphics hardware, video driver and the current screen mode. | 
|---|
|  | 200 |  | 
|---|
|  | 201 | - gui: Enabled MMX/SSE support (on by default) to speed up graphical | 
|---|
|  | 202 | operations by a couple of percents. | 
|---|
|  | 203 |  | 
|---|
|  | 204 | - gui: Enabled accessibility support on OS/2. Note that in order to use the | 
|---|
|  | 205 | accessibility functions, a QAccessibleBridge plugin for the corresponding | 
|---|
|  | 206 | accessibility device is necessary but none of them exist at the present | 
|---|
|  | 207 | time. | 
|---|
|  | 208 |  | 
|---|
|  | 209 | - gui: Use native file icons in standard Qt file dialogs. | 
|---|
|  | 210 |  | 
|---|
|  | 211 | - assistant: Enabled the help module and made the Qt Assistant tool build on | 
|---|
|  | 212 | OS/2. Also enabled help and assistant examples and demos. | 
|---|
|  | 213 |  | 
|---|
|  | 214 | - demos: Enabled the browser demo application that makes use of the webkit | 
|---|
|  | 215 | module. | 
|---|
|  | 216 |  | 
|---|
|  | 217 | - demos: Enabled the qtdemo example that demonstrates all Qt features and | 
|---|
|  | 218 | acts as a launcher for other example and demo applications. | 
|---|
|  | 219 |  | 
|---|
|  | 220 | - gnumake/os2-g++: Switch the compiler to using the i486 instruciton set for | 
|---|
|  | 221 | code generation. This gives around 3% of the performance boost when | 
|---|
|  | 222 | painting. As a drawback, the code will no longer run on i386 PCs but it is | 
|---|
|  | 223 | assumed that it does not make sense to use Qt4 on these computers. | 
|---|
|  | 224 |  | 
|---|
|  | 225 | Fixes: | 
|---|
|  | 226 |  | 
|---|
|  | 227 | - general: Fixed: Building Qt applications with the "dev" WPI archive would | 
|---|
|  | 228 | fail due to extra spaces in the output object file names. | 
|---|
|  | 229 |  | 
|---|
|  | 230 | - corelib: Fixed: Regular files were treated as sequential streams which made | 
|---|
|  | 231 | the seek functionality unavailable. This in particular affected Qt Designer | 
|---|
|  | 232 | that didn't expect sequential streams when reading .ui files and refused to | 
|---|
|  | 233 | load files bigger than 8192 bytes as a result. | 
|---|
|  | 234 |  | 
|---|
|  | 235 | - corelib: Make sure the hardware error popup dialogs do not appear when | 
|---|
|  | 236 | opening the standard Qt file dialog and selecting a removable drive with no | 
|---|
|  | 237 | media inserted even with AUTOFAIL=YES in CONFIG.SYS | 
|---|
|  | 238 |  | 
|---|
|  | 239 | - corelib: QProcess: Fixed: Data could not be successfully read or written to | 
|---|
|  | 240 | the standard streams of the started process in 'highmem' link mode (which is | 
|---|
|  | 241 | on by default since 4.5.1 GA), as well as in normal link mode in some | 
|---|
|  | 242 | situations. | 
|---|
|  | 243 |  | 
|---|
|  | 244 | - corelib: Fixed QProcess::startDetached() which would not work in 'highmem' | 
|---|
|  | 245 | mode. | 
|---|
|  | 246 |  | 
|---|
|  | 247 | - corelib: QProcess: Fixed: Having stderr of a started child process | 
|---|
|  | 248 | redirected to a pipe (which is the default) would indirectly cause an | 
|---|
|  | 249 | impossibility to write anything to its stdin. | 
|---|
|  | 250 |  | 
|---|
|  | 251 | - corelib: QProcess: Get rid of the unexpected "DosQueryNPipeSemState returned | 
|---|
|  | 252 | 87" warning. | 
|---|
|  | 253 |  | 
|---|
|  | 254 | - corelib: QFileSystemWatcher: In the fall-back polling watcher, increased the | 
|---|
|  | 255 | sleep time between checks of all watched files from 1 second to 3 seconds to | 
|---|
|  | 256 | decrease the CPU load on big sets of watched files. Also, replaced the sleep | 
|---|
|  | 257 | between checking individual items with the yield call as it doesn't give | 
|---|
|  | 258 | significant improvement but just causes more CPU cycles to be spent between | 
|---|
|  | 259 | each check. | 
|---|
|  | 260 |  | 
|---|
|  | 261 | - corelib: Always return true from QFileInfo::isRoot()/isDir() for paths | 
|---|
|  | 262 | referring to root directories of drives with no media and always return | 
|---|
|  | 263 | false from QFileInfo::exists() for them. Also, don't lstat() on such paths | 
|---|
|  | 264 | since they are definitely not symlinks. This improves the file dialog | 
|---|
|  | 265 | appearance and behavior for removable drives. | 
|---|
|  | 266 |  | 
|---|
|  | 267 | - corelib: Protect against the frozen system when QSocketNotifier is given an | 
|---|
|  | 268 | unsupported socket (for example, an OS/2 file handle). There is still 100% | 
|---|
|  | 269 | CPU load in this case, but the application can be at least closed using | 
|---|
|  | 270 | normal means. | 
|---|
|  | 271 |  | 
|---|
|  | 272 | - corelib: Sockets: Fixed: "has data to read" socket notifications would be | 
|---|
|  | 273 | sometimes delivered with a delay depending on the frequency of timers which | 
|---|
|  | 274 | could significantly slow down network data transfer. | 
|---|
|  | 275 |  | 
|---|
|  | 276 | - corelib: QTemporaryFile: Fixed: Files were opened in O_TEXT mode which | 
|---|
|  | 277 | caused unexpected LF <-> CRLF translation. In particular, this broke | 
|---|
|  | 278 | QNetworkDiskCache functionality (seen in e.g. demos/browser as missing | 
|---|
|  | 279 | images and CSS sheets when read from cache). | 
|---|
|  | 280 |  | 
|---|
|  | 281 | - corelib: Fixed: Clear FPU CW in qdtoa() to avoid the floating point | 
|---|
|  | 282 | exception in various scenarios [patch by rudi]. | 
|---|
|  | 283 |  | 
|---|
|  | 284 | - gui: Fixed assertion in QVector::at() at startup. | 
|---|
|  | 285 |  | 
|---|
|  | 286 | - gui: Fixed assertion at #1125 in qwidget.cpp (due to an attempt to | 
|---|
|  | 287 | re-instantiate QDesktopWidget during application termination). | 
|---|
|  | 288 |  | 
|---|
|  | 289 | - gui: Select the correct icon for the drive letter in standard file dialogs | 
|---|
|  | 290 | depending on the drive type (floppy, hard disk etc) [patch by rudi]. | 
|---|
|  | 291 |  | 
|---|
|  | 292 | - gui: Fixed crash in PMMERGE during resize & move of the top level window | 
|---|
|  | 293 | with the complex layout (caused by reading outside the bitmap data). | 
|---|
|  | 294 |  | 
|---|
|  | 295 | - gui: Fixed: Never add tooltip windows to the top-level window list and only | 
|---|
|  | 296 | do so for splash windows if they have the Qt::WindowTitleHint flag set. | 
|---|
|  | 297 |  | 
|---|
|  | 298 | - 3rdparty: Added OS/2 support to clucene used by the help module for fulltext | 
|---|
|  | 299 | search in help files [based on the patch by rudi]. | 
|---|
|  | 300 |  | 
|---|
|  | 301 | - configure.cmd: Fixed: QT_BUILD_KEY (and QLibraryInfo::buildKey()) would | 
|---|
|  | 302 | always contain "release", even in debug builds, which caused debug builds to | 
|---|
|  | 303 | load the release plugins and refuse the debug ones. | 
|---|
|  | 304 |  | 
|---|
|  | 305 | - qmake/os2-g++: Use -Wl, to pass the object list response file to the | 
|---|
|  | 306 | linker as is instead of the expanded list of objects (this overcomes the | 
|---|
|  | 307 | 64KB limitation of the total process command line length in OS/2). | 
|---|
|  | 308 |  | 
|---|
|  | 309 |  | 
|---|
| [542] | 310 | 4.5.1 GA (05-02-2010) | 
|---|
| [524] | 311 |  | 
|---|
|  | 312 | Improvements: | 
|---|
|  | 313 |  | 
|---|
|  | 314 | - general: Switched the compiler to the GCC 4.4.2 build provided by Paul | 
|---|
|  | 315 | Smeldey. This gives better standard conformance, better code optimization | 
|---|
|  | 316 | and provides more compact DLLs and EXEs whose size is greater than ~1M. | 
|---|
|  | 317 |  | 
|---|
|  | 318 | - corelib: QSettings: Use IniFormat (plain INI files) when NativeFormat is | 
|---|
|  | 319 | requested instead of the Open32 registry which is known to be unstable and | 
|---|
|  | 320 | can be easily corrupted. The old behavior may be restored using the | 
|---|
|  | 321 | QT_PM_REGISTRY environment variable. | 
|---|
|  | 322 |  | 
|---|
|  | 323 | - corelib: Use UniStrcoll for QString::localeAwareCompare() for locale-aware | 
|---|
|  | 324 | comparison of NLS strings. | 
|---|
|  | 325 |  | 
|---|
|  | 326 | - gui: Implemented full Direct Manipulation (Drag And Drop) support. This | 
|---|
|  | 327 | includes dragging text, URLs and files between PM and Qt applications, | 
|---|
|  | 328 | dragging any MIME data across Qt applications, setting custom drag pointer | 
|---|
|  | 329 | pixmaps, painting in widgets while dragging. | 
|---|
|  | 330 |  | 
|---|
|  | 331 | - gui: Implemented session management with the QSessionManager class. | 
|---|
|  | 332 |  | 
|---|
|  | 333 | - gui: Fully implemented the QDesktopServices class. | 
|---|
|  | 334 |  | 
|---|
|  | 335 | - gui: Added support for numpad keys and for some common multimedia keys | 
|---|
|  | 336 | recognized by eCS (volume, home, search, favorites). | 
|---|
|  | 337 |  | 
|---|
|  | 338 | - gui: QCursor: Added missing cursor shapes and implemented support for custom | 
|---|
|  | 339 | cursor shapes. | 
|---|
|  | 340 |  | 
|---|
|  | 341 | - gui: Implemented QFontDatabase::addApplicationFont()/removeApplicationFont() | 
|---|
|  | 342 | and friends. | 
|---|
|  | 343 |  | 
|---|
|  | 344 | - gui: Implemented proper generation of possible key and modifier combinations | 
|---|
|  | 345 | for a given key event. This in particular enables Ctrl+<letter> shortcuts | 
|---|
|  | 346 | for non-Latin languages and also makes Ctrl+<letter>, Alt+<letter> and | 
|---|
|  | 347 | similar shortcuts language-neutral. | 
|---|
|  | 348 |  | 
|---|
|  | 349 | - gui: QWidget: When setting the parent, take the parent's resolve masks to | 
|---|
|  | 350 | make sure attributes imposed by the user on the parent won't be overriden | 
|---|
|  | 351 | byv the natural palette for this widget if it differs from | 
|---|
|  | 352 | QApplication::palette() [vendor bug]. | 
|---|
|  | 353 |  | 
|---|
|  | 354 | - gui: Use a normal border for top-level Tool widgets since the thin one is | 
|---|
|  | 355 | too thin and cannot be resized. | 
|---|
|  | 356 |  | 
|---|
|  | 357 | - gui: Implemented delivering of QEvent::NonClientAreaMouse* events to | 
|---|
|  | 358 | top-level widgets. This enables undocked dock widgets to be docked back by | 
|---|
|  | 359 | a double click on the title bar and also by moving over the dock areas. | 
|---|
|  | 360 |  | 
|---|
|  | 361 | - plugins: Enabled the sqlite3 plugin which makes the sql module (and | 
|---|
|  | 362 | applications depending on it) actually usable. | 
|---|
|  | 363 |  | 
|---|
|  | 364 | - tools: Enabled the Qt Designer application. | 
|---|
|  | 365 |  | 
|---|
|  | 366 | - tools: Enabled the following toos: pixeltool, q3toq4, xmplatterns. | 
|---|
|  | 367 |  | 
|---|
|  | 368 | - qmake/os2-g++: Recognize the "map" option in the CONFIG variable that allows | 
|---|
| [541] | 369 | to turn the generation of .map files on and off. The option is set by | 
|---|
|  | 370 | default. | 
|---|
| [524] | 371 |  | 
|---|
| [541] | 372 | - qmake/os2-g++: Recognize the "highmem" option in the CONFIG variable that | 
|---|
|  | 373 | allows to enabled memory support in LIBC for genereated DLLs and | 
|---|
|  | 374 | executables. The option is set by default. | 
|---|
|  | 375 |  | 
|---|
| [524] | 376 | Fixes: | 
|---|
|  | 377 |  | 
|---|
|  | 378 | - corelib: Created wrappers for all Win* and Gpi* calls that restore the FPU | 
|---|
|  | 379 | Control Word to what C/C++ programs expect. This fixes crashes in various | 
|---|
|  | 380 | Qt applications (e.g. mp3diags) due to SIGFPE. | 
|---|
|  | 381 |  | 
|---|
|  | 382 | - corelib: QLibraryInfo: Fixed: qt.conf would not have been loaded if a | 
|---|
|  | 383 | component path was requested before QCoreApplication instance creation. | 
|---|
|  | 384 |  | 
|---|
|  | 385 | - corelib: QLibraryInfo: Changed default "Settings" path to %ETC%/xdg. | 
|---|
|  | 386 | Also use %ETC%/qtsys.conf as the system-wide qt.conf instead of | 
|---|
|  | 387 | %ETC%/qt/qtsys.conf. | 
|---|
|  | 388 |  | 
|---|
|  | 389 | - corelib: QFSFileEngine: Fixed: On OS/2, trailing spaces in file names are | 
|---|
|  | 390 | ignored ("readme " = "readme") but kLIBC doesn't handle this well so strip | 
|---|
|  | 391 | them before passing to LIBC APIs. | 
|---|
|  | 392 |  | 
|---|
|  | 393 | - corelib: QFile::copy(): Use DosCopy() instead of read/write. | 
|---|
|  | 394 |  | 
|---|
|  | 395 | - corelib: Fixed: QProcess::startDetached() would either crash or fail to | 
|---|
|  | 396 | start a process. | 
|---|
|  | 397 |  | 
|---|
| [541] | 398 | - corelib: Fixed: QFileInfo::isExecutable() would return true for all files on | 
|---|
|  | 399 | local OS/2 file systems. | 
|---|
|  | 400 |  | 
|---|
| [524] | 401 | - gui: Fixed: Popups shown when another application is active were not | 
|---|
|  | 402 | controllable with keyboard and didn't close on an outside mouse click. | 
|---|
|  | 403 |  | 
|---|
|  | 404 | - gui: Fixed: Visible title bar and frame of the top-level window after | 
|---|
|  | 405 | switching to fullscreen. | 
|---|
|  | 406 |  | 
|---|
|  | 407 | - gui: Fixed: Wrong widget-relative mouse position in mouse events. This fixes | 
|---|
|  | 408 | problems with dragging widget splitters (separators) in applications using | 
|---|
|  | 409 | dock widgets. | 
|---|
|  | 410 |  | 
|---|
|  | 411 | - gui: Fixed: QEvent::Enter/Leave events were delivered incorrectly if the | 
|---|
|  | 412 | alien child widget belonging to a native parent intersected with a native | 
|---|
|  | 413 | child of this parent (this in particular caused extended tool bars to | 
|---|
|  | 414 | immediately un-extend once the mouse moves over the extended part). | 
|---|
|  | 415 |  | 
|---|
|  | 416 | - gui: Fixed: Mouse press events replayed after closing the popup by clicking | 
|---|
|  | 417 | outside it had incorrect coordinates. This resulted into various kinds of | 
|---|
|  | 418 | misbehavior including spatial text selection in QTextEdit widgets after | 
|---|
|  | 419 | closing popups by clicking inside these widgets. | 
|---|
|  | 420 |  | 
|---|
|  | 421 | - gui: Fixed: The default application icon embedded into the executable was | 
|---|
|  | 422 | not actually used as the default window icon for top-level widgets. | 
|---|
|  | 423 |  | 
|---|
|  | 424 | - qmake/os2-g++: Do not use EXEPACK tool on static libraries. | 
|---|
|  | 425 |  | 
|---|
| [541] | 426 | - qmake: Several fixes to make install targets work correctly. | 
|---|
| [524] | 427 |  | 
|---|
| [541] | 428 |  | 
|---|
| [397] | 429 | Beta 5 (06-12-2009) | 
|---|
|  | 430 |  | 
|---|
|  | 431 | Improvements: | 
|---|
|  | 432 |  | 
|---|
|  | 433 | - gui: Added support for the system clipboard. Qt can now exchange plain text, | 
|---|
|  | 434 | HTML (Mozilla application suite) and bitmaps with other PM applications, as | 
|---|
|  | 435 | well as all supported MIME data types with other Qt-based applications. | 
|---|
|  | 436 |  | 
|---|
|  | 437 | - corelib: Use system unicode conversion routines to convert from the system | 
|---|
|  | 438 | code page to Unicode and back. This makes it unnecessary to specify the | 
|---|
|  | 439 | system encoding in the LANG environment variable -- Qt will use the system | 
|---|
|  | 440 | encoding of the current process. | 
|---|
|  | 441 |  | 
|---|
|  | 442 | - gui: Implemented support for the IME input box (used on DBCS systems) in Qt | 
|---|
|  | 443 | applications with a known limitation that the input box is always positioned | 
|---|
|  | 444 | at the lower left corner of the top-level window. | 
|---|
|  | 445 |  | 
|---|
|  | 446 | - gui: Improved font handling on DBCS systems (patch by komh): | 
|---|
|  | 447 | * Read national face names from font files instead of always taking the | 
|---|
|  | 448 | Latin name. | 
|---|
|  | 449 | * Use the PM_AssociateFont registry key to select a fallback font for | 
|---|
|  | 450 | missing characters. | 
|---|
|  | 451 |  | 
|---|
|  | 452 | - gui: Implemented QPixmap::grabWindow() which takes a screenshot of a window. | 
|---|
|  | 453 |  | 
|---|
|  | 454 | - gui: Steal the Alt key from the PM which prevents the PM system menu to be | 
|---|
|  | 455 | shown when single Alt is pressed in a Qt application. The system menu may | 
|---|
|  | 456 | still be called using Alt+Space. Note that this also disables all default | 
|---|
|  | 457 | shortuts from the system menu (Alt+F7, Alt+F10 etc.) so that they available | 
|---|
|  | 458 | to Qt applications now. Exceptions are Alt+F4, Ctrl+Esc, Alt+Esc which are | 
|---|
|  | 459 | not passed to Qt and will function as in regular PM applciations. | 
|---|
|  | 460 |  | 
|---|
|  | 461 | - general: Binary Qt library builds are made portable: they do not contain | 
|---|
|  | 462 | hard-coded paths to various Qt components any more and use relative | 
|---|
|  | 463 | locations whenever possible. See | 
|---|
|  | 464 | http://svn.netlabs.org/qt4/browser/tags/4.5.1-os2-beta5/doc/src/qt-conf.qdoc | 
|---|
|  | 465 | for more info. | 
|---|
|  | 466 |  | 
|---|
|  | 467 | - corelib: Improved the polling QFileSystemWatcher implementation so that it | 
|---|
|  | 468 | doesn't eat all CPU when there are more than 100 items to watch, like when | 
|---|
|  | 469 | showing a file open dialog with many files in a directory. | 
|---|
|  | 470 |  | 
|---|
|  | 471 | - qmake: Improved processing of the project library list (LIBS variable) to | 
|---|
|  | 472 | avoid appearance of raw library names that require substitution (fixes the | 
|---|
|  | 473 | debug build of linguist). | 
|---|
|  | 474 |  | 
|---|
|  | 475 | - qmake: Added support for DEF_FILE_VERSION, DEF_FILE_DESCRIPTION and | 
|---|
|  | 476 | DEF_FILE_VENDOR project variables that allow to embed the description | 
|---|
|  | 477 | string into a generated DLL or executable. For compatibility with other | 
|---|
|  | 478 | platforms, these variables by default are mapped to VERSION, | 
|---|
|  | 479 | QMAKE_TARGET_PRODUCT + QMAKE_TARGET_DESCRIPTION + QMAKE_TARGET_COPYRIGHT and | 
|---|
|  | 480 | QMAKE_TARGET_COMPANY, respectively. | 
|---|
|  | 481 |  | 
|---|
|  | 482 | Fixes: | 
|---|
|  | 483 |  | 
|---|
|  | 484 | - gui: Table views showed alternate rows in black color instead of light gray. | 
|---|
|  | 485 |  | 
|---|
|  | 486 | - gui: If some font style (e.g. Bold) does not provide characters for some | 
|---|
|  | 487 | script (e.g. Cyrillic) while the Normal style does, a different font will be | 
|---|
|  | 488 | chosen for Bold Cyrillic instead of drawing empty boxes. | 
|---|
|  | 489 |  | 
|---|
|  | 490 | - corelib: Fixed two issues related to loading text codec plugins from the | 
|---|
|  | 491 | application's directory. | 
|---|
|  | 492 |  | 
|---|
|  | 493 | - corelib: Fixed QDir::absoluteFilePath(), midir()/mkpath(), rmdir()/rmpath() | 
|---|
|  | 494 | that didn't properly handle relative and UNC paths which could cause various | 
|---|
|  | 495 | path-related failures. | 
|---|
|  | 496 |  | 
|---|
|  | 497 | - corelib: Properly report root directories of drives to Qt. This makes | 
|---|
|  | 498 | letters of removable drives always seen by Qt (for example, in the file open | 
|---|
|  | 499 | dialog) even if the medium isn't currently inserted. | 
|---|
|  | 500 |  | 
|---|
|  | 501 | - corelib: Fixed unnecessary access to removable drives and a long delay and | 
|---|
|  | 502 | noice caused by it when showing a file open dialog in Qt applications. | 
|---|
|  | 503 |  | 
|---|
| [740] | 504 |  | 
|---|
| [397] | 505 | Beta 4 (11-11-2009) | 
|---|
|  | 506 |  | 
|---|
|  | 507 | Improvements: | 
|---|
|  | 508 |  | 
|---|
|  | 509 | - Added sound support (implemented QSound class). | 
|---|
|  | 510 |  | 
|---|
|  | 511 | - Added system tray support (QSystemTrayIcon class). This support requires | 
|---|
|  | 512 | the Extended system tray XCenter plugin to be installed. See the note above | 
|---|
|  | 513 | on how to compile and install this plugin. | 
|---|
|  | 514 |  | 
|---|
|  | 515 | - Enabled QPlugin support on OS/2. This in turn enables SVG support for | 
|---|
|  | 516 | QIcon (which is built as a Qt plugin DLL by default). | 
|---|
|  | 517 |  | 
|---|
|  | 518 | - Better widget modality support (widgets blocked by modality cannot be | 
|---|
|  | 519 | activated and moved using the mouse and the title bar anymore). | 
|---|
|  | 520 |  | 
|---|
|  | 521 | - Added support for 'console' and 'windows' CONFIG options in .pro files. | 
|---|
|  | 522 | Now, if 'windows' is present, the target executable will have the WINDOWAPI | 
|---|
|  | 523 | attribute set which effectively makes it a PM application. This, in | 
|---|
|  | 524 | particular, disables standard input, output and error streams so that when | 
|---|
|  | 525 | started, the application will not have a console window attached to it. | 
|---|
|  | 526 | By default, 'console' mode is active unless you perform a release build and | 
|---|
|  | 527 | the application is linked against the QtGui library ('QT = gui' in .pro), | 
|---|
|  | 528 | in which case the default is 'windows'. | 
|---|
|  | 529 |  | 
|---|
|  | 530 | - Improved paint speed in Qt windows which should increase overall graphical | 
|---|
|  | 531 | UI performance by 10%-20% in Qt4 applications. | 
|---|
|  | 532 |  | 
|---|
|  | 533 | - Implemented setting window icons for top-level windows (using | 
|---|
|  | 534 | QWidget::setWindowIcon()). | 
|---|
|  | 535 |  | 
|---|
|  | 536 | - Added LxLite support to provide compression for executables and DLLs. The | 
|---|
|  | 537 | compression is controlled by the 'exepack' CONFIG option which is turned on | 
|---|
|  | 538 | by default for release builds if the LxLite executable is present in PATH | 
|---|
|  | 539 | during the configure.cmd invocation. The compression may be turned off on a | 
|---|
|  | 540 | per-project basis by adding a 'CONFIG -= exepack' line to the .pro file. | 
|---|
|  | 541 |  | 
|---|
|  | 542 | - Improved the section of this README.OS2 file that describes how to properly | 
|---|
|  | 543 | set the LANG variable to have correct national characters in file names and | 
|---|
|  | 544 | in window titles of Qt applications. | 
|---|
|  | 545 |  | 
|---|
|  | 546 | Fixes: | 
|---|
|  | 547 |  | 
|---|
|  | 548 | - QProcess: The executable's path was not always added to BEGINLIBPATH. | 
|---|
|  | 549 |  | 
|---|
|  | 550 | - Fixed-size top-level widgets could not be moved. | 
|---|
|  | 551 |  | 
|---|
|  | 552 | - Application crash after pressing a button in a dialog window that resizes | 
|---|
|  | 553 | this dialog (for example, makes it bigger to show more information). | 
|---|
|  | 554 |  | 
|---|
|  | 555 | - Resizing top level windows using the top border broke mouse coordinates so | 
|---|
|  | 556 | that Qt tought you pressed the mouse button in a different place of the | 
|---|
|  | 557 | window than where you actually did it. | 
|---|
|  | 558 |  | 
|---|
|  | 559 | - Events posted with QCoreApplication::postEvent() were only processed upon | 
|---|
|  | 560 | receiving a next message from the system. This caused funny delays such as | 
|---|
|  | 561 | controls in a Qt window still indicating the input focus (the dotted | 
|---|
|  | 562 | rectangle) after the window was deactivated and losing this indication only | 
|---|
|  | 563 | when the mouse pointer was moved over the window. | 
|---|
|  | 564 |  | 
|---|
|  | 565 | - Don't replay mouse button press on a push button that is showing a popup | 
|---|
|  | 566 | menu but instead hide the popup menu and unpress the button to get more | 
|---|
|  | 567 | native look and feel. | 
|---|
|  | 568 |  | 
|---|
|  | 569 | - Deactivating the window with a push button showing a popup menu would hide | 
|---|
|  | 570 | the popup but leave the button pressed. | 
|---|
|  | 571 |  | 
|---|
|  | 572 | - Fixed incorrect Qt dirty widget region calculation when processing WM_PAINT | 
|---|
|  | 573 | messages. This fixes a lot of redraw problems (menu items in the main menu | 
|---|
|  | 574 | bar, text in combo-boxes, various redraw problems in smplayer when switching | 
|---|
|  | 575 | interfaces and going to/from fullscreen, and similar). | 
|---|
|  | 576 |  | 
|---|
| [740] | 577 |  | 
|---|
| [397] | 578 | Beta 3 (17-10-2009) | 
|---|
|  | 579 |  | 
|---|
|  | 580 | Improvements: | 
|---|
|  | 581 |  | 
|---|
|  | 582 | - Added proper font support. All outline (scalable) fonts visible in the Font | 
|---|
|  | 583 | Palette should be now recognized by Qt. The fonts are hinted and antialiased | 
|---|
|  | 584 | using the Freetype2 library when drawing text. | 
|---|
|  | 585 |  | 
|---|
|  | 586 | - System fonts and colors are now used by default for Qt widgets. | 
|---|
|  | 587 |  | 
|---|
|  | 588 | - configure.cmd now generates the main Makefile to simplify building of Qt. | 
|---|
|  | 589 |  | 
|---|
|  | 590 | - corelib: QProcess: Implemented child termination detection. | 
|---|
|  | 591 |  | 
|---|
|  | 592 | - corelib: QProcess: Implemented redirection to another QProcess. | 
|---|
|  | 593 |  | 
|---|
|  | 594 | - corelib: QProcess now uses native pipes for stream redirection. This fixes | 
|---|
|  | 595 | various issues like 'Socket operation on non-socket' errors during | 
|---|
|  | 596 | parent-child communication. | 
|---|
|  | 597 |  | 
|---|
|  | 598 | - corelib: QProcess: Make sure that the directory containing the executable | 
|---|
|  | 599 | file is always searched (first) for DLLs needed by this executable. This | 
|---|
|  | 600 | makes it unnecessary to change the current directory to the executable's | 
|---|
|  | 601 | directory or add it to LIBPATH before starting the Qt application. | 
|---|
|  | 602 |  | 
|---|
|  | 603 | - corelib: QProcess can now start applications of different type (e.g. PM | 
|---|
|  | 604 | applications from text-mode applications) directly. | 
|---|
|  | 605 | QProcess::startDetached() also works. | 
|---|
|  | 606 |  | 
|---|
|  | 607 | - qmake: In debug_and_release mode, 'release-(all|clean|distclean|install| | 
|---|
|  | 608 | uninstall)' and 'debug-(all|clean|distclean|install|uninstall)' make | 
|---|
|  | 609 | targets are now available. | 
|---|
|  | 610 |  | 
|---|
|  | 611 | Fixes: | 
|---|
|  | 612 |  | 
|---|
|  | 613 | - Doing 'make clean' could result into a hang due to CMD.EXE command line | 
|---|
|  | 614 | length limitation. | 
|---|
|  | 615 |  | 
|---|
|  | 616 | - corelib: Fixed: QProcess: Lost data during stream redirection. | 
|---|
|  | 617 |  | 
|---|
|  | 618 | - corelib: QSettings could sometimes distort data when saving it to the | 
|---|
|  | 619 | registry (by replacing some characters with codes 0x80 and above with '?'). | 
|---|
|  | 620 |  | 
|---|
| [740] | 621 |  | 
|---|
| [397] | 622 | Beta 2 (17-09-2009) | 
|---|
|  | 623 |  | 
|---|
|  | 624 | Improvements: | 
|---|
|  | 625 |  | 
|---|
|  | 626 | - Ported the network module (QtNetwork4.dll) and added to the default build. | 
|---|
|  | 627 |  | 
|---|
|  | 628 | - Added modules sql, svg, xmlpatterns, scripttools, plugins to the default | 
|---|
|  | 629 | build. | 
|---|
|  | 630 |  | 
|---|
|  | 631 | - gui: Added recognition of dead keys which makes it possible to type | 
|---|
|  | 632 | umlauts and other accented characters that require composition. | 
|---|
|  | 633 |  | 
|---|
|  | 634 | - gui: Implemented standard cursor shapes in Qt applications. | 
|---|
|  | 635 |  | 
|---|
|  | 636 | Fixes: | 
|---|
|  | 637 |  | 
|---|
|  | 638 | - qmake: Fixed the trailing slash problem which caused qmake to generate | 
|---|
|  | 639 | incorrect makefiles and fail to build the Qt library on some platforms. | 
|---|
|  | 640 |  | 
|---|
|  | 641 | - configure.cmd: Return to the root source tree directory after building | 
|---|
|  | 642 | qmake. | 
|---|
|  | 643 |  | 
|---|
|  | 644 | - qmake: Automatically use different link flags when linking qmake with WLINK. | 
|---|
|  | 645 |  | 
|---|
|  | 646 | - qmake: Recognize TARGET_SHORT that allows to specify a short DLL name | 
|---|
|  | 647 | (vital for OS/2 which reqires DLL names to be in 8x3 format). | 
|---|
|  | 648 |  | 
|---|
|  | 649 | - build: Set short DLL names for Qt modules on OS/2 using TARGET_SHORT. | 
|---|
|  | 650 |  | 
|---|
|  | 651 | - corelib: Various fixes to file system classes that deal with the file name | 
|---|
|  | 652 | case (which should be ignored on OS/2) and forward and back slashes. | 
|---|
|  | 653 |  | 
|---|
|  | 654 | - corelib: Fixed: QMutex could let more than one thread access the protected | 
|---|
|  | 655 | resource. | 
|---|
|  | 656 |  | 
|---|
|  | 657 | - corelib: Standard stream redirection in QProcess should now work for | 
|---|
|  | 658 | kLIBC-based child processes. Redirection for all other applications | 
|---|
|  | 659 | (such as CMD.EXE) will be added later (seems to be a kLIBC bug/feature). | 
|---|
|  | 660 |  | 
|---|
|  | 661 | - gui: Fixed erroneous QFileDialog behavior (duplicate entires in the list, | 
|---|
|  | 662 | incomplete contents of the root directory of the current drive). | 
|---|
|  | 663 |  | 
|---|
|  | 664 | - gui: Fixed: Ctrl+A..Z should generate characters with codes 0x01-0x1F. | 
|---|
|  | 665 |  | 
|---|
|  | 666 | - gui: Fixed: Close popups when resizing/moving the top level window. | 
|---|
|  | 667 |  | 
|---|
|  | 668 | - gui: Enabled actual enforcing min/max Qt widget constraints for top-level windows. | 
|---|
|  | 669 |  | 
|---|
|  | 670 | - gui: Fixed child widget duplication when resizing top level widgets after | 
|---|
|  | 671 | showing a popup; moving native child widgets should now work correctly. | 
|---|
|  | 672 | This also fixed a number of redraw problems (for example, drawing the main | 
|---|
|  | 673 | menu and tool bars in smplayer, moving tool bars around in other | 
|---|
|  | 674 | applications such as textedit from the demo folder). | 
|---|
|  | 675 |  | 
|---|
| [740] | 676 |  | 
|---|
| [397] | 677 | Beta 1 (29-08-2009) | 
|---|
|  | 678 |  | 
|---|
|  | 679 | - First public release. | 
|---|