1
Qt 4.2.3 is a bug-fix release. It maintains both forward and backward
2
compatibility (source and binary) with Qt 4.2.0.
3
4
The Qt version 4.2 series is binary compatible with the 4.1.x and 4.0.x
5
series. Applications compiled for 4.0 or 4.1 will continue to run with 4.2.
6
7
****************************************************************************
8
*                           General                                        *
9
****************************************************************************
10
11
General 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
41
Third party components
42
----------------------
43
44
- libpng
45
46
  * Security fix: Avoid null dereferences.
47
48
****************************************************************************
49
*                          Library                                         *
50
****************************************************************************
51
52
General 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
294
X11
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
312
Windows
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
333
Mac 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
352
Qtopia 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.