Qt 4.3.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 4.3.0.

The Qt version 4.3 series is binary compatible with the 4.2.x, 4.1.x and
4.0.x series. Applications compiled for Qt 4.0, 4.1 or 4.2 will continue to
run with Qt 4.3.

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

General Improvements
--------------------

- Translations
    * Updated the German translation to provide complete coverage of Qt.

- QDBusView
    * Added icons for Mac OS X and Windows.

- Intel C++ Compiler for Linux
    * Added support for version 10 of the compiler. See the Compiler
      Notes documentation for known problems and work-arounds for this
      compiler.
    * Added linux-icc-32 mkspec, for building with the 32-bit compiler
      on 64-bit hosts.

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

- FreeType
    * Security fix (CVE-2007-2754): Integer overflow in the
      TT_Load_Simple_Glyph function in freetype 2.3.4 and earlier allows
      remote authenticated users to execute arbitrary code via crafted BDF
      fonts.

- SQLite
    * File descriptors are not inherited during spawn() anymore.

Build System
------------

    * Fixed native builds on ARM architectures.

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

General Improvements
--------------------

- QAbstractItemView
    * [166605] Fixed regression causing keyboard modifiers to have no effect
      during drag and drop operations.
    * [169233] Fixed bug that would prevent text from being selected in
      double spin box editors.
    * [168917] Text would sometimes not be selected in the editor.

- QAbstractItemModel
    * [166714] Fixed regression causing persistent indexes to not be
      correctly updated.

- QAbstractPrintDialog
    * [163000] Fixed bug on Unix where the PrintSelection option would not
      be enabled unless PrintPageRange was also enabled.

- QApplication
    * [166677] Windows only: Fixed an issue with alert() where windows
      would keep flashing after being activated by the user.
    * [168974] Fixed problems with compilation that could occur when
      QT3_SUPPORT and QT_NO_CURSOR were defined.

- QComboBox
    * [165130] Mac OS X only: Fixed bug that caused an editable combo box to
      cut off list entries.

- QDesktopServices
   * [165817] Fixed misleading documentation of
     QDesktopServices::setUrlHandler().

- QDialog
    * [166900, 166514] Fixed bug where a dialog could remain visible after
      hide() had been called.

- QFile
   * [167217] Fixed regression that prevented the sequential bit from being
     reset when reopening a file.

- QFileDialog:
   * [164947] Mac OS X only: Ensure that the parent of a native sheet dialog
     is activated before a sheet is shown.

- QFSFileEngine:
   * [163406] Ensured that QFile::readLine() works on all platforms when
     QFile is opened on file descriptor 0.

- QGLWidget
    * [162085] X11 only: Fixed usage of QGLWidget on multiple X11 screens.
    * [164707] X11 only: Fixed the transparent overlay color usage to make
      it possible to draw with a solid black color. Qt::transparent is now
      always returned as the transparent color in an overlay.
    * [162143] Fixed a crash that could occur when calling renderPixmap()
      with extremely large sizes. It now gracefully fails instead.

- QGraphicsItem
    * [163430] Improved precision of QGraphicsItem::ItemIsMovable move
      operations, and fixed move support for
      QGraphicsItem::ItemIgnoresTransformations.

- QGraphicsItemAnimation
    * [164585] Fixed setTimeLine(0) to properly remove the existing timeline,
      and also ensured that setting the same timeline twice works fine.

- QGraphicsScene
    * [163555] Flat items (items whose bounding rect width or height is 0)
      no longer cause a full viewport update when they are updated.

- QGraphicsView
    * [160828] Fixed bug in QGraphicsScene/View::render() which could cause
      nothing to be rendered for QPicture target devices.
    * [163919] Scroll bar ranges are no longer reset to (0,0) when the
      scroll bars are disabled (Qt::ScrollBarAlwaysOff).
    * [163537] Scroll bar ranges are now correct also for styles with a
      viewport frame only around the viewport itself (e.g., Motif and Mac
      OS X style).
    * [158245] Calling setScene(0) now recalculates the scroll bar ranges.
    * [170619, 157400] Fixed rendering bugs that could occur when using a
      semi-transparent foreground or background brush.
    * [170619, 168885] Fixed a bug that would cause the rubber band to
      appear after invoking a context menu.

- QHostInfo
    * [168233] Ensured that all pending look-ups are terminated on
      application exit to avoid a delayed application shutdown while waiting
      for the look-ups to complete.
    * [167487] Fixed support for Unix platforms that allow IPv6 look-ups
      through getaddrinfo(), but that don't support IPv6 sockets.

- QImage
    * [163727] Fixed artifacts in scaled images that could occur when using
      Qt::FastTransformation.
    * [169908] Fixed a crash that could occur when reading 4-bit
      uncompressed BMP images.

- QLocale
    * [167534] Fixed bug that would cause QLocale::toString() to return
      garbage if passed an invalid time or date.

- QMainWindow
    * [166004, 167651] Made the unified toolbar handle layout requests.
    * Mac OS X only: Don't move the window's title bar when clicking on the
      toolbar button.
    * [164105] Made the unified toolbar handle showMaximized().
    * [162555] Move OpenGL contexts when the toolbar button is pressed and
      we are using the unified toolbar.
    * [169063] Fixed a crash that could occur when setting a new menu bar
      and the old one contained corner widgets.

- QMdiArea
    * [162573] Improved switching between maximized subwindows (less
      flickering).
    * [162046, 164264] Improved activation behavior.
    * [170770] Fixed inconsistent behavior with scroll bars when a subwindow
      is maximized.
    * [169873] Fixed incorrect positions of tiled subwindows.

- QMdiSubWindow
    * [168129] Improved the way a default window icon is selected.
    * [169859] Improved menu bar buttons for maximized subwindows.
    * Improved support for size grips.
    * [169543] Windows only (XP style): Fixed a problem where the frame
      width was 1 pixel wider than it should have been.
    * [168829] Fixed incorrect margins of maximized subwindows inside
      QMainWindow.

- QMenu
    * [166652] Fixed a regression where context menus could not be triggered
      with the right mouse button.
    * [161789] Fixed a bug that prevented tear-off handles from being
      activated when they were dragged down from the menu bar item.

- QMenuBar
    * [168892] Fixed bug that made the extension always appear when adding a
      separator to a menu bar.
    * [166181] Fixed bug that caused extensions to be misplaced.
    * [166242] Fixed bug that could cause menus to be collapsed.

- QMessageBox
    * Ensured that the default button isn't lost when the modality of the
      message box is changed.

- QMacStyle
    * Ensured that items with State_Focus actually get the focus ring drawn.

- QNetworkProxy
    * [170549] Fixed a regression from 4.2.3 in the default constructor; if
      used before any other proxy settings were applied, it would fail to
      initialize the proxy handlers, effectively disabling support for
      SOCKS5 and HTTP proxies.

- QOpenGLPaintEngine
    * [166087] Fixed a memory leak caused by not releasing GL program
      handles if they failed to compile.
    * [166054] Ensured that push and pop operations are performed on the
      texture matrix stack and the client state attributes when begin()
      and end() are called.
    * [161021] Fixed rendering of points with cosmetic pens with widths
      greater than 0.

- QPainter
    * [158815] Fixed rendering artifacts for extended composition modes with
      semi-transparent or anti-aliased drawing.
    * [163744] Fixed aliased ellipse drawing artifacts (horizontal lines)
      in raster engine.
    * [166623] Fixed bug where gradients with ObjectBoundingMode would be
      drawn at an incorrect offset.
    * [167497] Fixed color bleeding artifacts at the edges when drawing
      images/pixmaps with SmoothPixmapTransform on X11.
    * [168621] Fixed bug which would cause projective transformations to be
      incorrectly applied for non-top-level widgets.
    * [168623] Fixed drawing of gradients with projective transformations.
    * [167891] Fixed an assert in QBezier::shifted() that occured when
      drawing certain paths.

- QPlastiqueStyle
    * [167145] Fixed a regression with combo and spin box text margins.

- QPrintDialog
    X11 only:
    * [142701] Fixed an assert which could occur on a system with CUPS
      setup, but no printers available.
    * [165957] Added support to allow printers to be chosen from the
      NPRINTER and NGPRINTER enviroment variables.
      Ensured that CUPS command line options are not used when not using
      CUPS.
    * [158807] Fixed page ordering when printing to a CUPS printer or to PDF
      files.
    * [155129] Fixed Landscape printing with CUPS version < 1.2.

    Windows only:
    * [166054] Fixed a crash which could occur when trying to use a
      QPrintDialog to configure a printer set to use
      QPrinter::PostScriptFormat as output format.
    * [162729] Fixed an assert that could occur when entering an invalid
      page range.

- QPrintEngine
    * [166499] Windows only: Fixed a bug that could cause printing from a
      QTextEdit to produce incorrect wrong results under certain
      circumstances.
    * [161915] Mac OS X only: Drawing vertical lines with a dot pattern now
      work correctly on OS X 10.3.9.

- QProcess
    * [161944] QProcess::setReadChannel() no longer affects the contents of
      the stderr / stdout / unget buffers. QProcess::readAllStandardError()
      and QProcess::readAllStandardOutput() no longer clear any unget data
      or buffered data.

- QPixmap
    * [167841] Fixed bug where filling a QPixmap with an alpha color would
      fail to detach the pixmap, causing copies of the pixmap to be changed
      as well.
    * [157166] X11 only: Fixed problem with disappearing icons on 8-bit
      TrueColor displays.
    * [161307] Mac OS X only: Drawing bitmaps on pixmaps now works
      correctly.

- QRasterPaintEngine
    * [166710] Fixed bug that prevented Qt::OpaqueMode from being taken into
      account under certain circumstances when QPainter::fillRect() was
      called.
    * [159538] Fixed drawing of a monochrome image into another monochrome
      image.
    * [166000] Fixed compilation of mmxext optimizations.
    * [156925] Fixed performance bug in 3DNow! optimizations.

- QRegion
    * [167445] Removed potential assert in QRegion::operator^ on Unix.

- QScriptEngine
    * [165899] Fixed bug where calling an overloaded slot from a script
      would pick the wrong overload when the argument is a QObject.
    * [166903] Fixed crash when evaluating a call to a script function that
      ends with an if-statement with a true-part that ends with a return
      statement (and has no else-part).

- QScrollArea
    * [167838] Use micro focus rectangle (if "active") instead of the entire
      widget in ensureWidgetVisible().

- QSortFilterProxyModel
    * [167273] Fixed regression that caused QSortFilterProxyModel to assert
      when changing data in a QSqlTableModel source model with the
      OnFieldChange edit strategy.

- QSqlQueryModel
    * [166880] Fixed a bug where setQuery() could cause a crash by calling
      hasFeature() on the wrong driver instance.

- QSqlRelationalTableModel
    * [140782] Fixed a bug which caused insertRecord() to fail when record()
      returns a record containing duplicate field names.

- QSslCertificate
    * [168116] Don't crash when passing 0 to QSslCertificate::fromDevice();
      issue a warning instead. This fix also removes warnings about
      uninitialized symbols when accessing the static functions in
      QSslCertificate before creating a QSslSocket.

- QSslSocket
    * [164356] Fixed a crash that could occur when passing a string to
      setCiphers().
    * [166633] Fixed a memory leak that would occur with each established
      connection.
    * [165962] Fixed support for wildcard certificates.
    * [167593] Fixed a bug that caused QSslSocket::protocol() to be ignored
      and set to the default of SSLv3 under certain circumstances.
    * [167380] Fixed a crash when assigning a null key for SSL servers.
    * [169571] Fixed a crash that could occur after disconnecting from a
      remote address.

- QTcpSocket
    * [169183] Removed a qWarning() when reading from a closed socket
      (regression from 4.2.3).

- QTemporaryFile
    * [167565] Fixed a regression from 4.2.3; size() would always return 0.

- QTextEdit
    * [161577] Fixed regression causing Shift-Backspace to be ignored.
    * [165833] Fixed floating point overflow causing incorrect page heights
      for text documents.
    * [167377] Fixed performance regression when appending a lot of text in
      NoWrap line break mode when there is a horizontal scroll bar.
    * [163446] Fixed excessive emission of selectionChanged() signals when
      moving the cursor.
    * [167701] Fixed QTextEdit::setLineWrapMode to not change the
      wordWrapMode property when called with NoWrap.

- QTextDocument
    * [160631] Fixed missing HTML export of page break policies.
    * [163258] Fixed bug that prevented text table borders from being drawn
      in QLabels and tool tips.
    * [166670] Fixed layout bug that caused the right margin property of
      paragraphs inside table cells to be ignored.
    * [168406] Fixed rendering bug which would cause incorrect background
      fills for paragraphs with a left margin set.

- QTextLayout
    * [166083] Fixed incorrect line breaking when breaking at a tab
      character.
    * [165861] Fixed support for QTextOption::NoWrap.

- QLabel
    * [162515] Fixed bug that prevented QLabel's alignment from being
      applied properly to rich text.

- QUrl
    * Fixed a bug in QUrl::clear() which left some internal data uncleared.

- QWidget
    * [165177] Fixed crash that could occur when deleting a focus widget from a
      window with a non-null parent.
    * [165654] Fixed issue with incorrect repainting that could occur when
      deleting an opaque child widget.

- QWindowsVistaStyle
    * [162730] Fixed the use of an incorrect font for item views on Windows
      Vista.
    * [157324] Improved the native appearance of indeterminate progress
      bars.
    * [170012] Fixed a bug which prevented the busy mode of a progress bar
      from working when both its range and value were set to zero.

- QWindowsXPStyle
    * [132695] Fixed a crash issue that could occur after multiple system
      theme changes.

- QWizard
    * [159684] AeroStyle: Fixed bug that caused the minimum height to be set
      too low.
    * [161670] AeroStyle: Fixed a problem that caused title bar buttons to
      remaining glowing after the mouse had left the window.
    * [161678] AeroStyle: Fixed a problem with incorrect vertical center
      alignment of wizard buttons.

- Q3Header
    * [167283] Fixed regression in painting of the header.

- Q3ListViewItem
    * [165853] Fixed background coloring of a cell.

- Q3Socket
    * [163563] Fixed regression in canReadLine(); it now properly searches
      all internal buffers.

- Q3Table
    * [168497] Fixed incorrect updates when using setUpdatesEnabled().

- Q3Wizard
    * [168195] Fixed bug that could cause the wrong page to be shown when
      reopening a wizard.


****************************************************************************
*                          Database Drivers                                *
****************************************************************************

- Interbase driver
    * [149761] Added support for compiling Firebird 2.0 on 64-bit platforms.
    * [165423] Fixed a regression causing an assert when calling a stored
      procedure without out-parameters.
    * [166238] Fixed a bug that caused only the first segment of multi-
      segmented BLOBs to be retrieved in some cases.

- ODBC driver
    * [167167] Fixed a regression that caused a crash when checking DBMS
      general information when connecting to a database.
    
- SQLite driver
    * Use new sqlite3_prepare16_v2 instead of sqlite3_prepare16 when
      possible.
    * [167665] Fixed a regression that caused field names to be escaped
      multiple times when selecting from views.
    
****************************************************************************
*                               Examples                                   *
****************************************************************************

- Secure Socket Client
    * New example, showing how to use QSslSocket to communicate over an
      encrypted (SSL) connection.
    
- Accelerated Screen Driver
    * Ensured that the example does not crash if it is unable to get a
      pointer to the frame buffer.

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

X11
---

    * [163862] Fixed a bug where QClipboard would escape all non-ASCII
      characters that were copied from GTK+ applications.
    * [165182] Fixed building with the Intel C++ Compiler for Linux on
      IA-64 (Itanium) (missing functions in qatomic_ia64.h)
    * [163861] Fixed building on AIX 5.3 where the _POSIX_MONOTONIC_CLOCK
      macro was accidentally redefined.
    * [166650] Fixed a regression from 4.2.3 where calling QWidget::move()
      in a reimplementation of QWidget::showEvent() did not work.
    * [166097] QWidget::show() no longer overwrites the _NET_WM_STATE
      property. Instead, QWidget now merges any existing _NET_WM_STATE
      property together with its own state.
    * Fixed the QAtomic implementation on the Alpha, which previously
      caused all applications to hang on start-up.
    * [165229] Changed the linux-lsb-g++ specification to avoid linking with
      libGLU (which is not part of the LSB specification).
    * [155083, 146833] Ensure that all font substitutions from fontconfig
      are obeyed by using a strong binding for QFont's family with
      fontconfig.

Windows
-------

    * [169105] Fixed a regression where calling resize() on a minimized
      window did not work.
    * [169376] Fixed a race condition that would cause a crash when
      stopping timers in a thread.
    * [165440] Fixed a crash that could occur when using Google's Pinyin
      input method with Qt.

Mac OS X
--------

    * QMake's Xcode generator is now more robust when determining which
      version of Xcode projects it should generate. It also uses launch
      services to determine Xcode's location as well.
    * Small changes to be more Leopard compatible
    * [167020] Ensured that the translations are really included in the
      binary package.
    * [164530] Ensured that the DPI for fonts don't change when the
      resolution changes.
    * [165530] Fixed a bug that caused Q_DECLARE_METATYPE() in a
      precompiled header to interfere with the Objective-C 'id' keyword.
    * [165659] Fixed bold/italic font rendering for some fonts.

Qtopia Core
-----------

    * Fixed support for bitmap fonts.
    * [164297] Fixed a potential crash in accelerated paint engines.
    * [160970] Fixed support for 1-bit black and white screens.
    * [164783] Fixed bug in 4-bit grayscale support which resulted in pink
      colors under certain circumstances.
    * [164955] Fixed painting error when using QWidget::move().
    * [166368] Fixed bug in QWidget::setFixedSize() when using multiple
      screens.
    * [165686] Fixed bug in QPixmap::grabWindow() when using multiple
      screens.
    * [130925] Fixed use of QWSWindowSurface::move() when acceleration is
      available.
    * [143865] Implemented QWSCalibratedMouseHandler::getCalibration()
      properly to fill all return values.
    * [161820] Fixed incorrect detection of glib libraries when cross-
      compiling.
    * [152914] Improved the framebuffer test example.
    * [171454] Fixed painting errors when zooming in QVFb.


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

- QScrollArea
    * [167838] Use micro focus rectangle (if "active") instead of the entire
      widget in ensureWidgetVisible().
