forked from qt/qtbase
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes-4.4.0
2419 lines (1942 loc) · 103 KB
/
changes-4.4.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.4 introduces many new features as well as many improvements and
bugfixes over the 4.3.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/4.4
The Qt version 4.4 series is binary compatible with the 4.3.x series.
The Qt for Embedded Linux version 4.4 series is binary compatible with the
Qtopia Core 4.3.x series. Applications compiled for 4.3 will continue to
run with 4.4.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Task Tracker:
http://qt.nokia.com/developer/task-tracker
Each of these identifiers can be entered in the task tracker to obtain
more information about a particular change.
****************************************************************************
* General *
****************************************************************************
General Improvements
--------------------
- Legal
* This version introduces the GPL version 3 as an alternative
license for the Open Source Edition of Qt, in addition to the
existing licenses.
* Updated the GPL Exception to version 1.2, which grants additional
rights to developers using the LGPL version 3.0 and other licenses
for their software.
- Configuration/Compilation
* [102113, 151125] Make it possible to use Qt headers with MSVC's
warning level 4.
* [129841] Make Qt compile with Intel C++ 9.0 and Intel C++ 10 compilers
on Windows.
* [168868] Add experimental support for the Blackfin processor.
* [188167] Fixed a bug in the solaris-cc mkspec that would cause
it to always use RPATH, even when configured with -no-rpath.
* [176029] Added qmalloc.cpp with qMalloc() and qFree() implementation
to make it easier to replace the default container allocators with
custom allocators (by providing your own qmalloc.o(bj) file).
* Enable -reduce-exports automatically on linux-icc* mkspecs when
using version 10.1 of the Intel C++ Compiler for Linux.
* Add experimental support for the AVR32 processor.
* Allow building Qt with -release and the Intel C++ Compiler for
Linux. This required working around several compiler bugs by
turning optimizations off for certain modules. See the compiler
notes for more details.
* Add support for MSVC 2008, and add separate mkspecs for MSVC 2002 &
2003.
* [189185] Avoid quoting the the include and library paths for iconv.
- Documentation and Examples
* The Qt Designer Manual was updated to include new Qt Designer features.
* QtScript module overview was updated with more examples and reference
material.
* [161404] The 40000 Chips demo no longer shifts when clicking the OpenGL
button.
* [188676] Fixed text item moving in Diagram Scene example.
* New demo: Embedded Dialogs
* New demo: Browser
* New example: Graphics View / Pad Navigator
* New example: Item Views / Address Book
* New example: WebKit / Previewer
* New Example: XmlPatterns / Recipes
* New tutorial: Address Book
* Multiple bug fixes for the Torrent Client example.
* Speed-ups in the Ported Asteroids Example.
* [164223] All examples that use resources now include
Q_INIT_RESOURCES to avoid breakage in static builds.
- Translations
* Added a Traditional Chinese translation of the Qt and tools courtesy
of Franklin.
* Added a Spanish translation of Qt courtesy of Enrique Matias Sanchez.
- Signals and slots
* [147681] Added support for 'long long' and 'unsigned long long'
in queued connections.
* [125987] Optimized QMetaObject::activate(), the function that
actually delivers signals to all connected slots.
* [164558] Fixed a bug that caused queued signals to be delivered out
of order (not in the order they are emitted).
* [169554] Added Q_EMIT, to correspond to Q_SIGNAL and Q_SLOT.
- Multithreaded painting
* [66358, 142031] Added support for painting on QImage, QPicture,
and QPrinter in multiple threads. See the Multithreaded
Programming documentation for more details on supported features
and known limitations.
- Embedded QWidget support for Graphics View
* [177204] Added support for using layouts, styles, palettes and fonts,
as well as embedding QWidgets into a QGraphicsScene.
- XML support in QtCore
* The QXmlStreamReader, QXmlStreamWriter and supporting classes
have moved from the QtXml module to the QtCore module. This change is
both source- and binary-compatible with previous versions. New
applications can opt to not link to QtXml when using these classes.
- Printing
Made a number of improvements to printing in Qt 4.4, including
support for setting custom page sizes and custom margins as well as
the ability to programatically enumerate printers via the new
QPrinterInfo class. A couple of new classes, QPrintPreviewWidget
and QPrintPreviewDialog, have been added to make it easy to add a
print preview to an application. The QPrintDialog and QPageSetupDialog
for X11 have been redesigned and are hopefully easier to use.
New features
------------
- XQuery 1.0 and XPath 2.0 support provided through the new QtXmlPatterns
module.
- Qt Help module for embedding documentation into applications.
- QSystemSemaphore provides a general counting system semaphore.
- QSharedMemory provides access to a shared memory segment between multiple
threads and processes.
- QLocalServer class provides a local socket-based server with a matching
new QLocalSocket class.
- QFileSystemModel provides a data model for the local file system. Unlike
QDirModel, QFileSystemModel will fetch directory listings in a background
thread to prevent any locking in the GUI. QFileSystemModel is also much
faster and has a few more features then QDirModel.
- QCommandLinkButton to support Vista style command links on all platforms.
- QFormLayout provides a layout designed for convenient form creation with
the appropriate appearance on different platforms. This class previously
appeared in Qtopia/4.3, but has been integrated into Qt.
- QtConcurrent provides a high level multi-threading API.
- QPlainTextEdit provides a highly scalable plain text editor. It uses
similar technology and concepts as QTextEdit, but is optimized for plain
text handling; e.g. as a log viewer.
- QTextBoundaryFinder is a new class implementing the Unicode text
boundaries specification.
Third party components
----------------------
- Updated Qt's SQLite version to 3.5.4.
- Updated Qt's libpng version to 1.2.25.
- Added CLucene version 0.9.17.
- Added WebKit (see the src/3rdparty/webkit/VERSION file for the version).
- Added Phonon version 4.1.
****************************************************************************
* Library *
****************************************************************************
- General Fixes
* [147201] Assert in debug mode when using QReadLocker, QWriteLocker,
or QMutexLocker with unaligned pointers.
- QAbstractButton
* [190739] Ensure button with the TabFocus policy doesn't receive focus
through others ways.
* [192074] Disable key navigation for buttons in a item view.
- QAbstractItemModel
* [171469] Speed up insertion of rows into a model.
- QAbstractItemView
* [162487] Check canFetchMore() on the model before calling fetchMore().
* [179163] The virtual selectAll() is now called when the user types
"Ctrl+A"
* [181413] Fixed InternalMove for MoveAction-only models.
* [181988, 192114] Made mouse wheel smarter on ScrollPerPixel mode.
* [182248] Trasparent background for the dragged visual.
* [184507] setVerticalScrollMode(ScrollPerItem) can cause the view to
scroll to the bottom.
* Add autoScrollMargin property.
* [162547] Make the current index stay in the viewport when sorting.
* [165404] Make the drop indicator stylable.
* [160611] Ensured that the hover item is updated when dragging over the view.
* [162497] Allow key events to be propagated.
* [186052] Mac: The alternatingRowColors property now honors the
Graphite color setting.
* [202276] Fixed crash when pressing Ctrl+C in a view with no model.
* [202034] Ensured that the editor's geometry is kept up to date when rows
are inserted.
* [204403] Only scroll to the current index on reset if the view is
editing.
- QAbstractProxyModel
* [156789] Fixed a crash when deleting the source model.
* [194765] Made headerData() call mapToSource() when asking for data.
* [195023] Added setData() and setHeaderData() implementation.
- QAbstractScrollArea
* [159949] Fixed a bug where setting the horizontal scroll had no effect.
- QAbstractSpinBox
* [183108] Allowed a spin box to be cleared before it is visible.
* [198687] Always reset modified and undo states of the line edit upon
pressing Enter.
- QAccessible
* [177706] Windows narrator will now read Tooltips properly.
* [182437] Tooltips are now read aloud once instead of twice.
- QAction
* [200823] Fixed regression that caused the tool tip of an action not to
show the shortcut by default.
* [97238] Introduced the iconVisibleInMenu.
- QApplication
* [100630, 153895] Fixed a bug where key press events were always
sent as non-spontaneous events, while the key release event was
spontaneous.
* [194454, 196062] Fixed QApplication::quitOnLastWindowClosed to
work as documented.
* [97238] Introduce an attribute (AA_DontShowIconsInMenus) to control
the default behavior of icons in menus. This obsoletes the
qt_mac_set_menubar_icons() function.
* [201218] Fix bug on Mac OS X where Qt::WA_DeleteOnClose failed to
delete on close.
- QAtomicInt
- QAtomicPointer
* [168853] Introduced QAtomicInt and QAtomicPointer into the public API.
These classes provide a cross-platform API for doing atomic operations.
* Optimized testAndSet*() on PowerPC to not branch in the best case
(when value == expectedValue).
* [197244] Fixed the gcc inline assembler constraints for the PowerPC
implementation.
* [198399] Applied patch from SUSE to add S390(x) support.
- QBoxLayout
* [103626] Added insertSpacerItem() and addSpacerItem().
* [127621] Made setStretchFactor() behave correctly if widget == 0.
- QBrush
* [179308] Fixed a bug which caused QBrush to forget the color if it was
passed in the constructor along with Qt::NoBrush.
* [169502] Fixed a threading issue with setTextureImage().
- QBuffer
* [184730] A TIFF image can now be stored correctly in a QByteArray.
- QByteArray
* [193870] Copy the data of a QByteArray that is taken from
QByteArray::fromRawData() when appending more data.
* [82509] Added QT_NO_CAST_FROM_BYTEARRAY to disable "operator const
char *" and "operator const void *".
- QCalendarWidget
* [181388] Added support for updating the cell of a particular QDate.
* [172053] Fixed palette bug for calendar's buttons.
- QChar
- QCleanlooksStyle
* [194082] Fixed disabled checkbox painted as unchecked.
* [189609] Fixed an issue where QMdiSubWindow could have incorrect
buttons.
* [182806] Retain hover appearance on slider while dragging.
* [180105] Fixed gradient backgrounds shown as black on a pressed
QPushButton.
* [176674] Fixed combobox drop down ignoring custom icon sizes.
* [197691] Made the style work better on older X11 servers without
XRender support.
- QColorDialog
* [142706] use QDialogButtonBox to conform with the style it is running
in.
- QColumnView
* [167408] Added createColumn() to help make subclassing easier.
- QComboBox
* [155578] Improved calculation of size hint for combo box pop-up.
* [183982] Fix bug where the combobox width was not wide enough in some
styles.
* [187744] Made QComboBox behave slightly better when the view is a tree.
* [189444] Allowed separators in the list.
* [190332] Made the popup respect the view's selection behavior.
* Made setEditable(false) explicitly hide the lineEdit, otherwise it may
remain visible when executing a modal dialog immediately afterwards.
* [154884] Fixed a bug where the popup was hidden without calling
QComboBox::hidePopup().
* [169848] Fixed a bug where the combo box did not open as expected when
using a touch screen.
* [153975] Mac OS X: Improved the visual appearance (flash selected item
and fade away when hiding the menu).
* [190351] Fixed setView() for style using SH_ComboBox_Popup.
* [191329] Fixed the height calculation of the popup for custom view.
- QCommonStyle
* [173539] Make the combo label draw according to the combo box's layout
direction and not the application's.
- QCompleter
* [189564] Prevented unselectable items from appearing in the completion
list.
* [180785] Ensured that QCompleter emits activated() after pressing the
Return key.
- QCoreApplication
* [157435] Fixed the posted event implementation to prevent the pending
queue from growing endlessly while a modal event loop is running.
* [132395] Sent DeferredDelete events at the right time. Specifying the
QEventLoop::DeferredDeletion flag (now deprecated) to processEvents()
is no longer necessary.
* [131235] Added QCoreApplication::applicationPid().
* [132859] Don't explicitly set the LC_NUMBERIC locale to "C" on UNIX
systems.
* [187044] Fixed a crash when addLibraryPath() or setLibraryPaths()
is invoked before creating QCoreApplication.
* [161049, 171670] Don't leak the single QThread instance that Qt creates
to represent the main() thread.
* [143743] Added the QCoreApplication::applicationVersion property.
- QCryptographicHash
* [190062] Ensured that calling result() twice returns the same value.
- QDataWidgetMapper
* [194784] Allowed setting NULL values for editors.
- QDataStream
* [196100] Fixed compatibility issue with QCString in Qt3.x streams.
* [196415] Fixed compatibility issue with invalid colors in Qt 3.x
streams.
- QDateTime, QDate, QTime
* [189882] Optimized {QDate,QTime,QDateTime}::fromString() so that it
is about 40% faster than before.
* [193079] Have {QDate,QTime,QDateTime}::fromString() understand
locale-dependent string formats.
* Added enum values to distinguish between short and long formats.
- QDateTimeEdit
* Added properties minimumDateTime/maximumDateTime
* [169916] Added a timeSpec property for QDateTimeEdit
* [178027] Make QDateTimeEdit respect the locale property
* [158950] Disable QCalendarWidget popup when the dateTimeEdit is
read-only.
* [145872] Added a getter and setter for the QCalendarWidget popup.
- QDateEdit
* Don't interpret time-specific formats as special fields in a QDateEdit
and vice versa for QTimeEdit.
- QDesktopServices
* [89584] Added a way to get users Documents, Desktop, Movies
directories.
* [105740] Added a way to determine the location to store data files.
- QDialog
* [174842] Ignore the close event if the reimplementation of reject()
doesn't close the dialog.
- QDialogButtonBox
* [191642] Don't steal the default button if there is one already.
* [196352] Fixed roles of QDialogButtonBox::Abort and
QDialogButtonBox::Ignore.
- QDir
* [172057] Fixed bug when sorting directories containing files larger
than 2GB.
* [177904] Fixed a problem with QDir::tempPath() and QDir::homePath()
returning trailing slashes inconsistently. Now it returns the
absolute path name, without the trailing slash.
- QDirModel
* [176323] Fixed display of files moved by drag and drop (on a QTreeView).
* [196768] Fixed sorting.
- QDockWidget
* [171661] Fixed setTitlebarWidget(0) to reset the native decoration.
* [169808] SizeHint is now taken into account.
* [188583] Fixed a bug making dockLocationChanged signal not always
emitted.
* [193613] Highlighted splitters between QDockWidgets, now go back to
inactive state when the cursor have passed over it.
- QDoubleSpinBox
* [164696] QWidget::locale() is now used for all string-to-number
conversions.
- QErrorMessage
* [189429] Fixed "do not show again" with rich text message.
- QEvent
* [37536] Add QEvent:registerEventType() for obtaining a unique
event type ID.
* [161940] Fix QContextMenuEvent::modifiers() on X11 and Qt for Embedded
Linux to behave like the Windows and Mac OS X. Previously, this
* [166605] A drop event's drop action is now initialized to the drag
manager's current default action.
- QFile
* [107448] Fixed bug where QFile::write() would fail to report an error
on disk full.
* Added map() and unmap() to map files into memory.
- QFileDialog
* [71645] Added a property to hide filter details.
* [174510] Ensured that when multiple files are selected, all of them
will be deleted, not just the current one.
* [172254] selectFile should also set the current directory.
* [185930] getExistingDirectory directory file not updated after
renaming the new directory.
* [164591] Provided a way to set the QDir::filter on the model.
* [180459] Native OS X file dialog forgets last visited directory.
* [184508] Improved speed when showing a lot of files.
* [184508] Improved launch speed.
- QFont
* Add Capitalize font-capitalization feature including small caps.
* [191756] Do not crash when font config finds no fonts on the system.
* [145015] Don't replace '-' characters in font names anymore.
* Fixed a bug where glyphs sometimes showed up in italic for a non italic
font (X11/Embedded Linux only).
* Fixed a bug where xHeight() sometimes returned a wrong number
(X11/Embedded Linux only).
* Added support for word- and letter-spacing.
- QFontComboBox
* Fixed a bug where font name would not be displayed in some cases.
- QFontMetrics
* [179946] Fixed averageCharWidth() to change return value after adding
text to a QPainterPath.
- QFSFileEngine
* [200220] Fixed a potential crash and removed some potential resource
leaks.
* [190377] Fixed a reentrancy bug on all platforms; querying the canonical
path no longer relies on chdir() and realpath().
* [155284] Fixed uninitialized memory problem when calling realpath()
with an empty name on Solaris.
- QGL
* [137573] Fixed drawing of images/pixmaps larger than the maximum texture
size in the OpenGL paint engine.
* [175853] Added new drawTexture member functions for convenient drawing
of textures in QGLWidget, QGLContext, QGLFramebufferObject, and
QGLPixelBuffer.
* [187954] Fixed an issue with missing corner pixels when drawing
rectangles in the OpenGL paint engine.
- QGLContext
* [184996] Made isSharing() return something useful after a QGLWidget has
been reparented under Windows.
- QGLPixelBuffer
* [195317] Make QGLPixelBuffer::hasOpenGLPbuffers() preserve the current
GL context when called.
- QGLWidget
* [128157] QPixmap::grabWidget() now works on a QGLWidget.
* Added support for syncing drawing to QGLWidgets under X11 via the
QGLFormat::setSwapInterval() mechanism. This requires the
GLX_SGI_video_sync extension to be present.
* [183472] Made renderText() respect the currently set GL scissor box
and GL viewport.
* [182849] Fixed a crash on the Mac when renderPixmap() was called on a
multisampled GL context.
* [176618] Don't require depth testing to be enabled for the 3D version
of renderText() to work.
- QGradient
* [178299] Fixed an issue where calling setColorAt twice with the same
position would not replace the existing color at that position.
- QGraphicsItem
* [161160] Speedup when removing children from an item.
* [158799] QGraphicsItem now returns a different scene from
itemChange(ItemSceneChange).
* [127051] Added support for item caching in local and device
coordinates.
* [183996] Fixed a bug caused when items are moved by pressing many mouse
buttons at the same time.
* [192983] Added QGraphicsItem::boundingRegion(), which allows updating
items based on their shape instead of their bounding rect.
* Improved QGraphicsItem::isObscured() and QGraphicsItem::opaqueArea()
speed and accuracy.
* [195916] Fixed crash when deleting an item as it receives a
contextMenuEvent().
* [202476] DeviceCoordinateCache now works with perspective
transformations.
* [202718] DeviceCoordinateCache performance improved greatly when
the cached item does minimal updates.
* [202689] Scrolling works (but is slow) for cached items.
- QGraphicsItemAnimation
* [164587] QGraphicsItemAnimation::reset() has been marked as obsolete.
- QGraphicsLineItem
* [177918] Lines with the same start and end point are now valid, and
rendered as a point.
- QGraphicsScene
* [160463] QGraphicsScene::clearSelection() is now a slot.
* [161284] Added Q_DISABLE_COPY.
* [163854] QGraphicsScene no longer sends events to a disabled mouse
grabber item.
* [176902] Add support for context menu event propagation.
* [176178] QGraphicsScene::sceneRect() now auto-updates also with NoIndex
set.
* [186398] Added a fast QGraphicsScene::clear(), and massive speed-up in
recursive scene destruction.
* [180663] Fixed miscalculated expose rects in QGraphicsScene::render().
* [176124] Ensure that all mouse events that should have a widget assigned
do have a widget assigned.
* [174238] The selectionChanged() signal is no longer emitted twice when
replacing one selection with another.
* [160653] selectionChanged is now emitted when reselecting an already
selected item.
* QGraphicsScene::mouseMoveEvent now receives all mouse move events from
the views, and translates them into hover events for the items. This
allows you to track all mouse move events for the entire scene, without
having to reimplement QGraphicsScene::event() and duplicating the
QGraphicsScene implementation.
- QGraphicsSceneHoverEvent
* [151155] Added support for keyboard modifiers.
* [157222] Added support for lastPos, lastScenePos, and lastScreenPos.
- QGraphicsSceneWheelEvent
- QGraphicsSvgItem
* [171131] Fixed painting error caused by using obsolete pixmap cache
entry.
- QGraphicsView
* [152477] Fix to QGraphicsView's scroll bar range calculation.
* [161284] Added Q_DISABLE_COPY.
* [164025] Mouse press events now propagate through the view if ignored
by the scene.
* New ViewportUpdateMode: QGraphicsView::BoundingRectViewportUpdate
* [180429] Mouse release events propagate properly in RubberBandDrag
mode.
* [176902] Add support for context menu event propagation.
* [180663] Fixed miscalculated expose rects in QGraphicsView::render().
* [187791] QGraphicsView::setScene() now always updates the view
properly.
* [186827] Fixed an infinite loop caused by mouse replay after deleting
items in response to receiving mouse move events.
* [172231] Fixed erroneous clipping of untransformable items by scaled
graphics view.
* Fixed redraw bugs in QGraphicsView background rendering when using an
OpenGL viewport.
- QGridLayout
* [121549] Added itemAtPosition(int, int).
- QGroupBox
* [159480] QGroupBox's clicked() behavior is now the same as QCheckBox.
* [186297] Right-clicking a checkable group box now has no effect, which
is consistent with the behavior of QCheckBox.
* [178797] A checkable group box now correctly updates the sunken state
of its check box.
* Don't call updateGeometry() needlessly from resizeEvent().
- QHash
* [171909] Don't rehash in operator[] and insert() when the key already
exists -- to avoid subtle bugs when iterating on a QHash. (This is
documented as being undefined, since these functions are non-const,
but it's easy to avoid the rehashing.)
- QHeaderView
* [173773] QHeaderView now updates properly upon sorting a column.
* [192884] When the model emits layout changed unhide old hidden rows
and hide new hidden rows.
* [170935] QHeaderView now updates properly when swapping columns.
* [157081] Made headerviews semi-transparent while dragged.
* [148198] Optimize hiding sections when the resize mode is ResizeToContents.
* [168128] Fixed problem where the last section was resized when the last two sections are swapped.
* [168209] Update the header section when the font size changes.
- QHostInfo
* [194539] Fixed the ordering of IP addresses returned by the
host-lookup procedures. Qt respects the order supplied by the
system libraries.
* [176527] Fixed a problem in QHostInfo that would cause it to
print warnings if it was used before QCoreApplication is created
- QHttpHeaders
* [104648] Fixed QHttpHeaders to not change the order or
capitalisation of headers received or sent. QHttpHeaders is now
case-insensitive but case-preserving
- QHttp
* [181506] Fixed a bug that would cause QHttp to emit a warning
from QIODevice when connecting to some servers.
* [190605] Fixed a memory leak.
* [175357] Fixed a deadlock when trying to parse an empty HTTP
reply which did not contain Content-Length: 0 (such as those
found in 304 replies)
* [170860] Fixed a problem which would make QHttp emit the done()
signal too soon (before it was finished).
- QIcon
* [168488] Reduce memory usage if you call addPixmap severals times with the same arguments.
- QImage
* [176566] Fixed problem in scale() which would cause downscaled images to
become darker due to precision loss in the image scaling.
* [181265] Fixed crash in scale() when downscaling very large images.
* Added new image formats: QImage::Format_ARGB8565_Premultiplied,
QImage::Format_RGB666, QImage::Format_ARGB6666_Premultiplied,
QImage::Format_RGB555, QImage::Format_ARGB8555_Premultiplied,
QImage::Format_RGB444, QImage::Format_ARGB4444_Premultiplied,
and QImage::Format_RGB888.
* Added support for the ICO image format (from Qt Solutions)
* Fix drawing of text into a QImage on the Mac so that the native
CoreGraphics engine is used. This makes aliased text, or text with
a small point size, look much better.
* [188102] For Indexed image, fixed setColor() to expand the
colortable if necessary. Made colortable manipulation more robust.
- QImageReader
- QImageWriter
- QInputDialog
- QIntValidator
* [179131] Reverted QIntValidator's out-of-range semantics to Qt 4.2
behavior, at popular demand.
- QItemDelegate
* [175982] Escape did not close the editor if the application had registered
escape as a shortcut.
* [177039] Handle double precision properly.
* Don't finish editing if the validator is still in intermediate mode.
- QItemSelectionModel
* [169285] Items are now deselected properly.
* [192147] Fix an off-by-one bug in QItemSelectionModel
- QLabel
- QLayout
* Cache sizeHint() and minimumSizeHint() of widgets in a layout using
the internal class QWidgetItemV2, leading to significant performance
gains for widgets that have an expensive size hint implementation.
- QLibrary
* [155884] Fixed QPluginLoader to not load plugins with unresolved symbols.
* [170013] Make sure that libraries are opened with RTLD_LOCAL by default
on *all* platforms. (On Mac it was RTLD_GLOBAL by default). This should
make plugin loading more consistent.
* [190831] Fixed crash when calling loadHints on a default constructed
QLibrary.
* [155109] The real error message was discarded if the library existed,
but failed for another reason.
- QLineF
* [170170] Introduce new member function angleTo() which returns the angle
between two lines, also taking the direction into account.
* [174122] Added new member functions in QLineF for setting and getting
the angle of the line, as well as translating a line, and constructing
a line from polar coordinates.
- QLineEdit
* [151414] Add protected function to access the cursor rectangle.
* [153563] Don't show blinking cursor on read only line edit with input mask
* [174640] Emit editingFinished() when the user open a menu.
* [178752] Reverted to Qt3's behavior of using an arrow cursor instead of
a beam cursor when the QLineEdit is read only.
* [180999] Old selection now cleared upon activating a window.
* [188877] Fixed painting error resulting from pasting into a selection.
- QLinkedList
* Add QLinkedList::removeOne(), which removes the first occurrence of a
value from the list.
- QList
* Add QList::removeOne(), which removes the first occurrence of a value
from the list.
- QListView
* [158122] Wordwrap in ListMode
* [177028] Make sure that the scrollbars is automatically removed when the
model has less than two items.
* [186050] Make sure the content size is updated when moving item.
* [182816] Combine wordwrap and text eliding.
- QListWidget
* [199503] Fixed a crash when calling clear inside a slot connected to
currentItemChanged.
* [159792, 184946] Keyboard navigation fixed with non uniform item sizes.
* [255512] Add function to allow setting the current item without selecting it.
- QLocale
* [161049] Fixed a couple of static memory leaks in QLocale.
* Added the following functions to QLocale:
QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const;
QString toString(const QDateTime &dateTime, const QString &format) const;
QString dateTimeFormat(FormatType format = LongFormat) const;
* Added the following enum values to QLocale::QueryType:
DateTimeFormatLong
DateTimeFormatShort
DateTimeToStringLong
DateTimeToStringShort
- QMacStyle
* [142746] Now respects the QComboBox::iconSize property.
* [184566] Make sure we pick up changes to QPushButton::setDefault().
* [174284] Don't truncate text on tabs in the small and mini size.
* [170971] Don't try to draw a mini scrollbar as it doesn't exist, draw a small one instead.
* [170977] Correct checkmarks for small and mini non-editable comboboxes.
* [170978] Prevent mini push buttons from being clipped.
* [202959] Draw the correct number of tickmarks for sliders.
- QMainWindow
* [178510] Context menu is not shown if all toggle view actions are invisible.
* [195945] Fixed resizing of QDockWidgets in QMainWindow without using any
central widget.
* [196569] Don't override the cursor set by the user with setCursor when hovering dock widgets.
- QMdiArea
* [155815] Fixed a bug causing sub-windows to overlap when tiling them.
* [148183] Added support activation order.
* [153175] Added support for tabbed workspace.
* [182852] Don't overwrite mainwindow title.
* [189758] Fixed a bug causing sub-windows to be squeezed when tiling them.
* [202657] Fixed focus issue on dockwidget when activating the main window.
- QMdiSubWindow
* [198638] Fixed so that minimumSize() and minimumSizeHint() was respected (it was
possible to resize the window to a smaller size earlier).
* [171207] Added tooltips for the buttons in the title bar.
* [169874, 47106] Added support for switching between sub-windows using Ctrl-Tab.
* [169734] Added an access function to QMdiArea.
* [192794] Fixed a bug causing installed event filters to be removed after maximizing a sub-window.
- QMenu
* [165457] Fixed torn-off QMenus to have the correct stacking order.
* [167894] Fixed focus management when activating an action from the keyboard.
* [167954] Increased the size of the tear-off handle.
* [172423] Mac OS X: Improved the visual appearance (flash selected item and fade away when hiding the menu).
* [183777] Fixed a bug with tear off menu making impossible to tear some menu off.
- QMenuBar
* [193355] Fied bug with action plugged in menu which did not return to their normal state
after being clicked
* [194677] Fixed a bug causing the corner widgets to be laid out incorrectly when adding them right
before the menu bar was shown.
- QMessageBox
* [176281] By default, if there is exactly one button with the RejectRole or
MessageBox::NoRole, it is now made the escape button.
* [181688] Better look with setInformativeText.
- QMetaObject
* [197741] Fixed a memory leak in QMetaObject::invokeMethod() when
called with unregistered data types.
* [171723] Support for 'unsigned' type in the meta-object system.
- QMetaType
* [179191] Added QMetaType::unregisterType() for unregistering a metatype.
- QMimeData
* Added a removeFormat() method.
- QMngHandler
* [155269] QMngHandler now initializes image backgrounds properly.
- QModelIndex
* [176068] optimize QModelIndex operator<
- QMotifStyle
* [185649] Fixed incorrect positioning of itemview frames in reverse mode.
- QMutex
* [151077] Optimized QMutex locking path to be comparable to Win32
CRITICAL_SECTIONs.
* [186088] Clarify documentation of lock() and tryLock() to be
more explicit about the behavior of these functions in recursive
vs. non-recursive mode.
- QNetworkInterface
- QNetworkProxy
- QObject
* [144976] Fix QObject::property() to return a QVariant that can be
converted to an enum if the enum is known to QMetaType.
* [171612] Fix QObject::removeEventFilter() to work as documented.
* [172061] convert() now return false if the result is invalid for date types.
* [184003] Fix a crash in QObject::queryList() when called from an
object's destructor.
* [173218] Document deleteLater()'s behavior when called before
QCoreApplication::exec().
- QOpenGLPaintEngine
* [183995] Reset the GL_TEXTURE_ENV attribute and pixel transfer modes to the
default values when QPainter::begin() is called.
* [174273] Fixed the annoying "Unable to compile fragment programs" problem
by adding a GL program cache, and compiling the programs on demand.
- QPainter
* [121105] Added drawEllipse overload that takes a center point and two
radii.
* [124248] Fixed some rounding issues causing inconsistencies between
text and line drawing.
* [142470] Fixed performance issue with non-cleartype text drawing on
Windows when doing several calls to QPainter::drawText().
* [142514] Fixed bug in X11 paint engine where a pixmap drawn
at non-integer coordinates would be drawn at different offsets depending
on whether opacity was set or not.
* [156787] Fixed problem with SmoothPixmapTransform and source rects in
drawImage and drawPixmap which would cause color bleeding from pixels
outside the source rect at the image borders.
* [156964] Improved accuracy of arc drawing, ensuring that arcs drawn
with same control rect but different sweeps are still coinciding.
* [162153] Fixed bug caused by integer overflow in QPainter::boundingBox
when passing a very large rectangle.
* [163605] Introduced new drawRoundedRect API with support for absolute
coordinates for the corner radii.
* [166702] Fixed some potential floating point exceptions in raster
paint engine line drawing.
* [167890] Prevent crash when drawing zero-length lines; these are now
drawn as points.
* [169711] Ensured that calling setClipRect with negative width/height
is treated as an empty clip region.
* [170208, 170213] Fixed some bugs with dashed line drawing and dash
dash offsets in the mac paint engine.
* [175912, 176386, 194360] Fixed some precision issues with projective
transformed pixmaps and images.
* [179507] Ensure that the final stop color is always used beyond the
radius when using a QRadialGradient.
* [180245] Fixed bug which caused setOpacity to be ignored when drawing
transformed RGB32 images.
* [182658] Fixed a problem with drawPoint in X11 paint engine which would
cause a one-pixel point to sometimes be drawn as two pixels.
* [184746] Fixed performance regression in drawEllipse() with raster paint
engine.
* [188012] Fixed stroking of empty rectangles in X11 paint engine.
* [190336] Fixed text drawing performance issue on Windows when using
setPixelSize to draw large fonts.
* [190394] setOpacity() now correctly paints transparent regions when
outputting to PDF.
* [190634] Fixed bug where drawLine would fill part of the paint device
instead of just drawing a line.
* [190733] Fixed some precision problems with miter joins and curve
segments which could cause ugly painting artifacts.
* [191531] Fixed a bug with alpha or pattern brush drawing to mono images.
* [191761] Fixed rendering of transformed ObjectBoundingMode gradients.
* [199234] Fixed a bug causing fillRect with a gradient fill to not work
with ObjectBoundingMode gradients in the raster paint engine.
* Introduced a new rasterizer for aliased drawing to address performance
and precision issues in the existing rasterizer.
* Remove warnings emitted when setting Source or SourceOver composition
modes on certain paint devices.
* [192820] Fix drawImage()/drawPixmap() with a source rect parameter outside
of the range of the source image dimensions.
* [183745] Fixed setting font point sizes < .5, would in some cases cause
the font size to default back to 12 points.
* [157547] Fixed inconsistent pen styles for DashLine, DotLine, DashDotLine
and DashDotDotLine across Win/Linux.
* [143526] Fixed a problem with drawing text or shapes that were drawn
with a very large scale factor. Typically you would get a crash after
memory was exhausted.
* [186070] Fixed potential integer overflow when drawing texture or pattern
brushes with a transform that has a small scale.
* [200616] Fixed bug causing transformed cosmetic pens with width > 0 and a
dash pattern to be partially or completely clipped (raster engine).
* [206050] Fixed QImage::scale with a SmoothTransformation to handle alpha
channel correctly when scaling.
- QPainterPath
* [121105] Added addEllipse overload that takes a center point and two
radii.
* [181774] Remove assert that could occur when calling pointAtPercent()
with parameters close to 0 or 1.
* [189695] Fixed bug relating to 360-degree arcs and winding fill.
* [187779, 187780] Fixed some bugs in intersects() and contains() when
dealing with paths with multiple subpaths.
* [191706] Fixed intersects(QRectF) for paths that represent vertical or
horizontal lines.
* [193367] Introduced simplified() to simplify paths with multiple
subpaths and/or self-intersections.
* [206160] Modify QPainterPath::operator== to do point comparisons with
an epsilon relative to the painter path's bounding rect size.
- QPainterPathStroker
* [174436] Fixed some bugs relating to dash offsets and dashing of
paths with multiple subpaths.
- QPalette
* [170106] Added QPalette::ToolTipBase and QPalette::ToolTipText.
- QPicture
- QPixmap
* [164116] QPixmap::x11Info() didn't report the correct depth when
the pixmap depth and the desktop depth was different.
- QPixmapCache
- QPlastiqueStyle
* More native appearance of button, combobox, spinbox and slider.
- QPolygon
* [163219] Added missing datastream operators to QPolygon.
- QPrintDialog
* [182255] Don't ask whice to overwrite axisting file.
* [183028] Changed to default for maxPage() to INT_MAX.
- QPrinter
* PDF engine now supports hyperlinks.
* [180313] Fixed a bug where QPrinter could not be used more than once
per instantiation.
* [121907] Change begin() to properly return 'false' when the file we
want to write to can not be written to.
* [189604] Make the pdf printer capable of having a different page size
and orientation for each page.
* [99441] Add setPaperSize(const QSizeF &paperSize, Unit unit).
* [182245] Make pageRect() return consistent values across
Mac/Win/Linux when fullPage() is set, and fix an off by one error in
the width()/height() functions on the Mac.
* [156508] PS/PDF generators: Correctly generate grayscale output when
requested.
- QPrintEngine
* [193986] Fixed the copyright date on PDF files
- QProcess
* [162522] QProcess now emits stateChanged() consistently for all state
changes.
* [153565] Add define to make it compile with QNX RTOS.
* [196323] Try to unregister SIGCHLD while Qt is unloaded.
- QProgressBar
* [189512] sizeHint() doesn't depends anymore on PM_ProgressBarChunkWidth
- QProgressDialog
* [190318] Use the size of the label if setMinimumSize() and setLabel()
are called.
* [198202] Wixed crash when calling setLabel(0).
- QPushButton
- QReadWriteLock
* [131880, 170085] Add support for recursive read-lock
support. See the not below in the Important Behavior Changes
section.
- QRect
* Fixed a bug in normalized() when width() == 0 and height() < 0
or vice versa.
- QRectF
- QRegion
* Added numRects() which returns the number of rectangles in the region.
* [193612] Various optimizations for regions consisting of only one
rectangle.
- QResource
- QScriptEngine
* [200225] Made uncaughtExceptionBacktrace() return a correct backtrace
in the case where the value thrown is not an Error object.
* [202454] Made QScriptContext::isCalledAsConstructor() return the right
result for constructors registered with newQMetaObject().
* [198166] Made canEvaluate() handle C-style comments correctly.
* [202606] Made it possible to invoke slots with const QObject* arguments.
* [200599] Removed the need to register the metatype-id of QObject-derived types
before they can be used as arguments to slots where the type occurs
in the signature.
* [185580] Fixed a bug with automatic semi-colon insertion that caused the
prefix ++ operator to behave incorrectly.
* [190991] Implemented iteration for arguments objects.
* [175697] Made conditional function declarations have the same semantics as in
other popular ECMAScript implementations.
* [176020] Fixed a crash that occurred when the left-hand side of an assignment
was an object literal.
* [176020] Fixed a crash that occurred when an if-statement inside a function
contained a return statement in the false-branch but not in the
true-branch, and the function didn't contain any more statements.
* [182578] Fixed a bug that caused automatic QList<int>-to-QScriptValue
conversion to fail.
* [163318] Added abortEvaluation() function.