Discussion:
[qt-dev] 4.5.1 GA released on 05.02.2010
Dmitry A. Kuminov
2010-02-08 11:15:05 UTC
Permalink
Hello everyone,

For those who haven't noticed yet, we released version 4.5.1 GA of Ot4 for OS/2.
Here's the change log:

4.5.1 GA (05-02-2010)

Improvements:

- 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
byv 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.

Fixes:

- 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.
--
Keep cool,
dmik

* JID: dmik at jabber ru
Joop Nijenhuis
2010-02-24 00:55:03 UTC
Permalink
Post by Dmitry A. Kuminov
Hello everyone,
For those who haven't noticed yet, we released version 4.5.1 GA of Ot4 for OS/2.
On Netlabs the file qt-lib-4_5_1-ga-noxwpdep.wpi can be downloaded. I
run without xwp and gor the idea that I don't need it with this file.
However the installation is aborted due to the missing xwp. So what's
the purpose of this file?

Regards,
Joop
Dmitry A. Kuminov
2010-02-24 12:57:39 UTC
Permalink
Post by Joop Nijenhuis
On Netlabs the file qt-lib-4_5_1-ga-noxwpdep.wpi can be downloaded. I
run without xwp and gor the idea that I don't need it with this file.
However the installation is aborted due to the missing xwp. So what's
the purpose of this file?
The purpose of this file is to install Qt on systems that don't have XWorkplace
installed. What message do you get, exactly? And when does it happen? Are you
sure you don't have the xsystray plugin package selected by accident?
--
Keep cool,
dmik

* JID: dmik at jabber ru
Joop Nijenhuis
2010-02-24 20:25:18 UTC
Permalink
Sorry, don't come that far, I get the message that the package "Ulrich
Möller\XWorkplace\Kernel\0\9\9\0" is required and not installed on my
system. Next "to continue installation with the current archive, you
will need to deselect all packages which reference these missing
packages. Do you wish to continue?" knobs yes and no, I choose yes. Then
a Warpin error with the message "Package Ulrich Möller\XWorkplace\Kernel
was referenced as a macro, but not installed. Terminating." One knob now
with Cancel. End of the story.

Regards,
Joop
Post by Dmitry A. Kuminov
Post by Joop Nijenhuis
On Netlabs the file qt-lib-4_5_1-ga-noxwpdep.wpi can be downloaded. I
run without xwp and gor the idea that I don't need it with this file.
However the installation is aborted due to the missing xwp. So what's
the purpose of this file?
The purpose of this file is to install Qt on systems that don't have XWorkplace
installed. What message do you get, exactly? And when does it happen? Are you
sure you don't have the xsystray plugin package selected by accident?
--
Keep cool,
dmik
* JID: dmik at jabber ru
Dmitry A. Kuminov
2010-02-24 23:29:40 UTC
Permalink
Post by Joop Nijenhuis
Sorry, don't come that far, I get the message that the package "Ulrich
Möller\XWorkplace\Kernel\0\9\9\0" is required and not installed on my
system. Next "to continue installation with the current archive, you
will need to deselect all packages which reference these missing
packages. Do you wish to continue?" knobs yes and no, I choose yes. Then
a Warpin error with the message "Package Ulrich Möller\XWorkplace\Kernel
was referenced as a macro, but not installed. Terminating." One knob now
with Cancel. End of the story.
Sorry I cannot confirm what you say. I just tested it on a clean OS/2 system
with no XWorkplace installed. First, it warned me with the same message as you
described above (about missing the XWorkplace package) and then showed the
welcome screen with the Next button, not the message about the package being
referenced as a macro. The latter is shown by the old archive
(qt-lib-4_5_1-ga.wpi) though.

Are you sure you have *no* XWorkplace installed? Maybe you have some older (<
0.9.9) version of XWorkplace on your machine? This would explain the problem you
have.
--
Keep cool,
dmik

* JID: dmik at jabber ru
Joop Nijenhuis
2010-02-25 01:50:29 UTC
Permalink
I have what comes with eCS 1.2NL, eCentre and thats not XWorkplace.
Post by Dmitry A. Kuminov
Post by Joop Nijenhuis
Sorry, don't come that far, I get the message that the package "Ulrich
Möller\XWorkplace\Kernel\0\9\9\0" is required and not installed on my
system. Next "to continue installation with the current archive, you
will need to deselect all packages which reference these missing
packages. Do you wish to continue?" knobs yes and no, I choose yes. Then
a Warpin error with the message "Package Ulrich Möller\XWorkplace\Kernel
was referenced as a macro, but not installed. Terminating." One knob now
with Cancel. End of the story.
Sorry I cannot confirm what you say. I just tested it on a clean OS/2 system
with no XWorkplace installed. First, it warned me with the same message as you
described above (about missing the XWorkplace package) and then showed the
welcome screen with the Next button, not the message about the package being
referenced as a macro. The latter is shown by the old archive
(qt-lib-4_5_1-ga.wpi) though.
Are you sure you have *no* XWorkplace installed? Maybe you have some older (<
0.9.9) version of XWorkplace on your machine? This would explain the problem you
have.
--
Keep cool,
dmik
* JID: dmik at jabber ru
--
Groeten
Joop
Dmitry A. Kuminov
2010-02-25 12:59:05 UTC
Permalink
Post by Joop Nijenhuis
I have what comes with eCS 1.2NL, eCentre and thats not XWorkplace.
eCenter is a rebranded XCenter which is part of XWorkplace (which is included in
eCS as a special version with some limitations). And this software is registered
as XWorkplace in the WarpIn database. You can start warpin.exe and check which
version of XWorkplace it is.
--
Keep cool,
dmik

* JID: dmik at jabber ru
John Small
2010-02-25 13:35:07 UTC
Permalink
On Wed, 24 Feb 2010 23:29:40 UTC, "Dmitry A. Kuminov"
Post by Dmitry A. Kuminov
Post by Joop Nijenhuis
Sorry, don't come that far, I get the message that the package "Ulrich
M�ller\XWorkplace\Kernel\0\9\9\0" is required and not installed on my
system. Next "to continue installation with the current archive, you
will need to deselect all packages which reference these missing
packages. Do you wish to continue?" knobs yes and no, I choose yes. Then
a Warpin error with the message "Package Ulrich M�ller\XWorkplace\Kernel
was referenced as a macro, but not installed. Terminating." One knob now
with Cancel. End of the story.
Sorry I cannot confirm what you say. I just tested it on a clean OS/2 system
with no XWorkplace installed. First, it warned me with the same message as you
described above (about missing the XWorkplace package) and then showed the
welcome screen with the Next button, not the message about the package being
referenced as a macro. The latter is shown by the old archive
(qt-lib-4_5_1-ga.wpi) though.
Are you sure you have *no* XWorkplace installed? Maybe you have some older (<
0.9.9) version of XWorkplace on your machine? This would explain the problem you
have.
I think the problem is that the script in the "noxwpdep" wpi file
still includes the line:
REQUIRES="Ulrich M�ller\XWorkplace\Kernel\0\9\9"
I think the "noxwpdep" file should either have this line or the entire
package removed.
--
John Small
Dmitry A. Kuminov
2010-02-25 23:04:37 UTC
Permalink
Post by John Small
Post by Dmitry A. Kuminov
Are you sure you have *no* XWorkplace installed? Maybe you have some older (<
0.9.9) version of XWorkplace on your machine? This would explain the problem you
have.
I think the problem is that the script in the "noxwpdep" wpi file
REQUIRES="Ulrich M”ller\XWorkplace\Kernel\0\9\9"
I think the "noxwpdep" file should either have this line or the entire
package removed.
No, this requirement it's intentionally there and it's needed.

If Joop Nijenhuis confirms that he has an earlier version of XWorkplace
installed, I will change the script to make it work in such cases too in the
next release.
--
Keep cool,
dmik

* JID: dmik at jabber ru
Joop Nijenhuis
2010-02-26 00:54:56 UTC
Permalink
Post by Dmitry A. Kuminov
No, this requirement it's intentionally there and it's needed.
If Joop Nijenhuis confirms that he has an earlier version of XWorkplace
installed, I will change the script to make it work in such cases too in the
next release.
Can't find a clear answer in this, have asked questions in our group,
have to wait for an answer.

Regards,
Joop
Joop Nijenhuis
2010-02-27 12:55:04 UTC
Permalink
Post by Dmitry A. Kuminov
No, this requirement it's intentionally there and it's needed.
If Joop Nijenhuis confirms that he has an earlier version of XWorkplace
installed, I will change the script to make it work in such cases too in the
next release.
I did found in the file XFLDR.DLL the number 0.9.16. Please change it in
such way that eCS 1.2NL users can use the qt dev package with this
version. I installed XWorkplace 1.0.8 and now I have a system half Dutch
and half English. There is no languagepack for XWorkplace 1.0.8 in Dutch
available for download. Also I have to do some tweaking which will take
lots of time and I better spend that time on developing, because as a
community we need that badly. Will be interesting when eCS 2.0NL GA will
come to the market.

Regards,
Joop
Dmitry A. Kuminov
2010-02-27 14:36:18 UTC
Permalink
Post by Joop Nijenhuis
Post by Dmitry A. Kuminov
If Joop Nijenhuis confirms that he has an earlier version of XWorkplace
installed, I will change the script to make it work in such cases too in the
next release.
I did found in the file XFLDR.DLL the number 0.9.16.
You could simply do what I was asking for: start warpin.exe and look what
version the Kernel package of the XWorkplace application is in there.

Anyway, any version equal or greater than 0.9.9 should work. Perhaps, you get a
problem with the encoding (I have one report of the German eCS user with the
similar problem). You may help to identify it by downloading
ftp://ftp.dmik.org/tmp/aaa.cmd and, executing 'aaa.cmd > JoopNijenhuis.log' and
uploading JoopNijenhuis.log to ftp://ftp.dmik.org/incoming.
--
Keep cool,
dmik

* JID: dmik at jabber ru
Joop Nijenhuis
2010-02-27 13:27:39 UTC
Permalink
Dmitry,

Now with XWorkplace 1.0.8 installed I tried the package
qt-lib-4_5_1-ga.wpi. But I'm not pleased what the wpi installer want to
do. My development drive it a total other one than the one for my OS. If
I do something wrong than the development drive might be blanked or
something, no problem. If the same happens to the drive with my OS its
worse.

The runtime is installed in [drive:]\ecs\dll which is fine with me but I
really don't understand why we have to follow Windows in this respect.
In the end we will have the same problems with different dll's for the
same thing and programs who want a version lower or higher than
installed. Why not put it just in the \QT\DLL path?

The installation Utility can be installed everywhere you want, for me
[drive:]\QT.

Strangely the packages for Plugins, Translations, Extended System Tray
and Readme's don't follow this new scheme and stay on the same drive as
the OS. All is grayed out, so I can't change. I don't want this. My OS
drive is H and my developent jungle is drive R. So I want everything in
R and not in H.

Regards,
Joop
Dmitry A. Kuminov
2010-02-27 16:08:02 UTC
Permalink
Joop,
Post by Joop Nijenhuis
Now with XWorkplace 1.0.8 installed I tried the package
qt-lib-4_5_1-ga.wpi. But I'm not pleased what the wpi installer want to
do. My development drive it a total other one than the one for my OS. If
I do something wrong than the development drive might be blanked or
something, no problem. If the same happens to the drive with my OS its
worse.
See below.
Post by Joop Nijenhuis
The runtime is installed in [drive:]\ecs\dll which is fine with me but I
really don't understand why we have to follow Windows in this respect.
In the end we will have the same problems with different dll's for the
same thing and programs who want a version lower or higher than
installed. Why not put it just in the \QT\DLL path?
Here's the thing: the WPIs found on svn.netlabs.org/qt4 are the *official*
builds of Qt. There may be only one official build of Qt4 installed on a given
system (and the WPI installer will not let you install another version of Qt
over or aside), any other configuration is not officially supported. The reason
behind such approach is thatit avoids the so called "DLL hell" problem per se.
Besides, it doesn't require a reboot after installation to make it work (which
is a really positive thing for many users).
Post by Joop Nijenhuis
The installation Utility can be installed everywhere you want, for me
[drive:]\QT.
This package actually defines the location for the official development WPI
installation so it can be any directory on any drive (basically for the reasons
you mentioned in the beginning).
Post by Joop Nijenhuis
Strangely the packages for Plugins, Translations, Extended System Tray
and Readme's don't follow this new scheme and stay on the same drive as
the OS. All is grayed out, so I can't change. I don't want this. My OS
drive is H and my developent jungle is drive R. So I want everything in
R and not in H.
The reasoning here is just the same as for the Runtime: Plugins and Translations
are part of it. Extended system tray is the XCenter plugin so it obviously must
be installed to the XCenter plugin directory. READMEs are simply installed to
the well known system directories that contain other similar stuff.

And the last thing that will probably sort things out for you. qt-lib-X_Y_Z.wpi
is *not* for development, it is intended for:

1) End users running Qt applications.
2) Porters/developers making *final* release builds of their applications using
the qt-dev-X_Y_Z.wpi archive when they are ready to ship a new version of the
product. This makes sure all applications use the same single copy of the
Runtime which greatly saves the resources of the underlying OS.

As opposed to the "lib" WPI archive, qt-dev-X_Y_Z.wpi is *kind of* a development
package and it can be installed to any drive (or, to be fully correct, to the
same directory where the Utility package from "lib" was installed). I said *kind
of* because the main purpose of this package is, again, to make final release
builds of the applications. It is not suitable for every day development because
it a) doesn't contain the debug libraries and b) doesn't provide the Qt sources.
A full Qt source ZIP archive should be used in such case (which also implies
you will build Qt Runtime yourself and keep it wherever you want).
--
Keep cool,
dmik

* JID: dmik at jabber ru
Loading...