forked from qt/qtbase
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes-4.2.0
2506 lines (1477 loc) · 72.6 KB
/
changes-4.2.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Qt 4.2 introduces many new features as well as many improvements and
bugfixes over the 4.1.x series. For more details, see the online
documentation which is included in this distribution. The
documentation is also available at http://qt.nokia.com/doc/
The Qt version 4.2 series is binary compatible with the 4.1.x series.
Applications compiled for 4.1 will continue to run with 4.2.
The Qtopia Core version 4.2 series is binary compatible with the 4.1.x
series except for some parts of the device handling API, as detailed
in Platform Specific Changes below.
****************************************************************************
* General *
****************************************************************************
New features
------------
- QCalendarWidget provides a standard monthly calendar widget with date
selection features.
- QCleanlooksStyle provides the new Cleanlooks style, a clone of the GNOME
ClearLooks style, giving Qt applications a native look on GNOME desktops.
- QCompleter provides facilities for auto completion in text entry widgets.
- QDataWidgetMapper can be used to make widgets data-aware by mapping them
to sections of an item model.
- QDesktopServices provides desktop integration features, such as support
for opening URLs using system services.
- QDialogButtonBox is used in dialogs to ensure that buttons are placed
according to platform-specific style guidelines.
- QFileSystemWatcher enables applications to monitor files and directories
for changes.
- QFontComboBox provides a standard font selection widget for document
processing applications.
- QGraphicsView and related classes provide the Graphics View framework, a
replacement for Qt 3's canvas module that provides an improved API, enhanced
rendering, and more responsive handling of large numbers of canvas items.
- QGLFramebufferObject encapsulates OpenGL framebuffer objects.
- QMacPasteboardMime handles Pasteboard access on Qt/Mac. This obsoletes
QMacMime as the underlying system has changed to support Apple's new
Pasteboard Manager. Any old QMacMime objects will not be used.
- QNetworkInterface represents a network interface, providing information
about the host's IP addresses and network interfaces.
- QResource provides static functions that control resource lookup and
provides a way to navigate resources directly without levels of
indirection through QFile/QFileEngine.
- QSystemTrayIcon allows applications to provide their own icon in the
system tray.
- QTimeLine gives developers access to a standard time line class with which
to create widget animations.
- The QtDBus module provides inter-process communication on platforms
that support the D-BUS protocol.
- The QUndo* classes in Qt's Undo framework provide undo/redo functionality
for applications.
- Support for the Glib event loop to enable integration between Qt and non-Qt
applications on the GNOME desktop environment.
- Improved Accessibility for item-based views and QTextEdit.
- Support for main window animations and tabbed dock widgets.
- Added an SVG icon engine to enable SVG drawings to be used by QIcon.
- Widgets can now be styled according to rules specified in a style sheet,
using a syntax familiar to users of Cascading Style Sheets (CSS). Style
sheets are set using the QWidget::styleSheet property.
- Introduced a new key mapper system which improves the shortcut system by
only testing the real possible shortcuts, such as Ctrl+Shift+= and Ctrl++
on an English keyboard.
- Improved and enhanced QMessageBox to support native look and feel on many
common platforms.
- Experimental support for Qt usage reporting ("metered licenses") on Linux,
Windows and Mac OS X. Reporting is disabled by default.
- A screen magnification utility, pixeltool, is provided. It is designed to help
with the process of fine-tuning styles and user interface features.
- New qrand() and qsrand() functions to provide thread safe equivalents to
rand() and srand().
General improvements
--------------------
- Item views
* Selections are maintained when the layout of the model changes
(e.g., due to sorting).
* Convenience views can perform dynamic sorting of items when the data
in items changes.
* QStandardItem provides an item-based API for use with
QStandardItemModel and the model/view item view classes.
* QStandardItemModel API provides a classic item-based approach to
working with models.
* Single selection item views on Mac OS X cannot change their current
item without changing the current selection when using keyboard
navigation.
- Plastique style has improved support for palettes, and now requires
XRender support on X11 for alpha transparency.
- Tulip containers
* Added typedefs for STL compatability.
* Added function overloads to make the API easier to use.
- Added the Q3TextStream class for compatiblity with Qt 3 and to assist with
porting projects.
- OpenGL paint engine
* Added support for all composition modes of QPainter natively using
OpenGL.
* Fixed a case where very large polygons failed to render correctly.
* Ensured that glClear() is only called in begin() if the
QGLWidget::autoFillBackground() property is true.
* Ensured that a buffer swap is only performed in end() if
QGLWidget::autoBufferSwap() is true.
* Improved text drawing speed and quality.
- Raster paint engine
* Fixed blending of 8 bit indexed images with alpha values.
* Fixed drawing onto QImages that were wider than 2048 pixels.
* Fixed alpha-blending and anti-aliasing on ARGB32 images.
* Improved point drawing performance.
* Fixed issue where lines were drawn between coordinates that were
rounded instead of truncated.
* Ensured that setClipRegion(QRegion()) clips away all painting
operations as originally intended.
Third party components
----------------------
- Dropped support for MySQL version 3.
- Updated Qt's SQLite version to 3.3.6.
- Updated Qt's FreeType version to 2.2.1.
- Updated Qt's libpng version to 1.2.10.
Build System
------------
- Auto-detect PostgreSQL and MySQL using pg_config and mysql_config on UNIX
based systems in the configure script
- Added "-system-sqlite" option to configure to use the system's SQLite
library instead of Qt's SQLite version.
- Added QT_ASCII_CAST_WARNINGS define that will output a warning on implicit
ascii to Unicode conversion when set. Only works if the compiler supports
deprecated API warnings.
- Added Q_REQUIRED_RESULT to some functions. This macro triggers a warning
if the result of a function is discarded. Currently only supported by gcc.
- Qt/X11, Qt/Mac and Qtopia Core only:
* Added all QT_NO_* defines to the build key.
- Qt/X11 and Qtopia Core only:
* As in Qt 3, the configure script enables the -release option by
default, causing the Qt libraries to be built with optimizations. If
configured with the -debug option, the debug builds no longer result
in libraries with the _debug suffix.
On modern systems, flags are added to the Qt build to also
generate debugging information, which is then stored in a
separate .debug file. The additional debug information does not
affect the performance of the optimized code and tools like gdb
and valgrind automatically pick up the separate .debug
files. This way it is possible to get useful backtraces even
with release builds of Qt.
* Removed the last vestiges of the module options in the configure
script, previously they were available but did not function.
* Implemented a -build option in the configure script to conditionally
compile only certain sections of Qt.
* Made it possible to build Qt while having "xcode" set as your
QMAKESPEC on OSX.
- Windows only:
* Populated the build key, as done on all the other platforms.
* Fixed dependency generation in Visual Studio Solutions (.sln)
created by qmake.
* Added missing platforms to the Visual Studio project generator (X64,
SH3DSP and EBC).
* Made UIC3 use a temporary file for long command lines.
* Removed the object file (.o) conflicts with MinGW that appeared when
embedding a native resource file which was named the same as a normal
source file.
* Fixed mkspec detection when generating project files outside of QTDIR.
* Removed compiler warnings with MinGW g++ 3.4.5.
****************************************************************************
* Library *
****************************************************************************
- QAbstractButton
* Returns QPalette::Button and QPalette::ButtonText for
backgroundRole() and foregroundRole(), respectively, rather than
QPalette::Background and QPalette::Foreground.
* Ensured that nextCheckState() is called only when there is a state
change.
- QAbstractItemModel
* When dropping rows only insert rows that were actually dropped, not
the continuous row count from first to last.
* Added a supportedDragActions property to be used by
QAbstractItemView when starting a drag.
* When updating changed persistent indexes, ignore those that haven't
actually changed.
* Fixed endian issue with createIndex().
* Added FixedString matching for match().
* Changed the sorting algorithm to use a stable sort.
* Added persistentIndexList() function.
- QAbstractItemView
* Added possibility to copy elements to clipboard on read-only views.
* Improved handling of QAbstractItemModel::supportedDropActions().
* Ensured that the current item is selected when using keyboard
search.
* Ensured that the view starts with a valid current index.
* Ensured that data is only committed in currentChanged() if the
editor is not persistent.
* Fixed crash that occurred when a modal dialogs was opened when
closing an editor.
* Added verticalScrollMode and horizontalScrollMode properties.
* Added setItemDelegateForRow() and setItemDelegateForColumn().
* Ensured that existing models are disconnected properly when
replaced.
* Ensured that the doubleClicked() signal is only emitted when the
left button has been double-clicked.
* Changed setSelection(...) to work when given a non-normalized
rectangle.
* Fixed regression for shift-selections in ExtendedSelection for
all views.
* Added dragDropMode property and implemented move support in all of
the views and models.
* For edit triggers SelectedClicked and DoubleClicked, only trigger
editing when the left button is clicked.
* Trigger SelectedClicked editing on mouse release, not mouse press.
* Suppressed the doubleClicked() signal in cases where the clicks
happened on two different items.
* Enabled keyboard search to be programmatically reset by calling
keyboardSearch() with an empty string as argument.
* Don't allow drops on items that don't have the Qt::ItemIsDropEnabled
flag set.
* Added modelAboutToBeReset() and layoutAboutToBeChanged() signals.
* Suppressed assertion in dropMimeData() for cases where mimeTypes()
returns an empty list.
* Ensured consistent behavior of drag and drop when rootIndex() is a
valid model index.
* Made it possible to check a checkbox with only a single click when
using the CurrentChanged edit trigger.
* Ensured that WhatsThis events are propagated when the relevant item
doesn't have a valid "What's This?" value.
* Added PositionAtCenter scrollHint.
* Added support to allow items to be checked and unchecked using the
keyboard.
* Added support for keypad navigation.
- QAbstractProxyModel
* Added default implementations for data(), headerData() and flags()
- QAbstractScrollArea
* Added ability to set a corner widget.
* Added ability to set scroll bar widgets.
* Added support for custom scroll bars.
- QAbstractSpinBox
* Added a hasAcceptableInput() property.
* Ensured that fixup/validate are called for third party subclasses of
QAbstractSpinBox as well.
* Fixed geometry issues when toggling frames on and off for spinboxes.
* Added a property for correctionMode.
* Added a property for acceleration.
- QAbstractPrintDialog
* Fixed handling of existing printer options so that storage of page
ranges using setFromTo() works as expected when printing in PDF format.
- QAction
* Added the setAutoRepeat(bool) function to disable auto-repeating
actions on keyboard shortcuts.
- QApplication
* Added saveStateRequest() and commitDataRequest() signals so that
QApplication does not need to be subclassed to enable session
management in an application.
* Added the styleSheet property to get/set the application style sheet.
* Support sending key events to non-widget objects.
* Ensured that argc and argv as passed to the QApplication constructor
will always be zero-terminated on all platforms after QApplication
consumes command line options for itself.
- QBrush
* Added a constructor that accepts a QImage.
- QButtonGroup
* Added pressed() and released() signals.
* Fixed a bug caused by removing buttons from button groups. Removed the
internal mapping as well.
* Ensured that checkedButton() returns the correct value with
non-exclusive groups.
- QClipboard
* Added support for find text buffer.
- QColor
* Fixed corruption in setRed(), setGreen() and setBlue() for HSV/CMYK
colors.
- QComboBox
* Fixed drawing issues related to certain FocusPolicy values.
* Ensured that the ItemFlags of an Item (ItemIsEnabled,...) are
respected.
* Fixed cases where the popup could be shown completly on screen, but
weren't.
* Added the InsertAlphabetically insert policy.
* Fixed case where a QPixmap could not be displayed using a QIcon.
* Fixed the type of the modelColumn property from bool to int.
* Updated documentation to clarify the differences between activated(),
highlighted() and currentIndexChanged(), and describe what they
actually mean.
* Updated the behavior to ensure that, if the combobox isn't editable,
the Qt::DisplayRole rather than the Qt::EditRole is used to query the
model.
- QCoreApplication
* Added flags to enable/disable application-wide features such as
delayed widget creation.
- QCursor
* Added support for the newly added Qt::OpenHandCursor and
Qt::ClosedHandCursor enum values.
- QDate
* Support dates all the way down to Julian Day 1 (2 January 4713 B.C.)
using the Julian calendar when appropriate.
- QDateTime
* Fixed parsing issue in fromString(const QString &, Qt::DateFormat).
- QDateTimeEdit
* Added the calendarPopup property to enable date selection using the
new QCalendarWidget class.
* Added a setSelectedSection() function to allow the currently selected
section to be programmatically set.
- QDesktopWidget
* Remove a potential out-of-bounds read.
- QDialog
* Improved stability in cases where the default button is deleted.
- QDir
* Improved support for i18n file paths in QDir::tempPath().
* Improved support for UNC paths when the application is run from a
share.
* Ensured that mkpath() properly supports UNC paths.
* Obsoleted QDir::convertSeparators().
* Introduced QDir::toNativeSeparators() and QDir::fromNativeSeparators().
* Added a QDebug streaming operator.
- QDirModel
* Fixed conversion from bytes to larger units in QDirModel in the file
size display.
* Remove hardcoded filtering of the '.' and '..' entries.
- QErrorMessage
* Made qtHandler() work in cases where the message handler is invoked
from threads other than the GUI thread.
- QEvent
* Added the KeyboardLayoutChange event type which is sent when the
keyboard layout changes.
- QFile
* Improved support for UNC paths when the application is run from a
share.
* Added support for physical drives (e.g., "//./Physical01").
* Ensured that QFile::error() and QIODevice::errorString() are set
whenever possible when errors occur.
* Renamed readLink() to symLinkTarget().
- QFileDialog
* Fixed a case where view mode got disabled.
- QFileInfo
* Improved support for UNC paths when the application is run from a
share.
* Improved support for drive-local relative paths, such as "D:".
* Renamed readLink() to symLinkTarget().
- QFlags
* Added the testFlag() convenience function.
- QFont
* Added NoFontMerging as a flag to QFont::StyleStrategy.
- QFontDatabase
* Added functions for handling application-local fonts at run-time:
addApplicationFont(), removeApplicationFont(),
applicationFontFamilies(), etc.
- QFontDialog
* Enabled support for custom window titles.
- QFontMetrics/QFontMetricsF
* Added the elidedText() function.
* Added the averageCharWidth() function.
- QFrame
* Fixed a rendering issue when showing horizontal and vertical lines
created using Designer.
- QFtp
* Improved parsing of the modified date in list().
* Ensured that all data has been received when downloading, before the
data connection is closed.
* Added support for FTP servers that reject commands with a 202 response.
- QGLFormat
* Added the openGLVersionFlags() function.
* Added support for setting the swap interval for a context
(i.e., syncing to the vertical retrace).
* Added support for setting red, green and blue buffer sizes.
- QGLWidget
* Fixed a resource leak that could occur when binding QImages with the
bindTexture() function.
* Fixed renderText() to produce proper output when depth buffering is
enabled.
* Fixed bindTexture() to respect premultiplied QImage formats.
* Ensured that the updatesEnabled property is respected.
- QGradient
* Added default constructors and setter functions for all gradients and
their attributes.
- QGridLayout
* Do not segfault if cellRect() is called before setGeometry(),
even though the result is documented to be undefined.
* Fixed maximum size handling when adding spacing.
- QGroupBox
* Activating a group box by a shortcut will now show the focus rectangle.
* Added the clicked() signal
- QHash
* Prevent conversion of iterator or const_iterator to bool
(e.g., if (map->find(value))) because the conversion always returned
true. Qt 4.1 code that doesn't compile because of this change was most
probably buggy.
* Added the uniqueKeys() function.
- QHeaderView
* Use the current resize mode to determine section sizes when
new rows are inserted.
* Recover the internal state if other widgets steal the mouse release
event.
* Ensure that moved sections can be removed without asserting.
* Be more robust with regards to arguments sent to the rowsInserted slot.
* Let the stretchLastSection property override the globalResizeMode in
the resizeSections() function.
* Renamed ResizeMode::Custom to ResizeMode::Fixed.
* Added the swapSections() convenience function.
* Added a more "splitter-like" resize mode.
* Added the possibility for the user to turn off stretch mode by
resizing the header section. This includes the stretchLastSection
property.
* Added the minimumSectionSize property.
* Get the section size hint from the Qt::SizeHintRole, if set.
* Added the ResizeToContents resize mode.
* Ensure that all header contents are centered by default.
* Improved the internal structure to be more memory efficient.
- QHostAddress
* Added QDataStream streaming operators.
- QHttp
* Support percent-encoded paths when used with a proxy server.
* Improved handling of unexpected remote socket close.
- QHttpHeader
* Improved support for case-insensitive header searching.
- QIcon
* Fixed issue where actualSize() might return a larger value than the
requested size.
* Fixed improper pixmap caching
* Added QDataStream operators for QIcon.
* Added the Selected mode.
- QImage
* Added support for 16 bit RGB format.
* Added QPoint overloads to various (int x, int y) functions.
* Added support for faster/better rotation of images by 90/180/270
degrees.
* convertToFormat() now supports the color lookup table.
* Improved algorithm for smooth scaling to produce better results.
- QImageReader
* Ensured that size() returns an invalid QSize if the image I/O handler
does not support the QImageIOHandler::Size extension.
* Added support for reading negative BMP images.
* Improved handling of invalid devices.
* Added optimizations to ensure that the most likely formats and plugins
are tested first when reading unknown image formats.
* Improved reading of BMP images from sequential QIODevices.
* Support for scaledSize() with JPEG images.
* It is now possible to query the supported options of an image by
calling supportedOptions().
* Stability fixes for the built-in XBM reader.
- QImageWriter
* Ensured that an error is reported when attempting to write an image
to a non-writable device.
* It is now possible to query the supported options of an image by
calling supportedOptions().
- QIODevice
* Fixed a casting bug in QIODevice::getChar().
* Improved reading performance significantly by using an internal buffer
when a device is opened in buffered mode.
* Some behavioral differences have been introduced:
+ The following functions now need to call the base implementation
when reimplemented: atEnd(), bytesAvailable(), size(), canReadLine().
+ pos() should return the base implementation directly.
+ QIODevice now handles the device position internally. seek() should
always end up calling the base implementation.
- QItemDelegate
* Use a widget's USER property to set and get the editor data.
* Removed unnecessary assertions.
* Added the clipping property to enable clipping when painting.
* When the model specifies a font, resolve the font over the existing
one rather than replacing it.
* Fixed issue with rendering of selected pixmaps.
* Ensured that QItemEditorFactory is called with the variant's
userType() so that the factory can distinguish between multiple user
types.
* Ensured that Key_Enter is propagated to the editor before data is
committed, so that the editor has a chance to perform custom input
validation/fixup.
* Let the line edit grow to accomodate long strings.
* Made it easer to subclass the item delegate.
* Added support for keypad navigation.
- QItemSelectionModel
* Improved overall speed, particularly when isSelected() is used.
* Added functions for getting the selected rows or columns.
* Ensured that the current index is updated when it is being removed.
* Ensure that QAbstractItemView::clearSelection() only clears the
selection and not the current index.
* Added the hasSelection() function.
* Fixed some connection leaks (connections were not disconnected) when
an QItemSelectionModel was deleted. This should also speed up some
special cases.
- QKeySequence
* Added a set of platform-dependent standard shortcuts.
* Fixed incorrect parsing of translated modifiers.
- QLabel
* Added support for text selection and hyperlinks.
* Improved handling of scaled pixmaps.
* Made handling of QMovie safer to avoid object ownership issues.
- QLibrary
* Added support for hints to control how libraries are opened on UNIX
systems.
* Added errorString() to report the causes of errors when libraries
fail to load.
* Added easier way to debug plugin loading: Setting QT_DEBUG_PLUGINS=1
in the environment will enable debug message printing on the
console.
* Increased the number of acceptable file name suffixes used to
recognize library files.
- QLineEdit
* Ensured that the Unicode context menu gets shown if language
extensions are present.
* Ensured that editingFinished() is not emitted if a validator is set
and the text cannot be validated.
* Ctrl+A now triggers select all on all platforms.
* Call fixup on focusOut() if !hasAcceptableInput().
* Added auto-completion support with the setCompleter() function.
* Fixed painting errors when contents margins were set.
* Invalid text set using setText() can now be edited where previously
it had to be deleted before new text could be inserted.
* Use SE_LineEditContents to control the contents rect of each
QLineEdit.
- QListView
* Added the batchSize property.
* Don't un-hide currently hidden rows when new rows are inserted.
* Fixed partial repainting bug that occurred when alternatingRowColors
was enabled.
* Ensured that the resize mode is not reset in setViewMode() if it was
already set.
* Fixed crash that occurred when the first item was hidden and
uniformItemSizes was set.
* Added the wordWrap property for wrapping item text.
* Allow the user to select items consecutively when shift-selecting.
* Ensured that only the top item is selected when the user clicks on
an area with several items are stacked on top of each other.
* Optimized hiding and showing of items.
* Fixed issue where dragging an item in Snap mode did not respect the
scroll bar offsets.
* Fixed issue in Snap mode where a (drag and) drop did not always
query the item that existed in the corresponding cell for an enabled
Qt::ItemIsDropEnabled flag.
- QListWidget/QTreeWidget/QTableWidget
* Ensured the dataChanged() signal is emitted when flags are set on an
item.
* Removed unnecessary assertions.
* Added more convenience functions in QListWidget, QTableWidget and
QTreeWidget for selecting, hiding, showing, expanding and collapsing
nodes.
* Ensured that changes to items are reported.
- QLocale
* Fixed bug in the string-to-number functions which sometimes caused
them to fail on negative numbers which contained thousand-
separators.
* Implemented the numberOptions property for specifying how
string-to-number and number-to-string conversions should be
performed.
- QMainWindow
* Added support for tabbed dock widgets.
* Enhanced look and feel of dock widget handling. When a dock widget
hovers over a main window, the main window animates the existing
dock widgets and main area to show how it will accept the dock
widget if dropped.
* Fixed issues related to insertToolBarBreak().
- QMap
* Prevent conversion of iterator or const_iterator to bool
(e.g., if (map->find(value))), because the conversion always
returned true. Qt 4.1 code that doesn't compile because of this
change was most probably buggy.
* Added the uniqueKeys() function.
- QMenu
* Added the aboutToHide() signal.
* Added the isEmpty() accessor function.
* Clear menuAction() when setMenu(0)
* Added support for widgets in menus via QWidgetAction.
* Collapse multiple consecutive separators. This can be turned off
with the collapsibleSeparators property.
* Made scrollable menus wrap, just like non-scrollable ones.
- QMessageBox
* Updated the API to allow more than 3 buttons to be used.
* Added support to display buttons in the order required by
platform-specific style guidelines.
* Added support for display of informative text using the
informativeText property.
* Added the detailedText property to allow detailed text to be
displayed.
* Improved sizing of message box (especially on Mac OS X).
* Changed the behavior so that long text strings are automatically
wrapped.
* Updated icon handling to use QStyle::standardIcon() where possible.
- QMetaObject
* Added the userProperty() and normalizedType() functions.
- QMetaType
* Ensured that all type names are normalized before registering them.
* Added support for handling Qt's integer typedefs: qint8, qint16,
etc.
- QModelIndex
* Added the flags() convenience function.
- QMutexLocker, QReadLocker, and QWriteLocker
* These classes now track the state of the lock they are holding.
They will not unlock on destruction if unlock() has been called.
- QObject
* thread() will always return a valid thread, even if the object was
created before QApplication or in a non-QThread thread.
* When thread() returns zero, events are no longer sent to the object.
(Previous versions of Qt would send posted events to objects with no
thread; this does not happen in Qt 4.2).
* Added support for dynamically added properties via the new
property(), setProperty(), and dynamicPropertyNames() functions.
* Fixed a crash that could occur when a child deleted its sibling.
- QPainter
* Fixed a crash the occurred when drawing cosmetic lines outside the
paint device boundaries.
* Fixed a pixel artifact issue that occurred when drawing cosmetic
diagonal lines.
* Fixed opaque backgrounds so that they are identical on all
platforms.
* Optimized drawing of cosmetic lines at angles between 315 and 360
degrees.
* Added the setRenderHints() function.