dist/changes-4.6.0
changeset 0 1918ee327afb
child 3 41300fa6a67c
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 Qt 4.6 introduces many new features and improvements as well as bugfixes
       
     2 over the 4.5.x series. For more details, refer to the online documentation
       
     3 included in this distribution. The documentation is also available online:
       
     4 
       
     5   http://qt.nokia.com/doc/4.6
       
     6 
       
     7 The Qt version 4.6 series is binary compatible with the 4.5.x series.
       
     8 Applications compiled for 4.5 will continue to run with 4.6.
       
     9 
       
    10 Some of the changes listed in this file include issue tracking numbers
       
    11 corresponding to tasks in the Task Tracker:
       
    12 
       
    13   http://qt.nokia.com/developer/task-tracker
       
    14 
       
    15 Each of these identifiers can be entered in the task tracker to obtain more
       
    16 information about a particular change.
       
    17 
       
    18 ****************************************************************************
       
    19 *                           General                                        *
       
    20 ****************************************************************************
       
    21 
       
    22  - QtDBus
       
    23    * The minimum required version of the D-Bus reference library is
       
    24      now 0.93.
       
    25 
       
    26 
       
    27 ****************************************************************************
       
    28 *                          Library                                         *
       
    29 ****************************************************************************
       
    30 
       
    31     * [245219] Added QXmlQuery::setFocus(const QString &focus);
       
    32 
       
    33  - QVariant
       
    34     * Many optimisations
       
    35     * Added QVariant::toFloat() and QVariant::toReal()
       
    36     * Added QVariant(float) constructor
       
    37 
       
    38 ****************************************************************************
       
    39 *                      Platform Specific Changes                           *
       
    40 ****************************************************************************
       
    41 
       
    42  - Significant external contribution from Milan Burda for planned removal
       
    43    of (non-unicode) Windows 9x/ME support.
       
    44 
       
    45  - QRegion is no longer a GDI object by default. This means it is no
       
    46    longer subject to gui-thread only nor does it potentially impact
       
    47    the 10.000 GDI object limit per process. By explicitly calling
       
    48    .handle() a GDI object will be created and memory managed by
       
    49    QRegion. The native handle is for reading out only. Any GDI calls
       
    50    made on the HRGN handle will not affect the QRegion.
       
    51 
       
    52  - [259221] QFileInfo::symLinkTarget() now supports NTFS symbolic links
       
    53    thanks to Konstantin Ritt (merge request 1217).
       
    54 
       
    55  - The reading code of QLocalSocket on Windows has been rewritten to improve
       
    56    reading performance.
       
    57 
       
    58 ****************************************************************************
       
    59 * Important Behavior Changes *
       
    60 ****************************************************************************
       
    61 
       
    62  - The experimental Direct3D paint engine has been removed. The reason for
       
    63    this is that Nokia focuses on OpenGL for desktop hardware accelerated
       
    64    rendering.
       
    65 
       
    66  - The default engine used to draw onto OpenGL buffers has changed in
       
    67    Qt 4.6. The QPaintEngine::OpenGL2 engine is now used as the default
       
    68    engine. This *may* cause compatibility problems for applications
       
    69    that use a mix of QPainter and native OpenGL calls to draw into a GL
       
    70    buffer. Use the QGL::setPreferredPaintEngine() function to enforce
       
    71    usage of the old GL paint engine.
       
    72 
       
    73  - When mixing OpenGL and QPainter calls you need to surround your
       
    74    custom OpenGL calls with QPainter::beginNativePainting() and
       
    75    QPainter::endNativePainting().
       
    76    This is to ensure that the paint engine flushes any pending drawing and sets
       
    77    up the GL modelview/projection matrices properly before you can issue custom
       
    78    OpenGL calls, and to let the paint engine synchronize to the painter state
       
    79    before resuming regular QPainter based drawing.
       
    80 
       
    81  - Graphics View has undergone heavy optimization work, and as a result of
       
    82    this work, the following behavior changes were introduced.
       
    83 
       
    84    a) QStyleOptionGraphicsItem::exposedRect now contains the item's bounding
       
    85       rectangle, and QStyleOptionGraphicsItem::matrix is uninitialized by
       
    86       default. You can enable an exact exposed rectangle and a correct matrix
       
    87       by enabling the flag QGraphicsItem::ItemUsesExtendedStyleOptions.
       
    88 
       
    89    b) QStyleOptionGraphicsItem::levelOfDetails is obsoleted and its value is
       
    90       always initialized to 1. Instead you can call
       
    91       QStyleOptionGraphicsItem::levelOfDetailFromTransform(const QTransform &)
       
    92       to determine the level of detail.
       
    93 
       
    94    c) QGraphicsView no longer calls QGraphicsView::drawItems(), and in turn
       
    95       QGraphicsScene::drawItems(), by default. You can get the old behavior
       
    96       back by enabling QGraphicsView::IndirectPainting.
       
    97 
       
    98    d) QGraphicsItem no longer calls itemChange() for position and
       
    99       transformation changes. If you want to receive notifications for changes
       
   100       to the item's position and transformation, you can set the flag
       
   101       QGraphicsItem::ItemSendsGeometryChanges (which is enabled by default by
       
   102       QGraphicsWidget and QGraphicsProxyWidget).
       
   103 
       
   104  - QDesktopWidget on X11 no longer emits the resized(int) signal when screens
       
   105    are added or removed. This was not done on other platforms. Use the
       
   106    screenCountChanged signal instead
       
   107 
       
   108  - QUrl's parser is more strict when for hostnames in URLs. QUrl now
       
   109    enforces STD 3 rules:
       
   110 
       
   111     * each individual hostname section (between dots) must be at most
       
   112       63 ASCII characters in length;
       
   113 
       
   114     * only letters, digits, and the hyphen character are allowed in the
       
   115       ASCII range; letters outside the ASCII range follow the normal
       
   116       IDN rules
       
   117 
       
   118    That means QUrl no longer accepts some URLs that were invalid
       
   119    before, but weren't interpreted as such.
       
   120 
       
   121  - The Unix configure-time check for STL is stricter now in Qt
       
   122    4.6.0. This means some legacy STL implementations may fail to pass
       
   123    the test and, therefore, Qt will automatically disable STL support.
       
   124 
       
   125    This is a binary-compatible change: existing code will continue to
       
   126    work without being recompiled. However, it affects the source code,
       
   127    since some STL-compatibility API will not be enabled.
       
   128 
       
   129    Platforms affected by this change:
       
   130      * solaris-cc-* with the default (Cstd) C++ STL library
       
   131        recommendation: use -library=stlport4
       
   132        See Sun Studio's documentation for the effects of this option
       
   133 
       
   134  - QVariant has now a new implicit constructor that takes a float. This
       
   135    means that code that assigned a float to a variant would create a
       
   136    variant with userType QMetaType::Float, instead of QVariant::Double.
       
   137 
       
   138  - QDataStream will now read and write all floating point numbers with the 
       
   139    same precision, regardless of whether it's streamed into or out from a 
       
   140    float or double. This is to maintain compatibility across platforms with
       
   141    a different default precision for qreal. The default is 64-bit precision
       
   142    for all floating point numbers, and this can be changed using the new 
       
   143    function setFloatingPointPrecision(). Set Qt_4_5 as the version of the 
       
   144    QDataStream to get the behavior of previous versions.
       
   145