The Qt4 4.6.3 is available. See svn.netlabs.org/qt4 for more information on how to download
Update of Qt 4 Port to Version 4.6 Resumed
Silvan Scherrer has restated work on the port of the Qt 4 framework to OS/2 and eComStation and the developer will continue with updating the port to version 4.6, adding new features, and optimizing the implementation.
Originally, further development had been halted at the end of March due to lack of funds. As with the initial port, development would have been funded by donations from the OS/2 and eComStation community. However, the amount of donations had only covered 34% of the required sum of 2500 Euro.
The withdrawal announcement sparked more donations and 94% of the required sum have been reached to this date. As a result, Silvan has decided to resume the project and would like to express his thanks to all contributors.
Please consider helping to cover the remaining cost by buying sponsor units at the Mensys online shop at:
Surplus funds will be used for further developmentm, e.g., a future update of the port to version 4.7.
The detailed project status, history, and roadmap are available at:
A donation meter is available at:
Update of Qt 4 Port to 4.6 Halted Because of Lack of Funds
Silvan Scherrer has halted further work on the port of the Qt 4 framework to OS/2 and eComStation because of lack of funds. The initial port has already resulted in ports of several important applications like Scribus, Quassel IRC, QBittorrent, and an updated SMPlayer. After the release of the version 4.5 GA, work on updating the port to version 4.6, implementing further functionality, and optimization had begun and considerable improvements had already been reached, especially regarding issues with SMPlayer performance. As with the initial port, development would have been funded by donations from the OS/2 and eComStation community. However, the amount of donations made so far is not sufficient and financing the port in advance is out of the question.
If you want development to continue, please consider contributing by buying sponsor units at the Mensys online shop at:
The detailed project status, history, and roadmap are available at:
A donation meter is available at:
Qt4 4.5.1 GA
Silvan Scherrer and Dmitry A. Kuminov have released the GA of the port of the Qt 4 application framework to OS/2 and eComStation, i.e., version 4.5.1 GA. The new release comes with complete support for drag and drop support, session management, SQLite3, and includes Qt Designer application.
The GA includes the following changes in detail:
- general: Switched the compiler to the GCC 4.4.2 build provided by Paul Smeldey. This gives better standard conformance, better code optimization and provides more compact DLLs and EXEs whose size is greater than ~1M.
- corelib: QSettings: Use IniFormat? (plain INI files) when NativeFormat? is requested instead of the Open32 registry which is known to be unstable and can be easily corrupted. The old behavior may be restored using the QT_PM_REGISTRY environment variable.
- corelib: Use UniStrcoll? for QString::localeAwareCompare() for locale-aware comparison of NLS strings.
- gui: Implemented full Direct Manipulation (Drag And Drop) support. This includes dragging text, URLs and files between PM and Qt applications, dragging any MIME data across Qt applications, setting custom drag pointer pixmaps, painting in widgets while dragging.
- gui: Implemented session management with the QSessionManager class.
- gui: Fully implemented the QDesktopServices class.
- gui: Added support for numpad keys and for some common multimedia keys recognized by eCS (volume, home, search, favorites).
- gui: QCursor: Added missing cursor shapes and implemented support for custom cursor shapes.
- gui: Implemented QFontDatabase::addApplicationFont()/removeApplicationFont() and friends.
- gui: Implemented proper generation of possible key and modifier combinations for a given key event. This in particular enables Ctrl+<letter> shortcuts for non-Latin languages and also makes Ctrl+<letter>, Alt+<letter> and similar shortcuts language-neutral.
- gui: QWidget: When setting the parent, take the parent's resolve masks to make sure attributes imposed by the user on the parent won't be overriden by the natural palette for this widget if it differs from QApplication::palette() [vendor bug].
- gui: Use a normal border for top-level Tool widgets since the thin one is too thin and cannot be resized.
- gui: Implemented delivering of QEvent::NonClientAreaMouse?* events to top-level widgets. This enables undocked dock widgets to be docked back by a double click on the title bar and also by moving over the dock areas.
- plugins: Enabled the sqlite3 plugin which makes the sql module (and applications depending on it) actually usable.
- tools: Enabled the Qt Designer application.
- tools: Enabled the following toos: pixeltool, q3toq4, xmplatterns.
- qmake/os2-g++: Recognize the "map" option in the CONFIG variable that allows to turn the generation of .map files on and off. The option is set by default.
- qmake/os2-g++: Recognize the "highmem" option in the CONFIG variable that allows to enabled memory support in LIBC for genereated DLLs and executables. The option is set by default.
- corelib: Created wrappers for all Win* and Gpi* calls that restore the FPU Control Word to what C/C++ programs expect. This fixes crashes in various Qt applications (e.g. mp3diags) due to SIGFPE.
- corelib: QLibraryInfo: Fixed: qt.conf would not have been loaded if a component path was requested before QCoreApplication instance creation.
- corelib: QLibraryInfo: Changed default "Settings" path to %ETC%/xdg. Also use %ETC%/qtsys.conf as the system-wide qt.conf instead of %ETC%/qt/qtsys.conf.
- corelib: QFSFileEngine: Fixed: On OS/2, trailing spaces in file names are ignored ("readme " = "readme") but kLIBC doesn't handle this well so strip them before passing to LIBC APIs.
- corelib: QFile::copy(): Use DosCopy?() instead of read/write.
- corelib: Fixed: QProcess::startDetached() would either crash or fail to start a process.
- corelib: Fixed: QFileInfo::isExecutable() would return true for all files on local OS/2 file systems.
- gui: Fixed: Popups shown when another application is active were not controllable with keyboard and didn't close on an outside mouse click.
- gui: Fixed: Visible title bar and frame of the top-level window after switching to fullscreen.
- gui: Fixed: Wrong widget-relative mouse position in mouse events. This fixes problems with dragging widget splitters (separators) in applications using dock widgets.
- gui: Fixed: QEvent::Enter/Leave? events were delivered incorrectly if the alien child widget belonging to a native parent intersected with a native child of this parent (this in particular caused extended tool bars to immediately un-extend once the mouse moves over the extended part).
- gui: Fixed: Mouse press events replayed after closing the popup by clicking outside it had incorrect coordinates. This resulted into various kinds of misbehavior including spatial text selection in QTextEdit widgets after closing popups by clicking inside these widgets.
- gui: Fixed: The default application icon embedded into the executable was not actually used as the default window icon for top-level widgets.
- qmake/os2-g++: Do not use EXEPACK tool on static libraries.
- qmake: Several fixes to make install targets work correctly.
The GA is available for download as several packages:
Qt runtime libraries and plug-ins:
Qt development libraries and tools:
Qt demo and example applications:
Full Qt source code:
Qt 4 beta 5 released
Silvan Scherrer and Dmitry A. Kuminov have released the fifth beta of the port of the Qt 4 application framework to OS/2 and eComStation, i.e., version 4.5.1 beta 5. The new release comes with improvements for the clipboard and handling of files and drives.
Beta 5 includes the following changes in detail:
- gui: Added support for the system clipboard. Qt can now exchange plain text, HTML (Mozilla application suite) and bitmaps with other PM applications, as well as all supported MIME data types with other Qt-based applications.
- corelib: Use system unicode conversion routines to convert from the system code page to Unicode and back. This makes it unnecessary to specify the system encoding in the LANG environment variable -- Qt will use the system encoding of the current process.
- gui: Implemented support for the IME input box (used on DBCS systems) in Qt applications with a known limitation that the input box is always positioned at the lower left corner of the top-level window.
- gui: Improved font handling on DBCS systems (patch by komh): Read national face names from font files instead of always taking the Latin name. Use the PM_AssociateFont registry key to select a fallback font for missing characters.
- gui: Implemented QPixmap::grabWindow() which takes a screenshot of a window.
- gui: Steal the Alt key from the PM which prevents the PM system menu to be shown when single Alt is pressed in a Qt application. The system menu may still be called using Alt+Space. Note that this also disables all default shortuts from the system menu (Alt+F7, Alt+F10 etc.) so that they available to Qt applications now. Exceptions are Alt+F4, Ctrl+Esc, Alt+Esc which are not passed to Qt and will function as in regular PM applciations.
- general: Binary Qt library builds are made portable: they do not contain hard-coded paths to various Qt components any more and use relative locations whenever possible. See http://svn.netlabs.org/qt4/browser/tags/4.5.1-os2-beta5/doc/src/qt-conf.qdoc for more info.
- corelib: Improved the polling QFileSystemWatcher implementation so that it doesn't eat all CPU when there are more than 100 items to watch, like when showing a file open dialog with many files in a directory.
- qmake: Improved processing of the project library list (LIBS variable) to avoid appearance of raw library names that require substitution (fixes the debug build of linguist).
- qmake: Added support for DEF_FILE_VERSION, DEF_FILE_DESCRIPTION and DEF_FILE_VENDOR project variables that allow to embed the description string into a generated DLL or executable. For compatibility with other platforms, these variables by default are mapped to VERSION, QMAKE_TARGET_PRODUCT + QMAKE_TARGET_DESCRIPTION + QMAKE_TARGET_COPYRIGHT and QMAKE_TARGET_COMPANY, respectively.
- gui: Table views showed alternate rows in black color instead of light gray.
- gui: If some font style (e.g. Bold) does not provide characters for some script (e.g. Cyrillic) while the Normal style does, a different font will be chosen for Bold Cyrillic instead of drawing empty boxes.
- corelib: Fixed two issues related to loading text codec plugins from the application's directory.
- corelib: Fixed QDir::absoluteFilePath(), midir()/mkpath(), rmdir()/rmpath() that didn't properly handle relative and UNC paths which could cause various path-related failures.
- corelib: Properly report root directories of drives to Qt. This makes letters of removable drives always seen by Qt (for example, in the file open dialog) even if the medium isn't currently inserted.
- corelib: Fixed unnecessary access to removable drives and a long delay and noice caused by it when showing a file open dialog in Qt applications.
The fifth beta is available for download at: