summaryrefslogtreecommitdiff
path: root/dist/changes-4.0.1
blob: f08aac6e437d76da3c373fc028964d3f3826c7a9 (plain)
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
****************************************************************************
*                          Important Notices                               *
****************************************************************************

Meta-Object System
------------------

Qt 4.0.0 introduced a change to the way type names outside the current
scope were handled in signals and slots declarations and connections
which differed from the behavior in Qt 3.x.

Unfortunately, this could lead to signal-slot connections that were
potentially type-unsafe. Therefore, in Qt 4.0.1 type names must be fully
qualified in signal-slot declarations and connections.

For example, in Qt 4.0.0, it was possible to write:

    connect(socket, SIGNAL(error(SocketError)), ...);

In Qt 4.0.1, the above connection must be made in the following way:

    connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), ...);


Library
-------

Support for SGI Altix has been added for both gcc and Intel icc.


QX11EmbedContainer and QX11EmbedWidget are now exported classes.

This change only affects developers using Qt/X11 with gcc >= 4.0 and
symbol visibility enabled. Applications built against Qt 4.0.1 that
use these classes cannot be linked against Qt 4.0.0.


****************************************************************************
*                                Changes                                   *
****************************************************************************

Qt Designer
-----------

Fixed crash in designer when using fonts in custom widgets that
don't have a point size set but use a pixel size instead.

Fixed initial positions of the form windows in the MDI mode.

Ensured that the object inspector is updated when a page is added
to a widget stack.

Ensured that the SDK is installed and the library symbols are
exported.

Fixed crash when breaking a layout after deleting all widgets within.

Fixed handling of nested action groups.

Fixed mouse handling to match user expectations on different
platforms.

Don't change system setting for double click interval.

Disabled the richtext editor for the "statusTip" property.

Improved widget handling, loading and saving for QFrame, QTabWidget,
and Q3GroupBox.

Added a platform-neutral mechanism for saving key sequences.

Used Qt's list of supported image formats rather than an incomplete
static list.

Provided a way for plugins to access to the layout of container
widgets.

Added support for editable byte arrays.


Qt Linguist
-----------

Made lupdate handle cases where the compiler converts strings using
a different codec to that used by lupdate.

Fixed bug in lupdate and lrelease's .pro file parser.

Fixed lupdate's octal sequence handling.

Fixed duplicate context when two contexts have the same hash value.


Qt 3 to 4 Porting Tool
----------------------

Fixed connnect statement that did not work with the new stricter moc.

Fixed incorrect porting of enum values in switch statements.

Fixed header file name replacements in include directives.


Meta Object Compiler (moc)
--------------------------

Fixed VC6 compilation of moc generated code with namespaced
superclasses.

Fixed parsing of functions that throw exceptions.

Fixed compilation of moc generated code with VC6 when inheriting
from classes inside namespaces.

Improved the efficiency of signals with default arguments.


Qt Assistant
------------

Fixed the document list for full text search indexing.

Fixed case sensitive completion in the find dialog combobox.

Re-enabled the "add content file" option.

Removed the "General" tab in the settings dialog.

Fixed registry key handling and deletion of cache files.

Made it possible to read titles in the tabs in assistant.

Updated the QAssistantClient documentation.

Added the QtAssistantClient headers to the other library headers
for installation.

Fixed full text search for phrases.


General Fixes
-------------

- Dialogs
        Removed hard-coded margin and spacing values from built-in
        dialogs.

- QAbstractItemModel
        Fixed crash caused by removing an item with expanded children.
        Added some more see also links and defined QModelIndexList.

- QAbstractItemView
        Fixed rendering and selection issues with MultiSelection
        mode.
        Improved handling of persistent editors.
        Improved performance of item insertion.
        Improved signal handling and emission.

- QAbstractSlider
        Ensured that no changes occur if the orientation doesn't
        change in a call to setOrientation().
        Introduced better keyboard control for sliders.
        Fixed sliderPressed() and sliderReleased() signal emissions.

- QAbstractSocket
        Fixed race condition in connectToHost().
        Made bytesAvailable() return the unget buffer size as well
        as the size of any pending data.
        Made NetworkLayerProtocol non-internal.

- QAbstractSpinBox
        Fixed problems with locale and the "." and "," separators.
        Improved handling of extra whitespace at the beginning and
        end of user input.

- QApplication
        Made closeAllWindows() respect windows that reject the close
        event.
        Fixed crash caused by calling QApplication::setStyle()
        before a qApp was created.
        Improved handling of the last open window for most cases.
        Improved event handling.

- QBezier
        Used a new algorithm for offsetting curves.
        Improved performance by using a more sophisticated
        algorithm and by making QBezier a POD type.

- QBrush
        Improved radial gradient rendering.

- QColorDialog
        Process the return key correctly.

- QComboBox
        Fixed behaviour of setMaxItems() to enable new items to be
        inserted within the range allowed.

- QCommonStyle
        Ensured that mnemonics are always shown for buttons.
        Fixed position of right corner widget when used on its own.

- QDateTimeEdit
        Improved the range of input allowed for numbers.

- QDial
        Fixed valueChanged() signal emission.

- QDialog
        Fixed Lower QSizeGrip in QDialog instead of raising it.

- QDir
        Fixed relative path handling on Windows.
        Reverted empty string matching behavior to match Qt 3's
        behavior.
        Restored API compatibility with Qt 3.

- QDirModel
        Fixed accidental deletion of directories in read-only mode.

- QDockWidget
        Ensured that the size of a floating dock widget is the same
        regardless of how it was floated.
        Reintroduced double-clicking behavior to float a dock
        widget.
        Fixed incorrect moving behavior for floating widgets.
        Ensured that dock widgets display a close icon only if they
        can be closed.

- QDockWidgetLayout
        See QMainWindow.

- QDomNodeList
        Fixed handling of out-of-range items.

- QDoubleSpinBox
        Improved decimals handling and rounding behavior in
        QDoubleSpinBox.

- QFile
        Fixed problems with carriage return and line feed handling
        in readLine().
        Ensured that pos() returns the correct value if the file
        shrinks.

- QFileDialog
        Fixed incorrect behavior where the dialog would go to the
        root directory if the user tried to enter a non-existent
        directory.
        Fixed sorting by type behavior.

- QFontDatabase
        Fixed loading of special fonts.
        Fixed sample characters for Chinese scripts.

- QFontDialog
        Switched the locations of the OK and Cancel buttons.
        Made items in the font dialog read-only.
        Improved handling of the OK and Cancel buttons when the
        dialog is in reverse layout mode.

- QGifHandler
        Reintroduced GIF plugin support.

- QGridLayout
        Improved default size handling.

- QHeaderView
        Fixed section hiding behavior.
        Fixed Out of bounds error and improper calculation of last
        column.
        Improved mouse handling and widget updating.
        Fixed crashes caused by moving or removing sections, or by
        updating the current section.
        Improved signal behavior for resized or removed sections.

- QHttp
        Fixed proxy authentication.
        Fixed broken behavior when scheduling many requests to
        different hosts.
        Fixed socket object ownership issues with setSocket() that
        could lead to a crash.

- QImage
        Fixed smooth scaling for image formats other than RGB and
        ARGB32.

- QImageReader
        Fixed the default implementation of imageCount() to return a
        valid number of images.

- QInputDialog
        Switched the locations of the OK and Cancel buttons.

- QIODevice
        Fixed problems with carriage return and line feed handling
        in readLine().
        Made bytesAvailable() return the unget buffer size as well
        as the size of any pending data.
        Fixed error handling when reading lines with QFile.
        Fixed seek() behavior with regard to the unget buffer.

- QItemDelegate
        Improved layout handling, redrawing, signal emission,
        and mouse click behavior.

- QKeySequence
        Fixed accidental HTML escaping of ampersands.

- QLayout
        Print out object names in warnings.

- QLineEdit
        Enabled textChanged() signal emission when using input
        methods.
        Improved return key press handling for users of the
        returnPressed() signal.
        Fixed context menu action handling.
        Fixed editingFinished() signal emission behavior.
        Fixed Ctrl-K and Ctrl-U behavior to cut text rather than
        just deleting it.
        Fixed line edit selection behavior to maintain any current
        selection when the widget receives the keyboard focus.

- QListView
        Improved handling of hidden rows.
        Fixed rendering when used in reverse mode.

- QListWidget
        Fixed the size policy for laying out items in the list.
        Improved sorting performance.
        Fixed persistent index handling when sorting.

- QMainWindow
        Fixed problems with multiple connections from QMainWindow
        signals to QToolBar slots.
        Fixed dock widget handling (adding a widget to all dock
        areas) and incorrect dock area splitting behavior that
        could lead to crashes in QMainWindow.
        Made QMainWindow's status bar have an "Ignored" horizontal
        size policy.

- QMetaObject
        Fixed meta objects that reported far too many enums.
        Fixed the behavior of sender() to return the correct value
        during queued activation.

- QMetaType
        Fixed whitespace handling in template specialization.
        Fixed missing qt_metatype_id implementation for <void *>.
        Added more support for compilation with QT_NO_DATASTREAM.

- QMenu
        Fixed keyboard navigation when mouse navigation is also
        being used.
        Fixed menu bar merging behavior.

- QMenuBar
        Fixed Alt key navigation.

- QObject
        Fixed incorrect exception handling.

- QPaintEngine
        Suppressed warnings when drawing "empty" text.
        Fixed rendering of Underline, Overline, and StrikeOut for
        text drawn using outlines.

- QPainter
        Improved handling of clip regions when restore() is called.
        Improved text drawing performance.

- QPaintDevice
        Allowed construction of QImage before QApplication.

- QPainterPath
        Improved performance and rendering accuracy.

- QPen
        Fixed missing detach in setWidth().

- QPixmap
        Improved drawing speed and mask handling.

- QPlastiqueStyle
        Improved visual feedback for scrollbar page buttons and
        slider handle.
        Improved Plastique style on non-XRender-enabled displays.

- QProcess
        Fixed endless loop of signal being emitted if model dialog
        is used in slot.
        Made bytesAvailable() return the unget buffer size as well
        as the size of any pending data.

- QProxyModel
        Improved signal handling for propagated signals.

- QResource
        Fixed Latin-1 string handling.
        Fixed unloading of resources.

- QScrollArea
        Fixed widget resizing so that widgets that are smaller than
        the viewport remain visible.

- QSettings
        Made it possible to store QImage/QPixmap settings.
        Fixed race conditions in QSettings with INI files.
        Improved handling of non-terminated strings in INI files.

- QSizeGrip
        Made the Qt 3-style constructor public.

- QSpinBox
        Fixed problems with out-of-range integers and doubles.

- QSqlQueryModel
        Fixed integration between QSqlTableModel and MS Access.
        Fixed signal emissions for tables with only one row.

- QSqlTableModel
        Fixed problems with multiple record insertion.

- QStatusBar
        Fixed status bar height without size grip.

- QTabBar
        Fixed handling of the current page index when adding the
        first page to QTabWidget.
        Improved tab bar icon handling to enable icons to be updated
        without redrawing the entire tab bar.

- QTableView
        Improved text cursor handling and support for keyboard
        modifiers.
        Fixed problems with disappearing headers.
        Disallowed selection of hidden rows and columns.
        Fixed crashes involving empty models and tables with headers
        but no rows or columns.

- QTableWidget
        Improved sorting and signal emission behavior.

- QTabWidget
        Fixed handling of the current widget to keep the tab bar
        updated.

- QTextBrowser
        Removed temporary visible text selection when activating
        anchors with Shift-click.

- QTextCursor
        Fixed selection behavior for words at the beginning of lines.
        Fixed incorrect use of character formats when calling
        insertFragment().
        Fixed incorrect text insertion where line feeds and carriage
        returns would not be transformed into Unicode block
        separators.

- QTextDocument
        Added support for page breaking.
        Added support for relative font sizes.
        Added support for <hr /> tags.
        Fixed clipboard handling and drag and drop of text frames.
        Fixed handling of closing HTML </center> tags.
        Fixed crash (failing assertion) on import of nested empty
        HTML tables.
        Fixed data corruption in fromPlainText().
        Corrected the handling of image tags inside anchors.
        Fixed introduction of empty spaces or lines before and after
        tables.
        Fixed misrendering of some nested HTML tables with variable
        sized columns.
        Fixed crash in table drawing due to out-of-bounds access.
        Added support for the pageCountChanged() signal.
        Improved performance and size of PostScript images when
        printing high resolution or scaled images.

- QTextEdit
        Improved layout and selection handling.
        Added configuration support for non-blinking cursors.
        Improved keyboard handling.
        Improved text insertion handling.

- QTextFormat
        Added support for horizontal rules.
        Improved font handling.

- QTextLayout
        Allow line breaking at tabs.
        Improved reporting of line widths for lines ending with a
        QChar::LineSeparator.
        Fixed reporting of the minimum width for layouts that have
        NoWrap/ManualWrap as their wrap policy.

- QTextStream
        Fixed locking behavior when reading from stdin.
        Fixed seek() behavior.
        Improved Latin-1 string handling.

- QTextTable
        Improved performance and selection handling.

- QToolBar
        Fixed toolbar resizing behavior to handle icon size changes.

- QTreeView
        Improved handling of hidden rows, columns, and child items.
        Fixed repainting issues with newly inserted child items
        and selections.
        Improved scrolling behavior.
        Fixed crashes involving column handling and empty views.
        Fixed sorting indicator behavior.

- QTreeWidget
        Improved item insertion performance.
        Fixed clone() and operator=() for QTreeWidgetItem.
        Fixed crash when removing or deleting items with children.
        Improved sorting performance.
        Fixed sorting indicator behavior.
        Fixed persistent index handling when sorting.

- QUrl
        Improved the performance of removeDots().

- QWidget
        Fixed problems with adding an action multiple times.

- QXmlInputSource
        Improved heuristics for determining character encodings.

- Q3FileDialog
        Fixed file selection handling.


Platform-Specific Issues
------------------------

Windows:

- QApplication
        Fixed Block modeless elements of client when ActiveX opens a
        modal dialog
        Enabled tablet support.
        Improved event handling for popup widgets.

- QAxWidget
        Support a document site only if the COM object allows proper
        initialization with a storage.

- QFileDialog
        Updated to use the latest native Windows dialogs.

- QProcess
        Fixed behavior of forwarded read channels.

- QSettings
        Fixed behavior of childKeys() with respect to the default
        key.

- QWindowsStyle
        Fixed menu item size.
        Improved drawing of default push buttons.
        Fixed rendering of sliders to correctly differentiate
        between those in enabled and disabled states.

- QWindowsXPStyle
        Fixed menu frame rendering.
        Reduced the space allocate to menu items.


X11:

- QApplication
        Fixed incorrect initialization of screen and resolution.
        Improved mouse button handling.
        Fixed handling of withdrawn windows.

- QBitmap
        Fixed bitmap brush textures to ensure that they use the
        correct color with XRender.

- QFont
        Fixed handle() to return useful values.

- QFontDatabase
        Fixed fonts for some writing systems not being loaded on X11

- QPaintEngine
        Fixed multi-screen support.
        Improved performance and rendering accuracy.
        Fixed dot-dash patterns when drawing with large pen widths.
        Improved text rendering on exported displays.

- QWidget
        Implemented support for window opacity.
        Added support for widgets with 32 bit sizes.
        Improved support for different active and inactive background
        brushes.
        Fixed window icons on X servers that have truecolor and
        pseudocolor visuals with different depths.
        Fixed text rendering on exported displays.

- QXIMInputContext
        Fixed crash in XIM code with newer x.org libraries.
        Fixed support for switching input method styles.

- QX11Embed
        Exported QX11Embed (see the Important Changes section
        above).
        Improved handling of non-XEmbed clients.
        Improved geometry and focus handling.


UNIX:

- QPageSetupDialog
        Reduced the size of the dialog.

- QPrintDialog
        Fixed initialization of color and grayscale radio buttons.

- QProcess
        Fixed incorrect notification of process termination on
        Linux kernels up to and including the 2.4 series.
        Made QProcess emit an error() when failing to launch a
        program.


Mac OS X:

- QApplication
        Fixed widgetAt() to handle transparent widgets.
        Handle keyboard events in the active window if no focus
        window is available.
        Changed wheel mouse scrolling speed to match that of
        other applications.

- QComboBox
        Fixed rendering of combobox frames.

- QDnD
        Fixed URL handling.

- QClipboard
        Fixed Junk at end of pasted text on Qt/Mac.

- QCursor
        Fixed incorrect pixmap handling.

- QFileDialog
        Fixed sheet modality issues to prevent the dialog from being
        hidden behind other windows.

- QFont
        Default to using the Geneva font.
        Enable kerning and fix Arabic text handling.

- QLibraryInfo
        Fixed location of qt.conf in Mac OS X bundles.

- QMacStyle
        Improvements to rendering accuracy of comboboxes, tab bars,
        workspace windows, tool buttons, and push buttons.
        Fixed incorrect drawing of scrollbars with "inverted
        appearance".
        Fixed font-related crash for applications configured to
        use the standard desktop settings.

- QMenu
        Improved menu bar handling on navigation dialogs.

- QMenuBar
        Improved menu bar hiding/wrapping behavior.

- QPaintDevice
        Removed byte order assumptions.

- QPaintEngine
        Improved brush handling, clipping, masking, and tiling
        operations.

- QPixmap
        Improvements to pixmap copying and conversion, masking, and
        alpha channel handling.
        Removed byte order assumptions.

- QPrintEngine
        Made color printing the default behavior.

- QSettings
        Sync the application's setting on construction of a
        QSettings object.

- QSysInfo
        Included enum values for Mac OS X codenames in the
        MacVersion version enum.

- QWidget
        Improved mouse event handling.
        Improved interoperability between modal widgets.


Tools
-----

- uic3
        Fixed class name handling when used in "-convert" mode.
        Fixed vertical space issues with .ui files converted from
        Qt 3 to Qt 4.
        Improved support for Qt3Support widgets.
        Improved support for deprecated enums.
        Added a generator for dependencies in Qt 3 .ui files.

- rcc
        Added better error reporting.

- uic
        Added code generation for tab attributes.
        Fixed text codec handling.
        Used UTF-8 as the default enconding in .ui files.
        Fixed code generation for QWizard.


Documentation
-------------

Porting:

Removed QMovie from the list of implicitly shared classes that were
previously explicitly shared.

Added .ui porting document to the 4.0.1 documentation.

Added sections about QHBox, QVBox, and QGrid to the porting guide.

Added QImageIO and QMovie to the porting guide.

Added QRegExp and some QDir functions to the porting guide.

Added QObject::objectTrees() to the porting guide.

Added QPopupMenu to the porting guide.


General:

Fix documentation of amortized container behavior.

Added information about using specific compilers to build Qt.

Removed QtMotif documentation because it is now part of Qt Solutions.

Clarify parent-child relationship within QThreads.

Documented potential file name clashes when using precompiled headers.

Added a Windows XP gallery.

Added pages to contain lists of classes for each Commercial Edition.

Reintroduced the QAssistantClient documentation as part of the
QtAssistant module.

Added missing Qt Designer API documentation.

- QApplication
        Documented correct use of QApplication::setStyle().

- QComboBox
        Made removeItem() and setRootModelIndex() visible in the
        documentation.

- QMetaObject
        Added missing documentation for QGenericArgument and
        QGenericReturnArgument, making them visible in the
        documentation, but not recommended for casual use.

- QPainter
        Make QPainter::setRedirected() visible and fix its
        description.

- QSqlDatabase
        Document what happens when passing an existing connection
        name to addDatabase().