Changeset 397 for trunk/README.OS2


Ignore:
Timestamp:
Dec 6, 2009, 8:44:41 PM (16 years ago)
Author:
Dmitry A. Kuminov
Message:

README for beta 5.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/README.OS2

    r330 r397  
    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
     1This is Beta 5 of Qt version 4.5.1 for OS/2 and eCS.
     2
     3This document contains a brief information on the OS/2 version of the Qt
     4library. Please visit the project page at
    65
    76  http://svn.netlabs.org/qt4/wiki
     
    98to get more information and the latest news and also to report bugs.
    109
     10To get a brief list of OS/2-specific changes from release to release
     11please see the CHANGES.OS2 file included in this distribution.
     12
    1113
    1214
    1315REQUIREMENTS
    1416
    15 In order to compile the Qt library, you will need the following tools:
     17In order to compile the Qt library and Qt-based applications, you will need
     18the following tools:
    1619
    1720  - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
     
    4043
    4144      http://www.os2site.com/sw/util/archiver/lxlt133.zip
     45
     46
     47
     48SETTING UP THE ENVIRONMENT
    4249
    4350After unpacking the GCC archive, you will have to set up the compiler
     
    7481directory, which on OS/2 always refers to the "os2-g++" specification, the only
    7582one supported at the present time.
     83
     84
     85
     86COMPILING QT
     87
     88You should skip this section if you downloaded and installed a binary
     89distribution of the Qt library for developers (qt-os2_g++-dev-X_Y_Z.wpi) and
     90proceed directly to section USING OFFICIAL BINARY QT PACKAGES below.
    7691
    7792When the environment is set up, go to the directory where you unpacked the
     
    137152     performing step a., otherwise the copy operation will fail.
    138153
     154IMPORTANT NOTE:
     155
     156     Please take into account that the Qt library you build on your own as
     157     described above is NOT intended for wide distribution with Qt applications
     158     you port or create. Such private Qt builds help you develop Qt applications
     159     (because you can easily debug your program and parts of the Qt framework at
     160     the source level) but being widely distributed they will create a so-called
     161     DLL hell when a program running on a user computer crashes because it picks
     162     up a wrong build of the Qt library. This will happen because even a single
     163     change to Qt configuration options may make your build binary incompatible
     164     with another build. And even if you convince the user to isolate different
     165     DLLs (using BEGINLIBPATH and alike) it will create another major problem:
     166     two different Qt applications will load two different Qt builds into memory
     167     which will double resource usage; having three different builds will
     168     tripple it and so on -- what a vaste of system resources!
     169
     170     In order to nicely solve this problem, netlabs.org provides the official
     171     binary builds of the Qt library distributed as WPI packages which are
     172     described in the next section.
     173
     174
     175
     176USING OFFICIAL BINARY QT PACKAGES
     177
     178For your convenience, netlabs.org provides the following binary distributions
     179of the Qt library (where X_Y_Z is the Qt version number):
     180
     181  qt-os2_g++-lib-X_Y_Z.wpi   - Runtime DLLs and binaries ("lib" package)
     182  qt-os2_g++-dev-X_Y_Z.wpi   - Development libraries, tools and headers
     183                               ("dev" package)
     184
     185These packages are called the official binary packages of the Qt library for
     186OS/2. An official binary distribution is the most complete Qt build available
     187that enables all Qt library features and includes all standard Qt plugins that
     188were implemented for OS/2.
     189
     190The "lib" package contains the release versions of DLLs (and may contain a few
     191helper binaries) necessary to run applications created using the Qt framework.
     192This package is usually installed by end users together with the Qt applications
     193they want to use.
     194
     195The "dev" package contains pre-built release versions of import libraries and
     196a complete set of C++ include headers of the Qt framework. This package is used
     197by developers and porters of Qt applications to build release versions of the
     198applications for OS/2 that are binary compatibie with the "lib" package
     199described above.
     200
     201Using the "dev" package requires the same environment as the one necessary for
     202building Qt and described in section SETTING UP THE ENVIRONMET above. The
     203process of compiling Qt applications using the "dev" package is basically the
     204same as with the hand made-build of Qt. Note, however, that if you are
     205developing or porting a Qt application, it is still recommended that you build
     206the debug version of the Qt library yourself and use it in your daily work since
     207it will give you much more feedback than the stripped down release version
     208contained in the "dev" package. The "dev" package, as said above, is intended
     209for making the final release build of the application for subsequent
     210distribution together with the official "lib" package.
     211
     212Besides the binary "lib" and the "dev" packages, the following official
     213non-binary packages exist that you may also find useful:
     214
     215  qt-examples-src-X_Y_Z.wpi  - Demo and example sources ("examples")
     216
     217NOTE:
     218
     219     All .DLL and .EXE files of the official binary build contain a DESCRIPTION
     220     string with the vendor field set to "netlabs.org" (by contrast, all custom
     221     Qt builds will set the vendor field to what the USER environment variable
     222     contains or to "anonymous" if USER is not set). Please note that you must
     223     NOT set vendor to "netlabs.org" when creating your own builds of the Qt
     224     library because it will make it really difficult to identify various
     225     distributions and track possible problems with the builds.
     226
    139227
    140228
     
    149237     Qt.
    150238
    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.
     239  3. In order to let Qt correctly detect the regional settings and choose the
     240     right language for translating the user interface, the LANG environment
     241     variable must be set. The format is
     242
     243       set LANG=ll_CC
     244
     245     where <ll> is the language code and <CC> is the country code (refer to
     246     wikipedia.org to find correct letters for your langage and country if you
     247     do not know them). Note that the optional encoding part of the LANG
     248     specification is ignored by Qt for OS/2 since 4.5.1 Beta 5 because it now
     249     detects the encoding automatically based on the system OS/2 settings.
     250
     251     Later, the correct language will be detected from the system settings and
     252     specifying LANG will be not necessary at all.
    175253
    176254  4. Some functionality of the already available Qt classes may be limited or
     
    195273  8. No QDesigner, no QAssistant.
    196274
    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:
     275  9. No Drag&Drop, no printer support. See the project roadmap for more
     276     information on the current progress and future plans:
    199277
    200278       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.
    378279
    379280
Note: See TracChangeset for help on using the changeset viewer.