1Qt 4.3.1 is a bug-fix release. It maintains both forward and backward
2compatibility (source and binary) with Qt 4.3.0.
3
4The Qt version 4.3 series is binary compatible with the 4.2.x, 4.1.x and
54.0.x series. Applications compiled for Qt 4.0, 4.1 or 4.2 will continue to
6run with Qt 4.3.
7
8****************************************************************************
9*                           General                                        *
10****************************************************************************
11
12General Improvements
13--------------------
14
15- Translations
16    * Updated the German translation to provide complete coverage of Qt.
17
18- QDBusView
19    * Added icons for Mac OS X and Windows.
20
21- Intel C++ Compiler for Linux
22    * Added support for version 10 of the compiler. See the Compiler
23      Notes documentation for known problems and work-arounds for this
24      compiler.
25    * Added linux-icc-32 mkspec, for building with the 32-bit compiler
26      on 64-bit hosts.
27
28Third party components
29----------------------
30
31- FreeType
32    * Security fix (CVE-2007-2754): Integer overflow in the
33      TT_Load_Simple_Glyph function in freetype 2.3.4 and earlier allows
34      remote authenticated users to execute arbitrary code via crafted BDF
35      fonts.
36
37- SQLite
38    * File descriptors are not inherited during spawn() anymore.
39
40Build System
41------------
42
43    * Fixed native builds on ARM architectures.
44
45****************************************************************************
46*                           Library                                        *
47****************************************************************************
48
49General Improvements
50--------------------
51
52- QAbstractItemView
53    * [166605] Fixed regression causing keyboard modifiers to have no effect
54      during drag and drop operations.
55    * [169233] Fixed bug that would prevent text from being selected in
56      double spin box editors.
57    * [168917] Text would sometimes not be selected in the editor.
58
59- QAbstractItemModel
60    * [166714] Fixed regression causing persistent indexes to not be
61      correctly updated.
62
63- QAbstractPrintDialog
64    * [163000] Fixed bug on Unix where the PrintSelection option would not
65      be enabled unless PrintPageRange was also enabled.
66
67- QApplication
68    * [166677] Windows only: Fixed an issue with alert() where windows
69      would keep flashing after being activated by the user.
70    * [168974] Fixed problems with compilation that could occur when
71      QT3_SUPPORT and QT_NO_CURSOR were defined.
72
73- QComboBox
74    * [165130] Mac OS X only: Fixed bug that caused an editable combo box to
75      cut off list entries.
76
77- QDesktopServices
78   * [165817] Fixed misleading documentation of
79     QDesktopServices::setUrlHandler().
80
81- QDialog
82    * [166900, 166514] Fixed bug where a dialog could remain visible after
83      hide() had been called.
84
85- QFile
86   * [167217] Fixed regression that prevented the sequential bit from being
87     reset when reopening a file.
88
89- QFileDialog:
90   * [164947] Mac OS X only: Ensure that the parent of a native sheet dialog
91     is activated before a sheet is shown.
92
93- QFSFileEngine:
94   * [163406] Ensured that QFile::readLine() works on all platforms when
95     QFile is opened on file descriptor 0.
96
97- QGLWidget
98    * [162085] X11 only: Fixed usage of QGLWidget on multiple X11 screens.
99    * [164707] X11 only: Fixed the transparent overlay color usage to make
100      it possible to draw with a solid black color. Qt::transparent is now
101      always returned as the transparent color in an overlay.
102    * [162143] Fixed a crash that could occur when calling renderPixmap()
103      with extremely large sizes. It now gracefully fails instead.
104
105- QGraphicsItem
106    * [163430] Improved precision of QGraphicsItem::ItemIsMovable move
107      operations, and fixed move support for
108      QGraphicsItem::ItemIgnoresTransformations.
109
110- QGraphicsItemAnimation
111    * [164585] Fixed setTimeLine(0) to properly remove the existing timeline,
112      and also ensured that setting the same timeline twice works fine.
113
114- QGraphicsScene
115    * [163555] Flat items (items whose bounding rect width or height is 0)
116      no longer cause a full viewport update when they are updated.
117
118- QGraphicsView
119    * [160828] Fixed bug in QGraphicsScene/View::render() which could cause
120      nothing to be rendered for QPicture target devices.
121    * [163919] Scroll bar ranges are no longer reset to (0,0) when the
122      scroll bars are disabled (Qt::ScrollBarAlwaysOff).
123    * [163537] Scroll bar ranges are now correct also for styles with a
124      viewport frame only around the viewport itself (e.g., Motif and Mac
125      OS X style).
126    * [158245] Calling setScene(0) now recalculates the scroll bar ranges.
127    * [170619, 157400] Fixed rendering bugs that could occur when using a
128      semi-transparent foreground or background brush.
129    * [170619, 168885] Fixed a bug that would cause the rubber band to
130      appear after invoking a context menu.
131
132- QHostInfo
133    * [168233] Ensured that all pending look-ups are terminated on
134      application exit to avoid a delayed application shutdown while waiting
135      for the look-ups to complete.
136    * [167487] Fixed support for Unix platforms that allow IPv6 look-ups
137      through getaddrinfo(), but that don't support IPv6 sockets.
138
139- QImage
140    * [163727] Fixed artifacts in scaled images that could occur when using
141      Qt::FastTransformation.
142    * [169908] Fixed a crash that could occur when reading 4-bit
143      uncompressed BMP images.
144
145- QLocale
146    * [167534] Fixed bug that would cause QLocale::toString() to return
147      garbage if passed an invalid time or date.
148
149- QMainWindow
150    * [166004, 167651] Made the unified toolbar handle layout requests.
151    * Mac OS X only: Don't move the window's title bar when clicking on the
152      toolbar button.
153    * [164105] Made the unified toolbar handle showMaximized().
154    * [162555] Move OpenGL contexts when the toolbar button is pressed and
155      we are using the unified toolbar.
156    * [169063] Fixed a crash that could occur when setting a new menu bar
157      and the old one contained corner widgets.
158
159- QMdiArea
160    * [162573] Improved switching between maximized subwindows (less
161      flickering).
162    * [162046, 164264] Improved activation behavior.
163    * [170770] Fixed inconsistent behavior with scroll bars when a subwindow
164      is maximized.
165    * [169873] Fixed incorrect positions of tiled subwindows.
166
167- QMdiSubWindow
168    * [168129] Improved the way a default window icon is selected.
169    * [169859] Improved menu bar buttons for maximized subwindows.
170    * Improved support for size grips.
171    * [169543] Windows only (XP style): Fixed a problem where the frame
172      width was 1 pixel wider than it should have been.
173    * [168829] Fixed incorrect margins of maximized subwindows inside
174      QMainWindow.
175
176- QMenu
177    * [166652] Fixed a regression where context menus could not be triggered
178      with the right mouse button.
179    * [161789] Fixed a bug that prevented tear-off handles from being
180      activated when they were dragged down from the menu bar item.
181
182- QMenuBar
183    * [168892] Fixed bug that made the extension always appear when adding a
184      separator to a menu bar.
185    * [166181] Fixed bug that caused extensions to be misplaced.
186    * [166242] Fixed bug that could cause menus to be collapsed.
187
188- QMessageBox
189    * Ensured that the default button isn't lost when the modality of the
190      message box is changed.
191
192- QMacStyle
193    * Ensured that items with State_Focus actually get the focus ring drawn.
194
195- QNetworkProxy
196    * [170549] Fixed a regression from 4.2.3 in the default constructor; if
197      used before any other proxy settings were applied, it would fail to
198      initialize the proxy handlers, effectively disabling support for
199      SOCKS5 and HTTP proxies.
200
201- QOpenGLPaintEngine
202    * [166087] Fixed a memory leak caused by not releasing GL program
203      handles if they failed to compile.
204    * [166054] Ensured that push and pop operations are performed on the
205      texture matrix stack and the client state attributes when begin()
206      and end() are called.
207    * [161021] Fixed rendering of points with cosmetic pens with widths
208      greater than 0.
209
210- QPainter
211    * [158815] Fixed rendering artifacts for extended composition modes with
212      semi-transparent or anti-aliased drawing.
213    * [163744] Fixed aliased ellipse drawing artifacts (horizontal lines)
214      in raster engine.
215    * [166623] Fixed bug where gradients with ObjectBoundingMode would be
216      drawn at an incorrect offset.
217    * [167497] Fixed color bleeding artifacts at the edges when drawing
218      images/pixmaps with SmoothPixmapTransform on X11.
219    * [168621] Fixed bug which would cause projective transformations to be
220      incorrectly applied for non-top-level widgets.
221    * [168623] Fixed drawing of gradients with projective transformations.
222    * [167891] Fixed an assert in QBezier::shifted() that occured when
223      drawing certain paths.
224
225- QPlastiqueStyle
226    * [167145] Fixed a regression with combo and spin box text margins.
227
228- QPrintDialog
229    X11 only:
230    * [142701] Fixed an assert which could occur on a system with CUPS
231      setup, but no printers available.
232    * [165957] Added support to allow printers to be chosen from the
233      NPRINTER and NGPRINTER enviroment variables.
234      Ensured that CUPS command line options are not used when not using
235      CUPS.
236    * [158807] Fixed page ordering when printing to a CUPS printer or to PDF
237      files.
238    * [155129] Fixed Landscape printing with CUPS version < 1.2.
239
240    Windows only:
241    * [166054] Fixed a crash which could occur when trying to use a
242      QPrintDialog to configure a printer set to use
243      QPrinter::PostScriptFormat as output format.
244    * [162729] Fixed an assert that could occur when entering an invalid
245      page range.
246
247- QPrintEngine
248    * [166499] Windows only: Fixed a bug that could cause printing from a
249      QTextEdit to produce incorrect wrong results under certain
250      circumstances.
251    * [161915] Mac OS X only: Drawing vertical lines with a dot pattern now
252      work correctly on OS X 10.3.9.
253
254- QProcess
255    * [161944] QProcess::setReadChannel() no longer affects the contents of
256      the stderr / stdout / unget buffers. QProcess::readAllStandardError()
257      and QProcess::readAllStandardOutput() no longer clear any unget data
258      or buffered data.
259
260- QPixmap
261    * [167841] Fixed bug where filling a QPixmap with an alpha color would
262      fail to detach the pixmap, causing copies of the pixmap to be changed
263      as well.
264    * [157166] X11 only: Fixed problem with disappearing icons on 8-bit
265      TrueColor displays.
266    * [161307] Mac OS X only: Drawing bitmaps on pixmaps now works
267      correctly.
268
269- QRasterPaintEngine
270    * [166710] Fixed bug that prevented Qt::OpaqueMode from being taken into
271      account under certain circumstances when QPainter::fillRect() was
272      called.
273    * [159538] Fixed drawing of a monochrome image into another monochrome
274      image.
275    * [166000] Fixed compilation of mmxext optimizations.
276    * [156925] Fixed performance bug in 3DNow! optimizations.
277
278- QRegion
279    * [167445] Removed potential assert in QRegion::operator^ on Unix.
280
281- QScriptEngine
282    * [165899] Fixed bug where calling an overloaded slot from a script
283      would pick the wrong overload when the argument is a QObject.
284    * [166903] Fixed crash when evaluating a call to a script function that
285      ends with an if-statement with a true-part that ends with a return
286      statement (and has no else-part).
287
288- QScrollArea
289    * [167838] Use micro focus rectangle (if "active") instead of the entire
290      widget in ensureWidgetVisible().
291
292- QSortFilterProxyModel
293    * [167273] Fixed regression that caused QSortFilterProxyModel to assert
294      when changing data in a QSqlTableModel source model with the
295      OnFieldChange edit strategy.
296
297- QSqlQueryModel
298    * [166880] Fixed a bug where setQuery() could cause a crash by calling
299      hasFeature() on the wrong driver instance.
300
301- QSqlRelationalTableModel
302    * [140782] Fixed a bug which caused insertRecord() to fail when record()
303      returns a record containing duplicate field names.
304
305- QSslCertificate
306    * [168116] Don't crash when passing 0 to QSslCertificate::fromDevice();
307      issue a warning instead. This fix also removes warnings about
308      uninitialized symbols when accessing the static functions in
309      QSslCertificate before creating a QSslSocket.
310
311- QSslSocket
312    * [164356] Fixed a crash that could occur when passing a string to
313      setCiphers().
314    * [166633] Fixed a memory leak that would occur with each established
315      connection.
316    * [165962] Fixed support for wildcard certificates.
317    * [167593] Fixed a bug that caused QSslSocket::protocol() to be ignored
318      and set to the default of SSLv3 under certain circumstances.
319    * [167380] Fixed a crash when assigning a null key for SSL servers.
320    * [169571] Fixed a crash that could occur after disconnecting from a
321      remote address.
322
323- QTcpSocket
324    * [169183] Removed a qWarning() when reading from a closed socket
325      (regression from 4.2.3).
326
327- QTemporaryFile
328    * [167565] Fixed a regression from 4.2.3; size() would always return 0.
329
330- QTextEdit
331    * [161577] Fixed regression causing Shift-Backspace to be ignored.
332    * [165833] Fixed floating point overflow causing incorrect page heights
333      for text documents.
334    * [167377] Fixed performance regression when appending a lot of text in
335      NoWrap line break mode when there is a horizontal scroll bar.
336    * [163446] Fixed excessive emission of selectionChanged() signals when
337      moving the cursor.
338    * [167701] Fixed QTextEdit::setLineWrapMode to not change the
339      wordWrapMode property when called with NoWrap.
340
341- QTextDocument
342    * [160631] Fixed missing HTML export of page break policies.
343    * [163258] Fixed bug that prevented text table borders from being drawn
344      in QLabels and tool tips.
345    * [166670] Fixed layout bug that caused the right margin property of
346      paragraphs inside table cells to be ignored.
347    * [168406] Fixed rendering bug which would cause incorrect background
348      fills for paragraphs with a left margin set.
349
350- QTextLayout
351    * [166083] Fixed incorrect line breaking when breaking at a tab
352      character.
353    * [165861] Fixed support for QTextOption::NoWrap.
354
355- QLabel
356    * [162515] Fixed bug that prevented QLabel's alignment from being
357      applied properly to rich text.
358
359- QUrl
360    * Fixed a bug in QUrl::clear() which left some internal data uncleared.
361
362- QWidget
363    * [165177] Fixed crash that could occur when deleting a focus widget from a
364      window with a non-null parent.
365    * [165654] Fixed issue with incorrect repainting that could occur when
366      deleting an opaque child widget.
367
368- QWindowsVistaStyle
369    * [162730] Fixed the use of an incorrect font for item views on Windows
370      Vista.
371    * [157324] Improved the native appearance of indeterminate progress
372      bars.
373    * [170012] Fixed a bug which prevented the busy mode of a progress bar
374      from working when both its range and value were set to zero.
375
376- QWindowsXPStyle
377    * [132695] Fixed a crash issue that could occur after multiple system
378      theme changes.
379
380- QWizard
381    * [159684] AeroStyle: Fixed bug that caused the minimum height to be set
382      too low.
383    * [161670] AeroStyle: Fixed a problem that caused title bar buttons to
384      remaining glowing after the mouse had left the window.
385    * [161678] AeroStyle: Fixed a problem with incorrect vertical center
386      alignment of wizard buttons.
387
388- Q3Header
389    * [167283] Fixed regression in painting of the header.
390
391- Q3ListViewItem
392    * [165853] Fixed background coloring of a cell.
393
394- Q3Socket
395    * [163563] Fixed regression in canReadLine(); it now properly searches
396      all internal buffers.
397
398- Q3Table
399    * [168497] Fixed incorrect updates when using setUpdatesEnabled().
400
401- Q3Wizard
402    * [168195] Fixed bug that could cause the wrong page to be shown when
403      reopening a wizard.
404
405
406****************************************************************************
407*                          Database Drivers                                *
408****************************************************************************
409
410- Interbase driver
411    * [149761] Added support for compiling Firebird 2.0 on 64-bit platforms.
412    * [165423] Fixed a regression causing an assert when calling a stored
413      procedure without out-parameters.
414    * [166238] Fixed a bug that caused only the first segment of multi-
415      segmented BLOBs to be retrieved in some cases.
416
417- ODBC driver
418    * [167167] Fixed a regression that caused a crash when checking DBMS
419      general information when connecting to a database.
420
421- SQLite driver
422    * Use new sqlite3_prepare16_v2 instead of sqlite3_prepare16 when
423      possible.
424    * [167665] Fixed a regression that caused field names to be escaped
425      multiple times when selecting from views.
426
427****************************************************************************
428*                               Examples                                   *
429****************************************************************************
430
431- Secure Socket Client
432    * New example, showing how to use QSslSocket to communicate over an
433      encrypted (SSL) connection.
434
435- Accelerated Screen Driver
436    * Ensured that the example does not crash if it is unable to get a
437      pointer to the frame buffer.
438
439****************************************************************************
440*                      Platform Specific Changes                           *
441****************************************************************************
442
443X11
444---
445
446    * [163862] Fixed a bug where QClipboard would escape all non-ASCII
447      characters that were copied from GTK+ applications.
448    * [165182] Fixed building with the Intel C++ Compiler for Linux on
449      IA-64 (Itanium) (missing functions in qatomic_ia64.h)
450    * [163861] Fixed building on AIX 5.3 where the _POSIX_MONOTONIC_CLOCK
451      macro was accidentally redefined.
452    * [166650] Fixed a regression from 4.2.3 where calling QWidget::move()
453      in a reimplementation of QWidget::showEvent() did not work.
454    * [166097] QWidget::show() no longer overwrites the _NET_WM_STATE
455      property. Instead, QWidget now merges any existing _NET_WM_STATE
456      property together with its own state.
457    * Fixed the QAtomic implementation on the Alpha, which previously
458      caused all applications to hang on start-up.
459    * [165229] Changed the linux-lsb-g++ specification to avoid linking with
460      libGLU (which is not part of the LSB specification).
461    * [155083, 146833] Ensure that all font substitutions from fontconfig
462      are obeyed by using a strong binding for QFont's family with
463      fontconfig.
464
465Windows
466-------
467
468    * [169105] Fixed a regression where calling resize() on a minimized
469      window did not work.
470    * [169376] Fixed a race condition that would cause a crash when
471      stopping timers in a thread.
472    * [165440] Fixed a crash that could occur when using Google's Pinyin
473      input method with Qt.
474
475Mac OS X
476--------
477
478    * QMake's Xcode generator is now more robust when determining which
479      version of Xcode projects it should generate. It also uses launch
480      services to determine Xcode's location as well.
481    * Small changes to be more Leopard compatible
482    * [167020] Ensured that the translations are really included in the
483      binary package.
484    * [164530] Ensured that the DPI for fonts don't change when the
485      resolution changes.
486    * [165530] Fixed a bug that caused Q_DECLARE_METATYPE() in a
487      precompiled header to interfere with the Objective-C 'id' keyword.
488    * [165659] Fixed bold/italic font rendering for some fonts.
489
490Qtopia Core
491-----------
492
493    * Fixed support for bitmap fonts.
494    * [164297] Fixed a potential crash in accelerated paint engines.
495    * [160970] Fixed support for 1-bit black and white screens.
496    * [164783] Fixed bug in 4-bit grayscale support which resulted in pink
497      colors under certain circumstances.
498    * [164955] Fixed painting error when using QWidget::move().
499    * [166368] Fixed bug in QWidget::setFixedSize() when using multiple
500      screens.
501    * [165686] Fixed bug in QPixmap::grabWindow() when using multiple
502      screens.
503    * [130925] Fixed use of QWSWindowSurface::move() when acceleration is
504      available.
505    * [143865] Implemented QWSCalibratedMouseHandler::getCalibration()
506      properly to fill all return values.
507    * [161820] Fixed incorrect detection of glib libraries when cross-
508      compiling.
509    * [152914] Improved the framebuffer test example.
510    * [171454] Fixed painting errors when zooming in QVFb.
511
512
513****************************************************************************
514*                   Important Behavior Changes
515****************************************************************************
516
517- QScrollArea
518    * [167838] Use micro focus rectangle (if "active") instead of the entire
519      widget in ensureWidgetVisible().
520