1Qt 4.2.3 is a bug-fix release. It maintains both forward and backward
2compatibility (source and binary) with Qt 4.2.0.
3
4The Qt version 4.2 series is binary compatible with the 4.1.x and 4.0.x
5series. Applications compiled for 4.0 or 4.1 will continue to run with 4.2.
6
7****************************************************************************
8*                           General                                        *
9****************************************************************************
10
11General Improvements
12--------------------
13
14- Configuration/Compilation
15    * Fixed architecture detection on UltraSPARC-T1 systems.
16    * Fixed compilation on embedded architectures when qreal is not double.
17    * Compile on OpenBSD.
18
19- Documentation
20    * Completed documentation for "Implementing Atomic Operations",
21      which is useful for people porting Qt to a new hardware architecture.
22
23- Translations
24    * Added a new unofficial Portuguese translation courtesy of Helder
25      Correia.
26
27- Qt Linguist
28    * Made the columns in the phrasebook resizeable.
29
30- lupdate
31    * Fixed bug in the .pro parser of lupdate. It should accept backslashes.
32    * Fixed a severe slowdown in lupdate. (~400x speedup.)
33    * Fixed traversal of subdirectories.
34
35- moc
36    * Don't create trigraphs in the generated code for C++ casts.
37
38- uic
39    * Fixed a bug that generated excessive margins for Q3GroupBox.
40
41Third party components
42----------------------
43
44- libpng
45
46  * Security fix: Avoid null dereferences.
47
48****************************************************************************
49*                          Library                                         *
50****************************************************************************
51
52General improvements
53--------------------
54
55- Graphics View
56
57    * Calling QGraphicsScene::update() without arguments now correctly
58      updates the entire scene.
59    * Changing the background brush in QGraphicsScene now correctly updates
60      the entire scene
61    * Fixed a crash in QGraphicsScene due to stale pointers in the BSP tree.
62    * QGraphicsScene::createItemGroup() now allows you to create an empty
63      group (previously caused an assert in debug mode).
64    * Fixed rendering bugs with QGraphicsPixmapItem::offset().
65    * Adding an item to a QGraphicsScene now always implicitly causes an
66      update.
67    * Fixed a crash caused by deleting a QGraphicsScene that is being viewed
68      by a QGraphicsView.
69    * Items with zero width or height (e.g., a horizontal or vertical line
70      with a zero-width cosmetic pen) are now rendered correctly.
71    * Fixed a crash in QGraphicsScene::destroyItemGroup(), and when removing
72      items from a group.
73
74- Item views
75    * Fixed data loss in QTreeWidget, QTableWidget and QListWidget that
76      occurred when performing a drag and drop copy operation on items
77      containing data in custom roles.
78
79    * Fixed signal emission bugs in QSqlQueryModel and QSqlTableModel that
80      caused the view to contain invalid items when used with a
81      QSortFilterProxyModel.
82
83    * Fixed a bug in word-wrapped text that could cause all new-line
84      characters, and the last line in string containing at least one
85      newline character, to be removed.
86
87    * Fixed bug in QListView where the last item of a batch was not always
88      displayed.
89
90- QAction
91    * Fixed a possible crash when using alternate shortcuts on a QAction.
92
93- QByteArray
94    * Fixed a crash in toUpper().
95
96- QCleanlooksStyle
97    * Indeterminate progress bars are now correctly animated.
98
99- QComboBox
100    * Fixed broken case sensitive completion.
101    * Changing the font on a QComboBox now changes the font on the popup as
102      well.
103
104- Q3TextEdit
105    * Fixed regression where some shortcuts didn't work on Mac OS X.
106
107- Q3Canvas
108    * Fixed potential memory overrun when determining a clipping chunk.
109
110- Q3Socket
111    * Fixed unexpected remote disconnection bugs (also QTcpSocket).
112
113- QFile
114    * Performance enhancements in QFile::copy().
115    * Allow reading past the previous end of the file if the file grows.
116    * Reliably allow QFile::readLine() and QFile::readAll() to be used to
117      read from stdin on all platforms.
118
119- QFileDialog
120    * Fixed crash that could occur when the filter began with ';;'.
121    * Fixed assertion caused by calling setFilters() with an empty list.
122    * Fixed problem with file entries not being laid out correctly.
123
124- QGridLayout
125    * Fixed bug in handling of fixed size spacers spanning multiple
126      rows/columns
127
128- QLayout
129    * Fixed bug caused by setting minimumSize() and SizePolicy::Fixed on a
130      widget that implements minimumSizeHint() but not sizeHint().
131
132- QLineEdit
133    * Fixed crash caused by moving the cursor over a QChar::LineSeparator
134      in the text.
135
136- QPainter
137    * Fixed bug in QPainter::drawPoints() when using the raster paint engine
138      which caused some points to be missing.
139    * Removed memory leak in raster paint engine when drawing complex
140      polygons/paths.
141
142- QProcess
143    * Fixed a crash that could occur when calling QProcess::waitForFinished()
144      from inside a slot connected to a signal emitted by QProcess.
145    * Fixed a race condition on Windows where QProcess::bytesToWrite() would
146      return a short byte count.
147
148- QTextDocument
149    * Fixed find() with backward searches.
150    * Match CSS style selector case insensitively.
151    * Fixed HTML import for tables with missing cells and rowspan/colspan
152      attributes.
153
154- QSortFilterProxyModel
155    * Fixed a crash caused by calling filterChanged().
156    * Fixed a crash caused by removing items from the source model.
157    * Fixed a bug that could cause a model to enter an invalid state when
158      filtering items in a hierarchy, causing items in a QTreeView to
159      erroneously be collapsed.
160    * Fixed a bug that could cause invalid items to be added when inserting
161      new items to the source model.
162
163- QSyntaxHighlighter
164    * Fixed failing assertion that could occur when installing a syntax
165      highlighter before the document has created a layout.
166
167- QPluginLoader
168    * Fixed compilation of Q_EXPORT_PLUGIN when used with templates.
169
170- QTcpSocket
171    * Fixed a bug where QTcpSocket would time out when connecting to a
172      closed service on Windows.
173    * Fixed a race condition when calling waitFor...() functions with a very
174      short timeout value.
175    * Fixed unexpected remote disconnect problems on Windows.
176    * Improved the reliability of the waitFor...() functions with SOCKS5
177      proxy support.
178
179- QTextLayout
180    * Fixed rendering of surrogate pairs and cursor navigation with them.
181
182- QTextEdit
183    * Fixed crash in QTextEdit::setExtraSelection() that could occur when
184      used with null cursors.
185    * Fixed scrollbar bug which could cause the bottom of the text to be
186      unreachable.
187
188- QTextStream
189    * Fixed QTextStream::readLine() so it can be used reliably with stdin on
190      all platforms, and updated the documentation to reflect this.
191
192- QMacStyle
193    * Ensured that tab bars are drawn correctly regardless of the font used.
194
195- QMenuBar
196    * Properly marked the "text heuristic matching" strings for translation.
197
198- QMenu
199    * Fixed incorrect scrolling on large menus on Mac OS X.
200
201- QPlastiqueStyle
202    * Ensured that indeterminate progress bars are now always animated and
203      fixed a rendering bug.
204
205- QPrinter
206    * Fixed a bug on X11 that caused the printer to generate too many
207      copies.
208    * Fixed a bug in the PostScript driver that could cause invalid
209      PostScript to be generated.
210
211- QSqlRelationalTableModel
212    * Ensured that the internal cache is cleared after
213      QSqlRelationalTableModel::submitAll() is called.
214
215- QSqlDriver
216    * Ensured that QSqlDriver::formatValue() doesn't cut off characters from
217      field names.
218
219- QTextTable
220    * Removed false assertion when deleting the first row or column in a
221      table.
222    * Fixed crash when splitting cells in the rightmost column of a table.
223    * Fixed issue where QTextTable::splitCells() would shift cells further
224      down in the table.
225    * Fixed crash in QTextTable::mergeCells() caused by merging an already
226      merged cell.
227
228- QToolTip
229    * Fixed QToolTip sizes when used with HTML tags like <BR>.
230
231- QUdpSocket
232    * Fixed a busy-wait causing the event loop to spin when writing a
233      datagram to an unbound port.
234    * QUdpSocket now reliably emits readyRead() in connected mode.
235
236- QUrl
237    * Fixed a crash that would occur as a result of calling errorString() on
238      an empty URL.
239
240- SQL plugins
241    * Prevent crashes in QSqlQuery after reopening a closed ODBC connection.
242    * Prevent crash when retrieving binary data from ODBC.
243    * The Interbase driver now returns a valid handle through
244      QSqlDriver::handle().
245
246- QMutex
247    * Fixed race condition in QMutex::tryLock() that would prevent all
248      other threads from acquiring the mutex
249
250- QList
251    * Fixed crash when modifying a QList that must be detached from a
252      separate thread
253
254- QWidget
255    * Fixed case where a modal dialog could be stacked below its parent
256      window when the dialog was shown first
257    * Fixed an erroneous hideEvent() from being sent immediately after
258      window creation
259    * Fixed problem with missing text in QWidget::whatsThis().
260
261- QWindowsStyle
262    * Fixed a crash that could occur when deleting a QProgressBar after its
263      style was changed.
264
265- QVariant
266    * Fixed assertion caused by streaming in a variant containing a float.
267
268- QAbstractItemView
269    * Fixed focus problem with cell widgets.
270
271- QTableView
272    * Fixed problem with context menus clearing the selections.
273
274- QHeaderView
275    * Fixed assertion that could occur when removing all sections when some
276      sections had been moved.
277    * Fixed a bug that could prevent the user from resizing the last
278      visible section if the "real" last section was invisible.
279
280- QListView
281    * Fixed crash when calling reset.
282
283- QTableWidget
284    * Fixed painting problem that could occur when rows were swapped.
285
286- QTreeView
287    * Fixed a crash that could appear when removing all the children of an
288      item.
289
290****************************************************************************
291*                      Platform Specific Changes                           *
292****************************************************************************
293
294X11
295---
296    * Fixed detection of Type1 symbol fonts.
297    * Fixed crash on exit in QSystemTrayIcon when QApplication is used
298      as the parent.
299    * Fixed animation GUI effects on tooltips, menus, and comboboxes.
300    * Fixed crashes in threaded programs when Qt uses the Glib main
301      loop.
302    * Fixed bug where an empty LANG environment variable could prevent input
303      of non-ASCII chars in Qt widgets.
304    * Fixed leak of initial style created by QApplication after calling
305      QApplication::setStyle().
306    * Fixed erroneous event delivery to a widget that has been destroyed.
307    * Prevent shortcuts for keypad arrow keys from being activated when
308      Num Lock is on.
309    * Fixed bug which caused incorrect drawing of subrectangles of bitmaps.
310    * Fixed bug in rendering of the Bengali script.
311
312Windows
313-------
314    * Fixed compilation with -no-stl.
315    * Fixed compilation with Windows SDK for Vista.
316    * Fixed an issue that could cause missing text when Cleartype was used.
317    * Fixed the hot-spot locations for OpenHandCursor and CloseHandCursor.
318    * Fixed infinite warning loop about adopted threads in applications with
319      many threads.
320    * Fixed assertion caused by hiding a child widget whose window has not
321      yet been created.
322    * Fixed QWindowsXPStyle so that it is possible to draw a
323      QStyle::CE_DockWidgetTitle without having an actual instance of
324      QDockWidget.
325    * Fixed crash when drawing text with large font sizes.
326    * Fixed support for the Khmer language.
327    * Fixed incorrect reporting of frameGeometry() after a window is closed.
328    * Fixed crash when handling spurious WM_CHAR from Remote Desktop Client.
329    * Fixed crash in JPEG plugin while loading.
330    * Fixed crash in QFileDialog::getExistingDirectory() when specifying
331      a parent that has not been shown yet.
332
333Mac OS X
334--------
335    * Fixed regression where dragging/copying Unicode text in Qt to another
336      application would only export the non-Unicode version.
337    * Fixed regression where releasing the mouse button would send two mouse
338      releas events to a widget.
339    * Fixed regression where the drop action would be reset after a native
340      "DragLeave" event was received.
341    * Wrapping a (non-Qt) window's content view and resizing before showing
342      the window for the first time now works correctly.
343    * Ensured that the content view is always created before we QWidgets are
344      added to a window - this allows better integration with Cocoa apps.
345    * Fixed regression where text/uri-list was inadvertently disabled for
346      clipboards.
347    * Fixed regression where setting the brushed metal style on a message
348      box would show the label in a non-metallic style.
349    * Fixed the open source binary package to have the correct definitions
350      for development.
351
352Qtopia Core
353-----------
354    * Fixed a data corruption bug in QDataStream on ARM processors where
355      reading and writing doubles/qreals would be incompatible with streams
356      on other platforms.
357      Note: corrupt data streams generated with previous versions of Qtopia
358      Core on ARM platforms cannot be read with this version.
359    * Fixed a possible buffer overflow in the VNC driver.
360    * Fixed a memory leak in the windowing system.
361    * Fixed painting errors occuring with use of QT::WA_PaintOnScreen on
362      certain screen configurations.
363    * Improved performance when using a 16-bit brush as the background on a
364      16-bit screen.
365    * Improved performance of 16-bit semi-transparent solid fills.
366    * Fixed crash that could occur when saving a 16-bit image in BMP or PPM
367      formats.
368    * Fixed bug where window icons would not be shown in Plastique style.
369    * Fixed bug in QWSServer::setMaxWindowRect() on rotated displays.
370    * Fixed crash with normalized Unicode characters and QPF fonts.
371    * Ensured that QWidget::minimumSize() does not become larger than the
372      screen size.
373
374