Qt 4.6.2 for OS/2 is ready, in .wpi packages
Below are info from http://svn.netlabs.org/qt4
David Macias
Latest version
The latest version is 4.6.2 released on 14.05.2010. This is the latest
release of Qt 4 from Nokia and it includes a bunch of new features and
improvements, many of which appear in the OS/2 port as well. Besides
that, the following key improvements specific to the OS/2 port are
brought by this release:
- Complete printing support through CUPS (requires
<http://svn.netlabs.org/ecups/wiki>eCUPS to be installed).
- Painting in widgets using DIVE, which makes all graphical operations
up to 4 times faster comparing to 4.5.1 GA (the actual numbers depend on
the combination of the graphics hardware, video driver and the current
screen mode). The non-DIVE painting mode is also optimized, with the
performance boost varying from 30% to 200%.
- webkit module (used in many complex web-based applications such as web
browsers to implement the JavaScript? support).
- help module (used for context sensitive help in applications).
- Qt Assistant tool.
This document contains a brief list of the most important OS/2-specific
changes
in the Qt library from release to release.
CHANGES
4.6.2 (14-05-2010)
Improvements:
- general: Updated Qt codebase to version 4.6.2 (see the changes-4.6.2
file
for details). Note that this version is binary incompatible with the
previous version (see README.OS2 for more information).
- general: Implemented support for the OS/2 platform in the webkit
module. The
webkit module is used in many complex web-based applications such as web
browsers to implement the JavaScript support. Note that the script
module
uses the JavaScript implementation from the WebKit project too and
it was
also ported to OS/2. The webkit module is always present in the
official Qt
build but is disabled by defautl in the custom builds due to big
compilation
times.
- general: Use declspec(dllexport) on OS/2 to significantly reduce the
number
of exports in generated DLLs. This mode is on by default which
reduces the
number of exported symbols by 90-100% in Qt DLLs and makes it not
necessary
to split the QtGui DLL in 3 parts in debug mode. The old method
which causes
all public symbols to be exported is still available using the
"export_all"
CONFIG option (see README.OS2 for details).
- general: Provide the "doc" WPI archive that contains the Qt reference
documentation.
- corelib: Implemented native (XWP-based) file system watcher for OS/2
that
does not eat CPU (which is best noticed in file dialogs showing
directories
containing hundreds of files. Requires XWorkplace to be installed.
- corelib: Implemented deriving the defaut locale from the process country
code if LANG is not set and integration with the system locale object
(System Setup -> Country Palette). See the QT_PM_NO_SYSTEM_LOCALE
description in README.OS2 for details.
- gui: Implemented printing support through CUPS. Refer to section
"PRINTING
SUPPORT" in README.OS2 for details.
- gui: Implemented painting in widgets using DIVE (direct interface video
extensions). Using DIVE gives a significant graphical performance
boost, up
to 100% in BLIT mode and 130% in FBSWM mode, depending on the
combination of
the graphics hardware, video driver and the current screen mode. See the
QT_PM_DIVE and QT_PM_NO_DIVE description in README.OS2 for more details.
- gui: Improved the painting speed when not using DIVE. The
performance boost
varies from 30% to 200% (e.g. 3 times faster), depending on the
combination
of the graphics hardware, video driver and the current screen mode.
- gui: Enabled MMX/SSE support (on by default) to speed up graphical
operations by a couple of percents.
- gui: Enabled accessibility support on OS/2. Note that in order to
use the
accessibility functions, a QAccessibleBridge plugin for the
corresponding
accessibility device is necessary but none of them exist at the present
time.
- gui: Use native file icons in standard Qt file dialogs.
- assistant: Enabled the help module and made the Qt Assistant tool
build on
OS/2. Also enabled help and assistant examples and demos.
- demos: Enabled the browser demo application that makes use of the webkit
module.
- demos: Enabled the qtdemo example that demonstrates all Qt features and
acts as a launcher for other example and demo applications.
- gnumake/os2-g++: Switch the compiler to using the i486 instruciton
set for
code generation. This gives around 3% of the performance boost when
painting. As a drawback, the code will no longer run on i386 PCs but
it is
assumed that it does not make sense to use Qt4 on these computers.
Fixes:
- general: Fixed: Building Qt applications with the "dev" WPI archive
would
fail due to extra spaces in the output object file names.
- corelib: Fixed: Regular files were treated as sequential streams
which made
the seek functionality unavailable. This in particular affected Qt
Designer
that didn't expect sequential streams when reading .ui files and
refused to
load files bigger than 8192 bytes as a result.
- corelib: Make sure the hardware error popup dialogs do not appear when
opening the standard Qt file dialog and selecting a removable drive
with no
media inserted even with AUTOFAIL=YES in CONFIG.SYS
- corelib: QProcess: Fixed: Data could not be successfully read or
written to
the standard streams of the started process in 'highmem' link mode
(which is
on by default since 4.5.1 GA), as well as in normal link mode in some
situations.
- corelib: Fixed QProcess::startDetached() which would not work in
'highmem'
mode.
- corelib: QProcess: Fixed: Having stderr of a started child process
redirected to a pipe (which is the default) would indirectly cause an
impossibility to write anything to its stdin.
- corelib: QProcess: Get rid of the unexpected "DosQueryNPipeSemState
returned
87" warning.
- corelib: QFileSystemWatcher: In the fall-back polling watcher,
increased the
sleep time between checks of all watched files from 1 second to 3
seconds to
decrease the CPU load on big sets of watched files. Also, replaced
the sleep
between checking individual items with the yield call as it doesn't give
significant improvement but just causes more CPU cycles to be spent
between
each check.
- corelib: Always return true from QFileInfo::isRoot()/isDir() for paths
referring to root directories of drives with no media and always return
false from QFileInfo::exists() for them. Also, don't lstat() on such
paths
since they are definitely not symlinks. This improves the file dialog
appearance and behavior for removable drives.
- corelib: Protect against the frozen system when QSocketNotifier is
given an
unsupported socket (for example, an OS/2 file handle). There is
still 100%
CPU load in this case, but the application can be at least closed using
normal means.
- corelib: Sockets: Fixed: "has data to read" socket notifications
would be
sometimes delivered with a delay depending on the frequency of
timers which
could significantly slow down network data transfer.
- corelib: QTemporaryFile: Fixed: Files were opened in O_TEXT mode which
caused unexpected LF <-> CRLF translation. In particular, this broke
QNetworkDiskCache functionality (seen in e.g. demos/browser as missing
images and CSS sheets when read from cache).
- corelib: Fixed: Clear FPU CW in qdtoa() to avoid the floating point
exception in various scenarios [patch by rudi].
- gui: Fixed assertion in QVector::at() at startup.
- gui: Fixed assertion at #1125 in qwidget.cpp (due to an attempt to
re-instantiate QDesktopWidget during application termination).
- gui: Select the correct icon for the drive letter in standard file
dialogs
depending on the drive type (floppy, hard disk etc) [patch by rudi].
- gui: Fixed crash in PMMERGE during resize & move of the top level window
with the complex layout (caused by reading outside the bitmap data).
- gui: Fixed: Never add tooltip windows to the top-level window list
and only
do so for splash windows if they have the Qt::WindowTitleHint flag set.
- 3rdparty: Added OS/2 support to clucene used by the help module for
fulltext
search in help files [based on the patch by rudi].
- configure.cmd: Fixed: QT_BUILD_KEY (and QLibraryInfo::buildKey()) would
always contain "release", even in debug builds, which caused debug
builds to
load the release plugins and refuse the debug ones.
- qmake/os2-g++: Use -Wl, to pass the object list response file to the
linker as is instead of the expanded list of objects (this overcomes the
64KB limitation of the total process command line length in OS/2).
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour