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().