Index: trunk/CHANGES.OS2
===================================================================
--- trunk/CHANGES.OS2	(revision 523)
+++ trunk/CHANGES.OS2	(revision 524)
@@ -4,4 +4,113 @@
 
 CHANGES
+
+GA (04-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.
+
+  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.
+
+  - 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.
+
 
 Beta 5 (06-12-2009)
Index: trunk/README.OS2
===================================================================
--- trunk/README.OS2	(revision 523)
+++ trunk/README.OS2	(revision 524)
@@ -2,5 +2,6 @@
 
 This document contains a brief information on the OS/2 version of the Qt
-library. Please visit the project page at
+library. Please read it carefully before starting your work. You may also
+visit the project page at
 
   http://svn.netlabs.org/qt4/wiki
@@ -20,6 +21,15 @@
   - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
 
-  - InnoTek GCC compiler version 3.3.5 CSD3 or above (not tested).
-    You can download a copy of the compiler using the following link:
+  - InnoTek GCC compiler version 3.3.5 CSD3 or 4.4.2 (recommended).
+    You can download the GCC 4.4.2 compiler using the following link:
+
+      http://download.smedley.info/gcc-4.4.2-os2-20091205.zip
+
+    GCC 4.4.2 requires newer binutils available at:
+
+      http://download.smedley.info/binutils-2.19.1-os2-20090427.zip
+
+    Note that in order to use the above version of GCC, you will also need
+    to install the previous 3.x version (e.g. 3.3.5 CSD3) available at:
 
       ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip
@@ -49,7 +59,11 @@
 
 After unpacking the GCC archive, you will have to set up the compiler
-environment by invoking gccenv.cmd from the bin subdirectory with the correct
+environment by invoking gccenv.cmd from the "bin" subdirectory with the correct
 arguments (type gccenv.cmd -? for help). For the OpenWatcom linker, specify
 WLINK as the second argument.
+
+Please note that setting up the GCC 4.x environment requires some additional
+steps. Please look through the README files contained within the OS/2
+distribution.
 
 You will also need to perform the following steps:
@@ -63,5 +77,5 @@
     by doing 'set MAKESHELL=C:\OS2\CMD.EXE' where C: is your boot drive.
 
-  - set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive.
+  - Do set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive.
 
   - Make sure that there are no traces of any other Watcom or OpenWatcom
@@ -70,4 +84,10 @@
     removing all *WATCOM* environment variables and removing references to those
     Watcom installations from PATH.
+
+  - Add the "bin" subdirectory of the directory where you unpacked the Qt4
+    source tree to PATH and BEGINLIBPATH using its full path, e.g.:
+
+      set PATH=D:\Coding\Qt4\bin;%PATH%
+      set BEGINLIBPATH=D:\Coding\Qt4\bin;%BEGINLIBPATH%
 
 Note that the QTDIR environment variable used by previous Qt versions is not
@@ -191,7 +211,11 @@
 
 Using the "dev" package requires the same environment as the one necessary for
-building Qt and described in section SETTING UP THE ENVIRONMET above. The
-process of compiling Qt applications using the "dev" package is basically the
-same as with the hand made-build of Qt. Note, however, that if you are
+building Qt and described in section SETTING UP THE ENVIRONMET above with the
+exception that the "bin" subdirectory of the directory where you installed the
+"dev" package needs to be added to PATH instead of the "bin" subdirectory of
+the Qt4 source tree.
+
+The process of compiling Qt applications using the "dev" package is basically
+the same as with the hand made-build of Qt. Note, however, that if you are
 developing or porting a Qt application, it is still recommended that you build
 the debug version of the Qt library yourself and use it in your daily work since
@@ -206,6 +230,9 @@
   qt-examples-src-X_Y_Z.wpi  - Demo and example sources ("examples")
 
-In order to build the demo and example applications, go to the directory where
-you installed the respective package (e.g. D:\Coding\Qt4\demos) and type:
+The "examples" package contains the source code for all demo and example
+applications shipped with Qt. They serve as a good demonstration of the Qt
+library features and it is recommended to build them if you plan to write your
+own applications. In order to build them, go to the directory where you
+installed the respective package (e.g. D:\Coding\Qt4\examples) and type:
 
   qmake
@@ -261,13 +288,17 @@
 CURRENT LIMITATIONS
 
-  1. configure.cmd is not yet capable to generate individual Makefiles for demos
-     and examples, it only generates the main Makefile that builds the library
-     and the necessary tools. Demos and examples can be compiled by hand
-     (as described above).
-
-  2. OS/2 bitmap fonts are not yet supported. Use TTF or Type1 (PFB) fonts with
+  1. configure.cmd is not yet capable of generating individual Makefiles for
+     demos and examples, it only generates the main Makefile that builds the
+     library and the necessary tools. Demos and examples can be compiled by
+     hand (as described above).
+
+  2. configure.cmd does not understand any command line options. If you want
+     to customize the build of the Qt library (which is not recommended), you
+     may try to modify configure.cmd itself.
+
+  3. OS/2 bitmap fonts are not yet supported. Use TTF or Type1 (PFB) fonts with
      Qt.
 
-  3. In order to let Qt correctly detect the regional settings and choose the
+  4. In order to let Qt correctly detect the regional settings and choose the
      right language for translating the user interface, the LANG environment
      variable must be set. The format is
@@ -281,10 +312,6 @@
      detects the encoding automatically based on the system OS/2 settings.
 
-     Later, the correct language will be detected from the system settings and
-     specifying LANG will be not necessary at all.
-
-  4. Some functionality of the already available Qt classes may be limited or
-     unimplemented. If you find such a case and there is no ticket for it
-     in the bug tracker, feel free to add one.
+     Later, the correct language will be detected from the system settings so
+     that specifying LANG will be not necessary at all.
 
   5. No qt3support module. This functionality is rarely necessary in mature
@@ -299,14 +326,27 @@
        http://users.socis.ca/~ataylo00/creative/fonts/workplace/
 
-  7. QProcess: when starting PM applications from text-mode applications and
-     when detaching applications with startDetached(), the returned PID is a
-     PID of the intermediate cmd.exe process, not the target application.
-
-  8. No QDesigner, no QAssistant.
-
-  9. No Drag&Drop, no printer support. See the project roadmap for more
-     information on the current progress and future plans:
-
-       http://svn.netlabs.org/qt4/roadmap
+  7. QProcess: when starting PM applications from text-mode applications, the
+     returned PID is a PID of the intermediate cmd.exe process, not the target
+     application.
+
+  8. The followign classes are not available due to their rare usage or low
+     importance on the OS/2 platform: QSharedMemory, QSystemSemaphore,
+     QInputContext, QAccessible. The following macros are defined to indicate
+     this: QT_NO_SYSTEMSEMAPHORE, QT_NO_SHAREDMEMORY,
+     QT_NO_IM, QT_NO_ACCESSIBILITY. Applications normally use them to guard the
+     relevant parts of code so they should still build.
+
+  9. No QAssistant, no printer support (QT_NO_PRINTER and QT_NO_PRINTDIALOG are
+     defined). No IPV6 support in the network module (QT_NO_IPV6 is defined).
+
+  See the project roadmap for more information on the current progress and
+  future plans:
+
+    http://svn.netlabs.org/qt4/roadmap
+
+  Feel free to request new features and report bugs using the project bug
+  tracker abaialble at:
+
+    http://svn.netlabs.org/qt4/report
 
 
