| 1 | This is Beta 4 of Qt version 4.5.1 for OS/2 and eCS. | 
|---|
| 2 |  | 
|---|
| 3 | This document contains a brief information on the OS/2 version of the Qt library | 
|---|
| 4 | plus a brief list of OS/2-specific changes from release to release (section | 
|---|
| 5 | CHANGES below). Please visit the project page at | 
|---|
| 6 |  | 
|---|
| 7 | http://svn.netlabs.org/qt4/wiki | 
|---|
| 8 |  | 
|---|
| 9 | to get more information and the latest news and also to report bugs. | 
|---|
| 10 |  | 
|---|
| 11 |  | 
|---|
| 12 |  | 
|---|
| 13 | REQUIREMENTS | 
|---|
| 14 |  | 
|---|
| 15 | In order to compile the Qt library, you will need the following tools: | 
|---|
| 16 |  | 
|---|
| 17 | - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems. | 
|---|
| 18 |  | 
|---|
| 19 | - InnoTek GCC compiler version 3.3.5 CSD3 or above (not tested). | 
|---|
| 20 | You can download a copy of the compiler using the following link: | 
|---|
| 21 |  | 
|---|
| 22 | ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip | 
|---|
| 23 |  | 
|---|
| 24 | - Patched OpenWatcom linker which you can download from here: | 
|---|
| 25 |  | 
|---|
| 26 | ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip | 
|---|
| 27 |  | 
|---|
| 28 | Note that if you use IBM ILINK (no matter what version), you will | 
|---|
| 29 | not be able to build the debug version of the library due to | 
|---|
| 30 | bugs/limitations of ILINK. | 
|---|
| 31 |  | 
|---|
| 32 | - GNU Make 3.81beta1 or above (not tested) available at: | 
|---|
| 33 |  | 
|---|
| 34 | http://unix.os2site.com/pub/binary/make/make-3_81beta1-bin-static.zip | 
|---|
| 35 |  | 
|---|
| 36 | - LxLite 1.3.3 or above (not tested) if you want Qt DLLs and application | 
|---|
| 37 | executables to be compressed (to save hard disk space and load time). If | 
|---|
| 38 | you have a recent eComStation installation (e.g. 2.0 rc6) you will already | 
|---|
| 39 | have LxLite installed. Otherwise, you may take it from here: | 
|---|
| 40 |  | 
|---|
| 41 | http://www.os2site.com/sw/util/archiver/lxlt133.zip | 
|---|
| 42 |  | 
|---|
| 43 | After unpacking the GCC archive, you will have to set up the compiler | 
|---|
| 44 | environment by invoking gccenv.cmd from the bin subdirectory with the | 
|---|
| 45 | correct arguments (type gccenv.cmd -? for help). For the OpenWatcom | 
|---|
| 46 | linker, specify WLINK as the second argument. | 
|---|
| 47 |  | 
|---|
| 48 | You will also need to perform the following steps: | 
|---|
| 49 |  | 
|---|
| 50 | - Make sure the selected linker, the make utility and LxLite executable are | 
|---|
| 51 | in PATH. | 
|---|
| 52 |  | 
|---|
| 53 | - Make sure CMD.EXE is your command line processor (the generated makefiles | 
|---|
| 54 | will rely on its 'copy', 'if' and other commands). If you have a Unix shell | 
|---|
| 55 | (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE | 
|---|
| 56 | by doing 'set MAKESHELL=C:\OS2\CMD.EXE' where C: is your boot drive. | 
|---|
| 57 |  | 
|---|
| 58 | - set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive. | 
|---|
| 59 |  | 
|---|
| 60 | - Make sure that there are no traces of any other Watcom or OpenWatcom | 
|---|
| 61 | installation in the environment where you build Qt as it will most likely | 
|---|
| 62 | interfere with the patched OpenWatcom linker we use. This basically means | 
|---|
| 63 | removing all *WATCOM* environment variables and removing references to those | 
|---|
| 64 | Watcom installations from PATH. | 
|---|
| 65 |  | 
|---|
| 66 | Note that the QTDIR environment variable used by previous Qt versions is not | 
|---|
| 67 | used by Qt4 anymore (except two rare cases that do not affect the OS/2 platform | 
|---|
| 68 | anyway and are probably leftovers after the migration of the qmake feature | 
|---|
| 69 | specifications to Qt4). Therefore, there is no need to set this variable | 
|---|
| 70 | explicitly. See also a note below about hard-coded paths to the source tree. | 
|---|
| 71 |  | 
|---|
| 72 | There is also no need to set the QMAKESPEC variable explicitly. If it is absent, | 
|---|
| 73 | qmake will use the specification stored in the <Qt4_Home>/mkspecs/default | 
|---|
| 74 | directory, which on OS/2 always refers to the "os2-g++" specification, the only | 
|---|
| 75 | one supported at the present time. | 
|---|
| 76 |  | 
|---|
| 77 | When the environment is set up, go to the directory where you unpacked the | 
|---|
| 78 | Qt4 source tree and type: | 
|---|
| 79 |  | 
|---|
| 80 | configure.cmd | 
|---|
| 81 |  | 
|---|
| 82 | This will set up the library (by creating necessary configuration and include | 
|---|
| 83 | files and a bunch of Makefiles for variuos components) and build the qmake | 
|---|
| 84 | utility. | 
|---|
| 85 |  | 
|---|
| 86 | The next step is to go to the src subdirectory and type: | 
|---|
| 87 |  | 
|---|
| 88 | make | 
|---|
| 89 |  | 
|---|
| 90 | This will compile and link the library. Note that by default both the release | 
|---|
| 91 | and the debug version of the library are built (please be patient, it may take | 
|---|
| 92 | quite some time depending on your hardware). The release and debug libraries can | 
|---|
| 93 | co-exist in the same source tree and may be used in parallel: all the debug DLLs | 
|---|
| 94 | get a 'd' letter in their name preceeding the Qt major version number and use | 
|---|
| 95 | separate directories for object files. | 
|---|
| 96 |  | 
|---|
| 97 | To save time, you may also build the release and the debug versions of the | 
|---|
| 98 | library separately by typing 'make release' or 'make debug' accordingly | 
|---|
| 99 | instead of just 'make'. | 
|---|
| 100 |  | 
|---|
| 101 | Once the library is successfully built, you may try to compile the demos | 
|---|
| 102 | and examples by visiting the individual example subdirectories in the source | 
|---|
| 103 | tree and typing 'qmake' followed by one of 'make', 'make release' or | 
|---|
| 104 | 'make debug' in that subdirectory. | 
|---|
| 105 |  | 
|---|
| 106 | NOTES: | 
|---|
| 107 |  | 
|---|
| 108 | 1. Please keep in mind that due to dropping the QTDIR variable recognition, | 
|---|
| 109 | qmake.exe now unconditionally uses hard-coded paths to locate various Qt4 | 
|---|
| 110 | components (such as the include or source directory) during the makefile | 
|---|
| 111 | generation process and therefore if you move the Qt source tree to another | 
|---|
| 112 | location you will need to run configure.cmd again in order to update these | 
|---|
| 113 | hard-coded paths and rebuild qmake and other dependent parts of the | 
|---|
| 114 | library. | 
|---|
| 115 |  | 
|---|
| 116 | 2. This version of Qt for OS/2 includes the Extended system tray plugin for | 
|---|
| 117 | XCenter/eCenter which is necessary to enable Qt support for the special | 
|---|
| 118 | notification area on the XCenter/eCenter panel (called the "system tray") | 
|---|
| 119 | which is used by many long-running applications to display their status. | 
|---|
| 120 | In order to activate this support, you need to install this plugin to your | 
|---|
| 121 | XCenter or eCenter. The plugin is built during the normal Qt build process | 
|---|
| 122 | and can be found in the file \plugins\xcenter\xsystray.dll in the Qt source | 
|---|
| 123 | tree. In order to install the plugin, do the following: | 
|---|
| 124 |  | 
|---|
| 125 | a. Copy xsystray.dll to <XWorkplace installation folder>\plugins\xcenter\ | 
|---|
| 126 | (on eComStation, this will be C:\ecs\system\ewps\plugins\xcenter\ where | 
|---|
| 127 | C: is your boot drive). | 
|---|
| 128 |  | 
|---|
| 129 | b. Restart WPS. | 
|---|
| 130 |  | 
|---|
| 131 | c. Add the "Extended system tray" widget to the XCenter/eCenter panel using | 
|---|
| 132 | the XCenter context menu ('Create new widget'). | 
|---|
| 133 |  | 
|---|
| 134 | Note that if you upgrade from the previous version of the plugin then | 
|---|
| 135 | please unlock xsystray.dll in the target folder using the UNLOCK.EXE | 
|---|
| 136 | utility (which you can find in the LxLite package, for example) before | 
|---|
| 137 | performing step a., otherwise the copy operation will fail. | 
|---|
| 138 |  | 
|---|
| 139 |  | 
|---|
| 140 |  | 
|---|
| 141 | CURRENT LIMITATIONS | 
|---|
| 142 |  | 
|---|
| 143 | 1. configure.cmd is not yet capable to generate individual Makefiles for demos | 
|---|
| 144 | and examples, it only generates the main Makefile that builds the library | 
|---|
| 145 | and the necessary tools. Demos and examples can be compiled by hand | 
|---|
| 146 | (as described above). | 
|---|
| 147 |  | 
|---|
| 148 | 2. OS/2 bitmap fonts are not yet supported. Use TTF or Type1 (PFB) fonts with | 
|---|
| 149 | Qt. | 
|---|
| 150 |  | 
|---|
| 151 | 3. Make sure you have the LANG environment variable properly set. The format | 
|---|
| 152 | is 'set LANG=ll_CC[.encoding]' where <ll> is the language code, <CC> is the | 
|---|
| 153 | country code and <encoding> is the optional encoding to use. If LANG is | 
|---|
| 154 | missing or invalid, string conversion operations may work incorrectly | 
|---|
| 155 | resulting in distorted text input or output. Note that for most languages | 
|---|
| 156 | you will have to specify the encoding number explicitly because Qt and OS/2 | 
|---|
| 157 | usually disagree about the default encoding for the given language. | 
|---|
| 158 |  | 
|---|
| 159 | To specify the correct encoding for Qt you need to know your system code | 
|---|
| 160 | page number. You can find this number in the CODEPAGE statement of your | 
|---|
| 161 | CONFIG.SYS. Note however that the code page number from CONFIG.SYS and the | 
|---|
| 162 | encoding name you specify in LANG are different things. Qt doesn't | 
|---|
| 163 | understand IBM code page numbers directly. In most cases, you can get the | 
|---|
| 164 | encoding name by prepending 'cp' to the code page number (for example, | 
|---|
| 165 | 'cp850' for code page 850) but sometimes this will not work because not all | 
|---|
| 166 | encodings have 'cp'-like aliases. In this case, you should google around to | 
|---|
| 167 | find the correct encoding name for your code page number. Here is a couple | 
|---|
| 168 | of examples of the proper LANG specification: | 
|---|
| 169 |  | 
|---|
| 170 | set LANG=de_DE.cp850             - for the German OS/2 locale | 
|---|
| 171 | set LANG=ru_RU.cp866             - for the Russian OS/2 locale | 
|---|
| 172 |  | 
|---|
| 173 | Later, the correct encoding for the system code page will be detected | 
|---|
| 174 | automatically and specifying it in LANG will not be necessary. | 
|---|
| 175 |  | 
|---|
| 176 | 4. Some functionality of the already available Qt classes may be limited or | 
|---|
| 177 | unimplemented. If you find such a case and there is no ticket for it | 
|---|
| 178 | in the bug tracker, feel free to add one. | 
|---|
| 179 |  | 
|---|
| 180 | 5. No qt3support module. This functionality is rarely necessary in mature | 
|---|
| 181 | real life applications and has low priority. | 
|---|
| 182 |  | 
|---|
| 183 | 6. No native PM style, but Qt will use fonts and colors from the current | 
|---|
| 184 | OS/2 theme. Hint: if your default OS/2 font is "WarpSans", install the | 
|---|
| 185 | "Workplace Sans" TTF font from Alex Taylor to get more native look & feel. | 
|---|
| 186 | It is recommended to install version 0.6 of the Normal face and version 0.2 | 
|---|
| 187 | of the Bold face which you can find here: | 
|---|
| 188 |  | 
|---|
| 189 | http://users.socis.ca/~ataylo00/creative/fonts/workplace/ | 
|---|
| 190 |  | 
|---|
| 191 | 7. QProcess: when starting PM applications from text-mode applications and | 
|---|
| 192 | when detaching applications with startDetached(), the returned PID is a | 
|---|
| 193 | PID of the intermediate cmd.exe process, not the target application. | 
|---|
| 194 |  | 
|---|
| 195 | 8. No QDesigner, no QAssistant. | 
|---|
| 196 |  | 
|---|
| 197 | 9. No clipboard, no Drag&Drop, no printer support. See the project roadmap for | 
|---|
| 198 | more information on the current progress and future plans: | 
|---|
| 199 |  | 
|---|
| 200 | http://svn.netlabs.org/qt4/roadmap | 
|---|
| 201 |  | 
|---|
| 202 |  | 
|---|
| 203 |  | 
|---|
| 204 | CHANGES | 
|---|
| 205 |  | 
|---|
| 206 | Beta 4 (11-11-2009) | 
|---|
| 207 |  | 
|---|
| 208 | Improvements: | 
|---|
| 209 |  | 
|---|
| 210 | - Added sound support (implemented QSound class). | 
|---|
| 211 |  | 
|---|
| 212 | - Added system tray support (QSystemTrayIcon class). This support requires | 
|---|
| 213 | the Extended system tray XCenter plugin to be installed. See the note above | 
|---|
| 214 | on how to compile and install this plugin. | 
|---|
| 215 |  | 
|---|
| 216 | - Enabled QPlugin support on OS/2. This in turn enables SVG support for | 
|---|
| 217 | QIcon (which is built as a Qt plugin DLL by default). | 
|---|
| 218 |  | 
|---|
| 219 | - Better widget modality support (widgets blocked by modality cannot be | 
|---|
| 220 | activated and moved using the mouse and the title bar anymore). | 
|---|
| 221 |  | 
|---|
| 222 | - Added support for 'console' and 'windows' CONFIG options in .pro files. | 
|---|
| 223 | Now, if 'windows' is present, the target executable will have the WINDOWAPI | 
|---|
| 224 | attribute set which effectively makes it a PM application. This, in | 
|---|
| 225 | particular, disables standard input, output and error streams so that when | 
|---|
| 226 | started, the application will not have a console window attached to it. | 
|---|
| 227 | By default, 'console' mode is active unless you perform a release build and | 
|---|
| 228 | the application is linked against the QtGui library ('QT = gui' in .pro), | 
|---|
| 229 | in which case the default is 'windows'. | 
|---|
| 230 |  | 
|---|
| 231 | - Improved paint speed in Qt windows which should increase overall graphical | 
|---|
| 232 | UI performance by 10%-20% in Qt4 applications. | 
|---|
| 233 |  | 
|---|
| 234 | - Implemented setting window icons for top-level windows (using | 
|---|
| 235 | QWidget::setWindowIcon()). | 
|---|
| 236 |  | 
|---|
| 237 | - Added LxLite support to provide compression for executables and DLLs. The | 
|---|
| 238 | compression is controlled by the 'exepack' CONFIG option which is turned on | 
|---|
| 239 | by default for release builds if the LxLite executable is present in PATH | 
|---|
| 240 | during the configure.cmd invocation. The compression may be turned off on a | 
|---|
| 241 | per-project basis by adding a 'CONFIG -= exepack' line to the .pro file. | 
|---|
| 242 |  | 
|---|
| 243 | - Improved the section of this README.OS2 file that describes how to properly | 
|---|
| 244 | set the LANG variable to have correct national characters in file names and | 
|---|
| 245 | in window titles of Qt applications. | 
|---|
| 246 |  | 
|---|
| 247 | Fixes: | 
|---|
| 248 |  | 
|---|
| 249 | - QProcess: The executable's path was not always added to BEGINLIBPATH. | 
|---|
| 250 |  | 
|---|
| 251 | - Fixed-size top-level widgets could not be moved. | 
|---|
| 252 |  | 
|---|
| 253 | - Application crash after pressing a button in a dialog window that resizes | 
|---|
| 254 | this dialog (for example, makes it bigger to show more information). | 
|---|
| 255 |  | 
|---|
| 256 | - Resizing top level windows using the top border broke mouse coordinates so | 
|---|
| 257 | that Qt tought you pressed the mouse button in a different place of the | 
|---|
| 258 | window than where you actually did it. | 
|---|
| 259 |  | 
|---|
| 260 | - Events posted with QCoreApplication::postEvent() were only processed upon | 
|---|
| 261 | receiving a next message from the system. This caused funny delays such as | 
|---|
| 262 | controls in a Qt window still indicating the input focus (the dotted | 
|---|
| 263 | rectangle) after the window was deactivated and losing this indication only | 
|---|
| 264 | when the mouse pointer was moved over the window. | 
|---|
| 265 |  | 
|---|
| 266 | - Don't replay mouse button press on a push button that is showing a popup | 
|---|
| 267 | menu but instead hide the popup menu and unpress the button to get more | 
|---|
| 268 | native look and feel. | 
|---|
| 269 |  | 
|---|
| 270 | - Deactivating the window with a push button showing a popup menu would hide | 
|---|
| 271 | the popup but leave the button pressed. | 
|---|
| 272 |  | 
|---|
| 273 | - Fixed incorrect Qt dirty widget region calculation when processing WM_PAINT | 
|---|
| 274 | messages. This fixes a lot of redraw problems (menu items in the main menu | 
|---|
| 275 | bar, text in combo-boxes, various redraw problems in smplayer when switching | 
|---|
| 276 | interfaces and going to/from fullscreen, and similar). | 
|---|
| 277 |  | 
|---|
| 278 | Beta 3 (17-10-2009) | 
|---|
| 279 |  | 
|---|
| 280 | Improvements: | 
|---|
| 281 |  | 
|---|
| 282 | - Added proper font support. All outline (scalable) fonts visible in the Font | 
|---|
| 283 | Palette should be now recognized by Qt. The fonts are hinted and antialiased | 
|---|
| 284 | using the Freetype2 library when drawing text. | 
|---|
| 285 |  | 
|---|
| 286 | - System fonts and colors are now used by default for Qt widgets. | 
|---|
| 287 |  | 
|---|
| 288 | - configure.cmd now generates the main Makefile to simplify building of Qt. | 
|---|
| 289 |  | 
|---|
| 290 | - corelib: QProcess: Implemented child termination detection. | 
|---|
| 291 |  | 
|---|
| 292 | - corelib: QProcess: Implemented redirection to another QProcess. | 
|---|
| 293 |  | 
|---|
| 294 | - corelib: QProcess now uses native pipes for stream redirection. This fixes | 
|---|
| 295 | various issues like 'Socket operation on non-socket' errors during | 
|---|
| 296 | parent-child communication. | 
|---|
| 297 |  | 
|---|
| 298 | - corelib: QProcess: Make sure that the directory containing the executable | 
|---|
| 299 | file is always searched (first) for DLLs needed by this executable. This | 
|---|
| 300 | makes it unnecessary to change the current directory to the executable's | 
|---|
| 301 | directory or add it to LIBPATH before starting the Qt application. | 
|---|
| 302 |  | 
|---|
| 303 | - corelib: QProcess can now start applications of different type (e.g. PM | 
|---|
| 304 | applications from text-mode applications) directly. | 
|---|
| 305 | QProcess::startDetached() also works. | 
|---|
| 306 |  | 
|---|
| 307 | - qmake: In debug_and_release mode, 'release-(all|clean|distclean|install| | 
|---|
| 308 | uninstall)' and 'debug-(all|clean|distclean|install|uninstall)' make | 
|---|
| 309 | targets are now available. | 
|---|
| 310 |  | 
|---|
| 311 | Fixes: | 
|---|
| 312 |  | 
|---|
| 313 | - Doing 'make clean' could result into a hang due to CMD.EXE command line | 
|---|
| 314 | length limitation. | 
|---|
| 315 |  | 
|---|
| 316 | - corelib: Fixed: QProcess: Lost data during stream redirection. | 
|---|
| 317 |  | 
|---|
| 318 | - corelib: QSettings could sometimes distort data when saving it to the | 
|---|
| 319 | registry (by replacing some characters with codes 0x80 and above with '?'). | 
|---|
| 320 |  | 
|---|
| 321 | Beta 2 (17-09-2009) | 
|---|
| 322 |  | 
|---|
| 323 | Improvements: | 
|---|
| 324 |  | 
|---|
| 325 | - Ported the network module (QtNetwork4.dll) and added to the default build. | 
|---|
| 326 |  | 
|---|
| 327 | - Added modules sql, svg, xmlpatterns, scripttools, plugins to the default | 
|---|
| 328 | build. | 
|---|
| 329 |  | 
|---|
| 330 | - gui: Added recognition of dead keys which makes it possible to type | 
|---|
| 331 | umlauts and other accented characters that require composition. | 
|---|
| 332 |  | 
|---|
| 333 | - gui: Implemented standard cursor shapes in Qt applications. | 
|---|
| 334 |  | 
|---|
| 335 | Fixes: | 
|---|
| 336 |  | 
|---|
| 337 | - qmake: Fixed the trailing slash problem which caused qmake to generate | 
|---|
| 338 | incorrect makefiles and fail to build the Qt library on some platforms. | 
|---|
| 339 |  | 
|---|
| 340 | - configure.cmd: Return to the root source tree directory after building | 
|---|
| 341 | qmake. | 
|---|
| 342 |  | 
|---|
| 343 | - qmake: Automatically use different link flags when linking qmake with WLINK. | 
|---|
| 344 |  | 
|---|
| 345 | - qmake: Recognize TARGET_SHORT that allows to specify a short DLL name | 
|---|
| 346 | (vital for OS/2 which reqires DLL names to be in 8x3 format). | 
|---|
| 347 |  | 
|---|
| 348 | - build: Set short DLL names for Qt modules on OS/2 using TARGET_SHORT. | 
|---|
| 349 |  | 
|---|
| 350 | - corelib: Various fixes to file system classes that deal with the file name | 
|---|
| 351 | case (which should be ignored on OS/2) and forward and back slashes. | 
|---|
| 352 |  | 
|---|
| 353 | - corelib: Fixed: QMutex could let more than one thread access the protected | 
|---|
| 354 | resource. | 
|---|
| 355 |  | 
|---|
| 356 | - corelib: Standard stream redirection in QProcess should now work for | 
|---|
| 357 | kLIBC-based child processes. Redirection for all other applications | 
|---|
| 358 | (such as CMD.EXE) will be added later (seems to be a kLIBC bug/feature). | 
|---|
| 359 |  | 
|---|
| 360 | - gui: Fixed erroneous QFileDialog behavior (duplicate entires in the list, | 
|---|
| 361 | incomplete contents of the root directory of the current drive). | 
|---|
| 362 |  | 
|---|
| 363 | - gui: Fixed: Ctrl+A..Z should generate characters with codes 0x01-0x1F. | 
|---|
| 364 |  | 
|---|
| 365 | - gui: Fixed: Close popups when resizing/moving the top level window. | 
|---|
| 366 |  | 
|---|
| 367 | - gui: Enabled actual enforcing min/max Qt widget constraints for top-level windows. | 
|---|
| 368 |  | 
|---|
| 369 | - gui: Fixed child widget duplication when resizing top level widgets after | 
|---|
| 370 | showing a popup; moving native child widgets should now work correctly. | 
|---|
| 371 | This also fixed a number of redraw problems (for example, drawing the main | 
|---|
| 372 | menu and tool bars in smplayer, moving tool bars around in other | 
|---|
| 373 | applications such as textedit from the demo folder). | 
|---|
| 374 |  | 
|---|
| 375 | Beta 1 (29-08-2009) | 
|---|
| 376 |  | 
|---|
| 377 | - First public release. | 
|---|
| 378 |  | 
|---|
| 379 |  | 
|---|
| 380 |  | 
|---|
| 381 | CREDITS | 
|---|
| 382 |  | 
|---|
| 383 | Dmitry A. Kuminov (development) | 
|---|
| 384 | Silvan Scherrer (management) | 
|---|
| 385 |  | 
|---|
| 386 | netlabs.org (hosting & support) | 
|---|
| 387 |  | 
|---|
| 388 | Nokia Corporation (original Qt library) | 
|---|
| 389 |  | 
|---|
| 390 | We also want to THANK all individuals and organizations who made the donations | 
|---|
| 391 | to this project and helped to make it happen. Please visit | 
|---|
| 392 |  | 
|---|
| 393 | http://qt.netlabs.org/en/site/index.xml | 
|---|
| 394 |  | 
|---|
| 395 | to get the full list of sponsors and to find information on how you can support | 
|---|
| 396 | the project. | 
|---|
| 397 |  | 
|---|
| 398 |  | 
|---|
| 399 | Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies). | 
|---|
| 400 | OS/2 and OS/2 Warp are trademarks of the IBM Corporation and/or its subsidiary(-ies). | 
|---|
| 401 | eComStation is a trademark of Serenity Systems International and/or its subsidiary(-ies). | 
|---|
| 402 | Etc. | 
|---|