Add warning about non-API in Qt5CTestMacros.
[profile/ivi/qtbase.git] / dist / changes-4.0.1
1 ****************************************************************************
2 *                          Important Notices                               *
3 ****************************************************************************
4
5 Meta-Object System
6 ------------------
7
8 Qt 4.0.0 introduced a change to the way type names outside the current
9 scope were handled in signals and slots declarations and connections
10 which differed from the behavior in Qt 3.x.
11
12 Unfortunately, this could lead to signal-slot connections that were
13 potentially type-unsafe. Therefore, in Qt 4.0.1 type names must be fully
14 qualified in signal-slot declarations and connections.
15
16 For example, in Qt 4.0.0, it was possible to write:
17
18     connect(socket, SIGNAL(error(SocketError)), ...);
19
20 In Qt 4.0.1, the above connection must be made in the following way:
21
22     connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), ...);
23
24
25 Library
26 -------
27
28 Support for SGI Altix has been added for both gcc and Intel icc.
29
30
31 QX11EmbedContainer and QX11EmbedWidget are now exported classes.
32
33 This change only affects developers using Qt/X11 with gcc >= 4.0 and
34 symbol visibility enabled. Applications built against Qt 4.0.1 that
35 use these classes cannot be linked against Qt 4.0.0.
36
37
38 ****************************************************************************
39 *                                Changes                                   *
40 ****************************************************************************
41
42 Qt Designer
43 -----------
44
45 Fixed crash in designer when using fonts in custom widgets that
46 don't have a point size set but use a pixel size instead.
47
48 Fixed initial positions of the form windows in the MDI mode.
49
50 Ensured that the object inspector is updated when a page is added
51 to a widget stack.
52
53 Ensured that the SDK is installed and the library symbols are
54 exported.
55
56 Fixed crash when breaking a layout after deleting all widgets within.
57
58 Fixed handling of nested action groups.
59
60 Fixed mouse handling to match user expectations on different
61 platforms.
62
63 Don't change system setting for double click interval.
64
65 Disabled the richtext editor for the "statusTip" property.
66
67 Improved widget handling, loading and saving for QFrame, QTabWidget,
68 and Q3GroupBox.
69
70 Added a platform-neutral mechanism for saving key sequences.
71
72 Used Qt's list of supported image formats rather than an incomplete
73 static list.
74
75 Provided a way for plugins to access to the layout of container
76 widgets.
77
78 Added support for editable byte arrays.
79
80
81 Qt Linguist
82 -----------
83
84 Made lupdate handle cases where the compiler converts strings using
85 a different codec to that used by lupdate.
86
87 Fixed bug in lupdate and lrelease's .pro file parser.
88
89 Fixed lupdate's octal sequence handling.
90
91 Fixed duplicate context when two contexts have the same hash value.
92
93
94 Qt 3 to 4 Porting Tool
95 ----------------------
96
97 Fixed connnect statement that did not work with the new stricter moc.
98
99 Fixed incorrect porting of enum values in switch statements.
100
101 Fixed header file name replacements in include directives.
102
103
104 Meta Object Compiler (moc)
105 --------------------------
106
107 Fixed VC6 compilation of moc generated code with namespaced
108 superclasses.
109
110 Fixed parsing of functions that throw exceptions.
111
112 Fixed compilation of moc generated code with VC6 when inheriting
113 from classes inside namespaces.
114
115 Improved the efficiency of signals with default arguments.
116
117
118 Qt Assistant
119 ------------
120
121 Fixed the document list for full text search indexing.
122
123 Fixed case sensitive completion in the find dialog combobox.
124
125 Re-enabled the "add content file" option.
126
127 Removed the "General" tab in the settings dialog.
128
129 Fixed registry key handling and deletion of cache files.
130
131 Made it possible to read titles in the tabs in assistant.
132
133 Updated the QAssistantClient documentation.
134
135 Added the QtAssistantClient headers to the other library headers
136 for installation.
137
138 Fixed full text search for phrases.
139
140
141 General Fixes
142 -------------
143
144 - Dialogs
145         Removed hard-coded margin and spacing values from built-in
146         dialogs.
147
148 - QAbstractItemModel
149         Fixed crash caused by removing an item with expanded children.
150         Added some more see also links and defined QModelIndexList.
151
152 - QAbstractItemView
153         Fixed rendering and selection issues with MultiSelection
154         mode.
155         Improved handling of persistent editors.
156         Improved performance of item insertion.
157         Improved signal handling and emission.
158
159 - QAbstractSlider
160         Ensured that no changes occur if the orientation doesn't
161         change in a call to setOrientation().
162         Introduced better keyboard control for sliders.
163         Fixed sliderPressed() and sliderReleased() signal emissions.
164
165 - QAbstractSocket
166         Fixed race condition in connectToHost().
167         Made bytesAvailable() return the unget buffer size as well
168         as the size of any pending data.
169         Made NetworkLayerProtocol non-internal.
170
171 - QAbstractSpinBox
172         Fixed problems with locale and the "." and "," separators.
173         Improved handling of extra whitespace at the beginning and
174         end of user input.
175
176 - QApplication
177         Made closeAllWindows() respect windows that reject the close
178         event.
179         Fixed crash caused by calling QApplication::setStyle()
180         before a qApp was created.
181         Improved handling of the last open window for most cases.
182         Improved event handling.
183
184 - QBezier
185         Used a new algorithm for offsetting curves.
186         Improved performance by using a more sophisticated
187         algorithm and by making QBezier a POD type.
188
189 - QBrush
190         Improved radial gradient rendering.
191
192 - QColorDialog
193         Process the return key correctly.
194
195 - QComboBox
196         Fixed behaviour of setMaxItems() to enable new items to be
197         inserted within the range allowed.
198
199 - QCommonStyle
200         Ensured that mnemonics are always shown for buttons.
201         Fixed position of right corner widget when used on its own.
202
203 - QDateTimeEdit
204         Improved the range of input allowed for numbers.
205
206 - QDial
207         Fixed valueChanged() signal emission.
208
209 - QDialog
210         Fixed Lower QSizeGrip in QDialog instead of raising it.
211
212 - QDir
213         Fixed relative path handling on Windows.
214         Reverted empty string matching behavior to match Qt 3's
215         behavior.
216         Restored API compatibility with Qt 3.
217
218 - QDirModel
219         Fixed accidental deletion of directories in read-only mode.
220
221 - QDockWidget
222         Ensured that the size of a floating dock widget is the same
223         regardless of how it was floated.
224         Reintroduced double-clicking behavior to float a dock
225         widget.
226         Fixed incorrect moving behavior for floating widgets.
227         Ensured that dock widgets display a close icon only if they
228         can be closed.
229
230 - QDockWidgetLayout
231         See QMainWindow.
232
233 - QDomNodeList
234         Fixed handling of out-of-range items.
235
236 - QDoubleSpinBox
237         Improved decimals handling and rounding behavior in
238         QDoubleSpinBox.
239
240 - QFile
241         Fixed problems with carriage return and line feed handling
242         in readLine().
243         Ensured that pos() returns the correct value if the file
244         shrinks.
245
246 - QFileDialog
247         Fixed incorrect behavior where the dialog would go to the
248         root directory if the user tried to enter a non-existent
249         directory.
250         Fixed sorting by type behavior.
251
252 - QFontDatabase
253         Fixed loading of special fonts.
254         Fixed sample characters for Chinese scripts.
255
256 - QFontDialog
257         Switched the locations of the OK and Cancel buttons.
258         Made items in the font dialog read-only.
259         Improved handling of the OK and Cancel buttons when the
260         dialog is in reverse layout mode.
261
262 - QGifHandler
263         Reintroduced GIF plugin support.
264
265 - QGridLayout
266         Improved default size handling.
267
268 - QHeaderView
269         Fixed section hiding behavior.
270         Fixed Out of bounds error and improper calculation of last
271         column.
272         Improved mouse handling and widget updating.
273         Fixed crashes caused by moving or removing sections, or by
274         updating the current section.
275         Improved signal behavior for resized or removed sections.
276
277 - QHttp
278         Fixed proxy authentication.
279         Fixed broken behavior when scheduling many requests to
280         different hosts.
281         Fixed socket object ownership issues with setSocket() that
282         could lead to a crash.
283
284 - QImage
285         Fixed smooth scaling for image formats other than RGB and
286         ARGB32.
287
288 - QImageReader
289         Fixed the default implementation of imageCount() to return a
290         valid number of images.
291
292 - QInputDialog
293         Switched the locations of the OK and Cancel buttons.
294
295 - QIODevice
296         Fixed problems with carriage return and line feed handling
297         in readLine().
298         Made bytesAvailable() return the unget buffer size as well
299         as the size of any pending data.
300         Fixed error handling when reading lines with QFile.
301         Fixed seek() behavior with regard to the unget buffer.
302
303 - QItemDelegate
304         Improved layout handling, redrawing, signal emission,
305         and mouse click behavior.
306
307 - QKeySequence
308         Fixed accidental HTML escaping of ampersands.
309
310 - QLayout
311         Print out object names in warnings.
312
313 - QLineEdit
314         Enabled textChanged() signal emission when using input
315         methods.
316         Improved return key press handling for users of the
317         returnPressed() signal.
318         Fixed context menu action handling.
319         Fixed editingFinished() signal emission behavior.
320         Fixed Ctrl-K and Ctrl-U behavior to cut text rather than
321         just deleting it.
322         Fixed line edit selection behavior to maintain any current
323         selection when the widget receives the keyboard focus.
324
325 - QListView
326         Improved handling of hidden rows.
327         Fixed rendering when used in reverse mode.
328
329 - QListWidget
330         Fixed the size policy for laying out items in the list.
331         Improved sorting performance.
332         Fixed persistent index handling when sorting.
333
334 - QMainWindow
335         Fixed problems with multiple connections from QMainWindow
336         signals to QToolBar slots.
337         Fixed dock widget handling (adding a widget to all dock
338         areas) and incorrect dock area splitting behavior that
339         could lead to crashes in QMainWindow.
340         Made QMainWindow's status bar have an "Ignored" horizontal
341         size policy.
342
343 - QMetaObject
344         Fixed meta objects that reported far too many enums.
345         Fixed the behavior of sender() to return the correct value
346         during queued activation.
347
348 - QMetaType
349         Fixed whitespace handling in template specialization.
350         Fixed missing qt_metatype_id implementation for <void *>.
351         Added more support for compilation with QT_NO_DATASTREAM.
352
353 - QMenu
354         Fixed keyboard navigation when mouse navigation is also
355         being used.
356         Fixed menu bar merging behavior.
357
358 - QMenuBar
359         Fixed Alt key navigation.
360
361 - QObject
362         Fixed incorrect exception handling.
363
364 - QPaintEngine
365         Suppressed warnings when drawing "empty" text.
366         Fixed rendering of Underline, Overline, and StrikeOut for
367         text drawn using outlines.
368
369 - QPainter
370         Improved handling of clip regions when restore() is called.
371         Improved text drawing performance.
372
373 - QPaintDevice
374         Allowed construction of QImage before QApplication.
375
376 - QPainterPath
377         Improved performance and rendering accuracy.
378
379 - QPen
380         Fixed missing detach in setWidth().
381
382 - QPixmap
383         Improved drawing speed and mask handling.
384
385 - QPlastiqueStyle
386         Improved visual feedback for scrollbar page buttons and
387         slider handle.
388         Improved Plastique style on non-XRender-enabled displays.
389
390 - QProcess
391         Fixed endless loop of signal being emitted if model dialog
392         is used in slot.
393         Made bytesAvailable() return the unget buffer size as well
394         as the size of any pending data.
395
396 - QProxyModel
397         Improved signal handling for propagated signals.
398
399 - QResource
400         Fixed Latin-1 string handling.
401         Fixed unloading of resources.
402
403 - QScrollArea
404         Fixed widget resizing so that widgets that are smaller than
405         the viewport remain visible.
406
407 - QSettings
408         Made it possible to store QImage/QPixmap settings.
409         Fixed race conditions in QSettings with INI files.
410         Improved handling of non-terminated strings in INI files.
411
412 - QSizeGrip
413         Made the Qt 3-style constructor public.
414
415 - QSpinBox
416         Fixed problems with out-of-range integers and doubles.
417
418 - QSqlQueryModel
419         Fixed integration between QSqlTableModel and MS Access.
420         Fixed signal emissions for tables with only one row.
421
422 - QSqlTableModel
423         Fixed problems with multiple record insertion.
424
425 - QStatusBar
426         Fixed status bar height without size grip.
427
428 - QTabBar
429         Fixed handling of the current page index when adding the
430         first page to QTabWidget.
431         Improved tab bar icon handling to enable icons to be updated
432         without redrawing the entire tab bar.
433
434 - QTableView
435         Improved text cursor handling and support for keyboard
436         modifiers.
437         Fixed problems with disappearing headers.
438         Disallowed selection of hidden rows and columns.
439         Fixed crashes involving empty models and tables with headers
440         but no rows or columns.
441
442 - QTableWidget
443         Improved sorting and signal emission behavior.
444
445 - QTabWidget
446         Fixed handling of the current widget to keep the tab bar
447         updated.
448
449 - QTextBrowser
450         Removed temporary visible text selection when activating
451         anchors with Shift-click.
452
453 - QTextCursor
454         Fixed selection behavior for words at the beginning of lines.
455         Fixed incorrect use of character formats when calling
456         insertFragment().
457         Fixed incorrect text insertion where line feeds and carriage
458         returns would not be transformed into Unicode block
459         separators.
460
461 - QTextDocument
462         Added support for page breaking.
463         Added support for relative font sizes.
464         Added support for <hr /> tags.
465         Fixed clipboard handling and drag and drop of text frames.
466         Fixed handling of closing HTML </center> tags.
467         Fixed crash (failing assertion) on import of nested empty
468         HTML tables.
469         Fixed data corruption in fromPlainText().
470         Corrected the handling of image tags inside anchors.
471         Fixed introduction of empty spaces or lines before and after
472         tables.
473         Fixed misrendering of some nested HTML tables with variable
474         sized columns.
475         Fixed crash in table drawing due to out-of-bounds access.
476         Added support for the pageCountChanged() signal.
477         Improved performance and size of PostScript images when
478         printing high resolution or scaled images.
479
480 - QTextEdit
481         Improved layout and selection handling.
482         Added configuration support for non-blinking cursors.
483         Improved keyboard handling.
484         Improved text insertion handling.
485
486 - QTextFormat
487         Added support for horizontal rules.
488         Improved font handling.
489
490 - QTextLayout
491         Allow line breaking at tabs.
492         Improved reporting of line widths for lines ending with a
493         QChar::LineSeparator.
494         Fixed reporting of the minimum width for layouts that have
495         NoWrap/ManualWrap as their wrap policy.
496
497 - QTextStream
498         Fixed locking behavior when reading from stdin.
499         Fixed seek() behavior.
500         Improved Latin-1 string handling.
501
502 - QTextTable
503         Improved performance and selection handling.
504
505 - QToolBar
506         Fixed toolbar resizing behavior to handle icon size changes.
507
508 - QTreeView
509         Improved handling of hidden rows, columns, and child items.
510         Fixed repainting issues with newly inserted child items
511         and selections.
512         Improved scrolling behavior.
513         Fixed crashes involving column handling and empty views.
514         Fixed sorting indicator behavior.
515
516 - QTreeWidget
517         Improved item insertion performance.
518         Fixed clone() and operator=() for QTreeWidgetItem.
519         Fixed crash when removing or deleting items with children.
520         Improved sorting performance.
521         Fixed sorting indicator behavior.
522         Fixed persistent index handling when sorting.
523
524 - QUrl
525         Improved the performance of removeDots().
526
527 - QWidget
528         Fixed problems with adding an action multiple times.
529
530 - QXmlInputSource
531         Improved heuristics for determining character encodings.
532
533 - Q3FileDialog
534         Fixed file selection handling.
535
536
537 Platform-Specific Issues
538 ------------------------
539
540 Windows:
541
542 - QApplication
543         Fixed Block modeless elements of client when ActiveX opens a
544         modal dialog
545         Enabled tablet support.
546         Improved event handling for popup widgets.
547
548 - QAxWidget
549         Support a document site only if the COM object allows proper
550         initialization with a storage.
551
552 - QFileDialog
553         Updated to use the latest native Windows dialogs.
554
555 - QProcess
556         Fixed behavior of forwarded read channels.
557
558 - QSettings
559         Fixed behavior of childKeys() with respect to the default
560         key.
561
562 - QWindowsStyle
563         Fixed menu item size.
564         Improved drawing of default push buttons.
565         Fixed rendering of sliders to correctly differentiate
566         between those in enabled and disabled states.
567
568 - QWindowsXPStyle
569         Fixed menu frame rendering.
570         Reduced the space allocate to menu items.
571
572
573 X11:
574
575 - QApplication
576         Fixed incorrect initialization of screen and resolution.
577         Improved mouse button handling.
578         Fixed handling of withdrawn windows.
579
580 - QBitmap
581         Fixed bitmap brush textures to ensure that they use the
582         correct color with XRender.
583
584 - QFont
585         Fixed handle() to return useful values.
586
587 - QFontDatabase
588         Fixed fonts for some writing systems not being loaded on X11
589
590 - QPaintEngine
591         Fixed multi-screen support.
592         Improved performance and rendering accuracy.
593         Fixed dot-dash patterns when drawing with large pen widths.
594         Improved text rendering on exported displays.
595
596 - QWidget
597         Implemented support for window opacity.
598         Added support for widgets with 32 bit sizes.
599         Improved support for different active and inactive background
600         brushes.
601         Fixed window icons on X servers that have truecolor and
602         pseudocolor visuals with different depths.
603         Fixed text rendering on exported displays.
604
605 - QXIMInputContext
606         Fixed crash in XIM code with newer x.org libraries.
607         Fixed support for switching input method styles.
608
609 - QX11Embed
610         Exported QX11Embed (see the Important Changes section
611         above).
612         Improved handling of non-XEmbed clients.
613         Improved geometry and focus handling.
614
615
616 UNIX:
617
618 - QPageSetupDialog
619         Reduced the size of the dialog.
620
621 - QPrintDialog
622         Fixed initialization of color and grayscale radio buttons.
623
624 - QProcess
625         Fixed incorrect notification of process termination on
626         Linux kernels up to and including the 2.4 series.
627         Made QProcess emit an error() when failing to launch a
628         program.
629
630
631 Mac OS X:
632
633 - QApplication
634         Fixed widgetAt() to handle transparent widgets.
635         Handle keyboard events in the active window if no focus
636         window is available.
637         Changed wheel mouse scrolling speed to match that of
638         other applications.
639
640 - QComboBox
641         Fixed rendering of combobox frames.
642
643 - QDnD
644         Fixed URL handling.
645
646 - QClipboard
647         Fixed Junk at end of pasted text on Qt/Mac.
648
649 - QCursor
650         Fixed incorrect pixmap handling.
651
652 - QFileDialog
653         Fixed sheet modality issues to prevent the dialog from being
654         hidden behind other windows.
655
656 - QFont
657         Default to using the Geneva font.
658         Enable kerning and fix Arabic text handling.
659
660 - QLibraryInfo
661         Fixed location of qt.conf in Mac OS X bundles.
662
663 - QMacStyle
664         Improvements to rendering accuracy of comboboxes, tab bars,
665         workspace windows, tool buttons, and push buttons.
666         Fixed incorrect drawing of scrollbars with "inverted
667         appearance".
668         Fixed font-related crash for applications configured to
669         use the standard desktop settings.
670
671 - QMenu
672         Improved menu bar handling on navigation dialogs.
673
674 - QMenuBar
675         Improved menu bar hiding/wrapping behavior.
676
677 - QPaintDevice
678         Removed byte order assumptions.
679
680 - QPaintEngine
681         Improved brush handling, clipping, masking, and tiling
682         operations.
683
684 - QPixmap
685         Improvements to pixmap copying and conversion, masking, and
686         alpha channel handling.
687         Removed byte order assumptions.
688
689 - QPrintEngine
690         Made color printing the default behavior.
691
692 - QSettings
693         Sync the application's setting on construction of a
694         QSettings object.
695
696 - QSysInfo
697         Included enum values for Mac OS X codenames in the
698         MacVersion version enum.
699
700 - QWidget
701         Improved mouse event handling.
702         Improved interoperability between modal widgets.
703
704
705 Tools
706 -----
707
708 - uic3
709         Fixed class name handling when used in "-convert" mode.
710         Fixed vertical space issues with .ui files converted from
711         Qt 3 to Qt 4.
712         Improved support for Qt3Support widgets.
713         Improved support for deprecated enums.
714         Added a generator for dependencies in Qt 3 .ui files.
715
716 - rcc
717         Added better error reporting.
718
719 - uic
720         Added code generation for tab attributes.
721         Fixed text codec handling.
722         Used UTF-8 as the default enconding in .ui files.
723         Fixed code generation for QWizard.
724
725
726 Documentation
727 -------------
728
729 Porting:
730
731 Removed QMovie from the list of implicitly shared classes that were
732 previously explicitly shared.
733
734 Added .ui porting document to the 4.0.1 documentation.
735
736 Added sections about QHBox, QVBox, and QGrid to the porting guide.
737
738 Added QImageIO and QMovie to the porting guide.
739
740 Added QRegExp and some QDir functions to the porting guide.
741
742 Added QObject::objectTrees() to the porting guide.
743
744 Added QPopupMenu to the porting guide.
745
746
747 General:
748
749 Fix documentation of amortized container behavior.
750
751 Added information about using specific compilers to build Qt.
752
753 Removed QtMotif documentation because it is now part of Qt Solutions.
754
755 Clarify parent-child relationship within QThreads.
756
757 Documented potential file name clashes when using precompiled headers.
758
759 Added a Windows XP gallery.
760
761 Added pages to contain lists of classes for each Commercial Edition.
762
763 Reintroduced the QAssistantClient documentation as part of the
764 QtAssistant module.
765
766 Added missing Qt Designer API documentation.
767
768 - QApplication
769         Documented correct use of QApplication::setStyle().
770
771 - QComboBox
772         Made removeItem() and setRootModelIndex() visible in the
773         documentation.
774
775 - QMetaObject
776         Added missing documentation for QGenericArgument and
777         QGenericReturnArgument, making them visible in the
778         documentation, but not recommended for casual use.
779
780 - QPainter
781         Make QPainter::setRedirected() visible and fix its
782         description.
783
784 - QSqlDatabase
785         Document what happens when passing an existing connection
786         name to addDatabase().