Qt 4.6.4 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 4.6.0.  For more details,
refer to the online documentation included in this distribution. The
documentation is also available online:

  http://qt.nokia.com/doc/4.6

The Qt version 4.6 series is binary compatible with the 4.5.x series.
Applications compiled for 4.5 will continue to run with 4.6.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker or the Merge Request queue
of the public source repository.

Qt Bug Tracker: http://bugreports.qt.nokia.com
Merge Request:  http://qt.gitorious.org

****************************************************************************
*                           General                                        *
****************************************************************************

New features
------------

 - SomeClass, SomeOtherClass
    * New classes for foo, bar and baz

Optimizations
-------------

 - Optimized foo in QSomeClass
    * See list of Important Behavior Changes below


****************************************************************************
*                          Library                                         *
****************************************************************************

QtCore
------

 - foo
    * bar

QtGui
-----

 - foo
    * bar

QtDBus
------

 - foo
    * bar

QtNetwork
---------

 - foo
    * bar

QtOpenGL
--------

 - QGLShaderProgram
    * [QTBUG-12478] Don't resolve GLSL extensions if no shaders.
    * [QTBUG-12591] setUniformValue(QSize) was setting (w,w) not (w,h).
    * [QTBUG-12554] Wrong OpenGLVersionFlags on OpenGL 4.0 systems.

QtScript
--------

 - foo
    * bar

QtSql
-----

 - foo
    * bar

QtXml
-----

 - foo
    * bar

Qt Plugins
----------

 - foo
    * bar

Third party components
----------------------

 - Updated foo to version 2.3.9.

 - Updated bar to the latest version from baz.org.


****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

Qt for Unix (X11 and Mac OS X)
------------------------------

 -

Qt for Linux/X11
----------------

 -

Qt for Windows
--------------

 -

Qt for Mac OS X
---------------

 -

Qt for Embedded Linux
---------------------

 -

DirectFB
--------

 -

Qt for Windows CE
-----------------

 -

****************************************************************************
*                          Tools                                           *
****************************************************************************

 - Designer
   * foo

 - qdoc3
   * bar

 - Linguist
   * baz

****************************************************************************
* Important Behavior Changes *
****************************************************************************

 -

