Invalidate old QImage data if load()/loadFromData() has failed
[profile/ivi/qtbase.git] / dist / changes-4.1.1
1 Qt 4.1.1 is a bug-fix release. It maintains both forward and backward
2 compatibility (source and binary) with Qt 4.1.0.
3
4 The Qt version 4.1 series is binary compatible with the 4.0.x series.
5 Applications compiled for 4.0 will continue to run with 4.1.
6
7 ****************************************************************************
8 *                           General                                        *
9 ****************************************************************************
10
11 Meta Object Compiler (moc)
12         Better handling of preprocessor statements in combination with
13         multi line comments.
14         Fixed problem where moc would generate meta information for
15         invalid signals/slots.
16
17 Configure / Compilation
18         Fix build of dumpcpp-dependent projects in Visual Studio 6.
19         Fixed compilation for solaris-cc-64.
20         Respect the -no-sql-mysql flag.
21         Fixed compilation with -no-qt3support on Mac OS 10.3
22         qmake now places PkgInfo in the "Contents" directory of the
23         .app bundle.
24
25 Porting (qt3to4)
26         Fixed the issue where 'int red' would be translated to
27         'Qt::red'.
28         Improved handling of macros created by moc.
29
30 Qt Designer
31         uic3: Prevent generation of invalid font tags
32         uic: Fixed bug that caused retranslateUI() to add existing
33         items in combo box once again
34         Fixed dependency problem where qtDesigner modules would depend
35         on a private class.
36         Added missing generation of setColumnCount() and setRowCount()
37         for QTableWidget.
38         Fixed a platform incompatibility when saving icon properties on
39         Windows.
40         Fixed a crash when breaking the layout in a dock widget.
41         Fixed a crash when opening a new .ui file while in "Edit Tab
42         Order" mode.
43         Fixed a crash when adding a widget to a QDockWidget.
44         Improved preview of signal/slot connections.
45         Fixed an issue where moving widgets in a form resulted in lost
46         signal/slot connections and tab order to get.
47         Fixed corruption of shortcut properties in .ui files when
48         saving under some locales.
49         Fixed preview of QComboBox with item icons.
50         Fixed an issue preventing cancellation of 'New resource file'
51         if previous resource file was deleted.
52         Fixed use of F1 as help shortcut.
53
54 Qt Assistant 
55         Fixed problem with restoring window geometry on multi screen
56         configurations.
57
58 Qt Linguist / Internationalization
59         Fixed tr() idioms, so that translation actually works.
60         Fixed encoding of translated text.
61
62 Qt Translation
63         Added translation files for Simplified Chinese.
64         Fixed a problem with lupdate parsing output from uic.
65
66 ****************************************************************************
67 *                          Library                                         *
68 ****************************************************************************
69
70 General improvements
71 --------------------
72
73 - QAbstractItemView
74         Fix selections when mouse-tracking is turned on.
75         Fixed selection issues after row resizing.
76         Fixed focus after pressing enter.
77
78 - QAbstractItemModel
79         More consistent behavior in drag-and-drop code.
80
81 - QAbstractSlider
82         Ensure changed-signals are only emitted when the value
83         actually changed.
84
85 - QAbstractSocket
86         Fixed a crash if disconnected during waitForReadyRead().
87
88 - QAccessibleWidget 
89         Fix an off-by-one navigation error in the accessibility
90         support for menu bar and menus.
91
92 - QByteArray
93         Fixed leftJustified() and rightJustified() when array contains
94         \0's.
95
96 - QComboBox
97         Fixed a crash when setting and deleting the model.
98         Fixed a crash when using a QListWidget as the view.
99
100 - QCoreApplication
101         Fixes race condition during plugin loading.
102
103 - QCommonStyle
104         Fixed wrong size hint of PM_MenuButtonIndicator.
105
106 - QDateTime
107         Fixed a regression in fromString().
108         Avoid potential hang when paring invalid date formats.
109
110 - QDialog
111         Fixed an issue where setExtension()/showExtension() didn't
112         work in a constrained size mode.
113
114 - QDir
115         cd() now fails when attempting to cd to a non-directory.
116
117 - QDirModel
118         Improved stability when appending network drives.
119         Improved stability when handling symlinks with relative paths.
120
121 - QDockWidget
122         Update toggleViewAction() when widget gets hidden with close
123         button.
124
125 - QFile
126         Changed behavior of rename() to fail if a file of the same
127         name already exists.
128
129 - QFileDialog
130         Make sure filter combo box gets enabled when changing from
131         Directory to ExistingFile mode.
132         Improve filename completion for files with the same name but
133         different extension.
134         Make sure the selection is updated when modifying the filename
135         by removing characters.
136         Allow typing in several file names in the file name line edit.
137         Improve handling of non-existent windows shares.
138         Improve handling of hidden directories.
139         Make it possible to create new folder when a folder called
140         "New Folder" already exists.
141         Improve usability by not changing the filename text when
142         directories are selected.
143         Improve usability by not autoselecting the first item when
144         changing directories.
145         Ensure that calling setDirectory() with a path shows the
146         directory when the path contains a file name.
147         Avoid unnecessary resolving of mount points, leading to
148         lockups on Unix.
149         Fixed potential crash when selecting an extension filter with
150         no matches in current directory.
151         Fixed a problem where using selectFilter() didn't update the
152         view.
153
154 - QFileInfo
155         Fixed issue where copying a QFileInfo and calling refresh()
156         could result in file info data being cleared.
157         Fixed issue where calling readLink() would resolve link
158         targets incorrectly.
159
160 - QGLWidget
161         Switching from full screen mode to normal mode no longer
162         results in incorrect window decorations.
163         Fixed overline, underline and strikethrough for text drawn
164         with renderText().
165
166 - QGridLayout 
167         Respect specified alignment over default alignment.
168
169 - QHeaderView
170         Respects dragDistance.
171         Respects TextColorRole.
172         Fixed painting problems caused by clicking both mouse buttons
173         at the same time.
174         Fixed painting flaws when using sort indicators.
175         Fixed issue where QStyleOptionHeader::End would not be set by
176         paintSection.
177         Only the left mouse button can now be used to move and resize
178         header sections.
179         Fixed incorrect header size after swapping header sections.
180         Fixed resize mode of header sections after section moves.
181         Fixed an assert when changing the selection model.
182
183 - QHash / QSet
184         Make the operator==() not take the internal order of elements
185         into account when comparing.
186
187 - QIcon
188         Fixed issue where creating QIcons with an invalid path could
189         result in a crash.
190
191 - Improved handling of focus events when using input methods.
192
193 - QInputDialog
194         Fixed handling of ampersands in labels.
195
196 - QImage
197         Fixed drawing of QBitmap's onto a QImage.
198
199 - QImageIOHandler
200         Made all supported image formats support the Size option.
201
202 - QItemSelectionModel
203         Fixed an infinite loop in isRowSelected().
204
205 - QItemDelegate
206         Better handling of QStyleOptionViewItem::Bottom.
207         Increased the delegate horizontal margin.
208
209 - QLayout
210         Warn instead of crash when adding two layouts to a widget.
211
212 - QLocale
213         Add missing entry for "nb".
214
215 - QList
216         Fixed a memory leak when repeatedly removing items from the
217         end and inserting items in the middle.
218
219 - QListView
220         Fixed an assert when using QProxyModel as the model.
221
222 - QMainWindow
223         Handle RTL layout for dockwidgets properly.
224         Make dockwidgets remember their sizes after being hidden.
225         Improved reliability when saving and restoring state.
226
227 - QMenu
228         Fixed shortcut handling of already selected submenus.
229         Fix setting the window title on torn off menus.
230         Fix bug where exec() returned the wrong QAction on some cases.
231
232 - QMenuBar
233         Improved widget placement in setCornerWidget().
234
235 - QMenuItem
236         Ensure space for both check mark and icon when using
237         QPlastiqueStyle.
238
239 - QMYSQLDriver 
240         Fix crash when formatValue() is called without connection.
241
242 - QMessageBox
243         information() now works correctly when calling it after
244         returning from QApplication::exec()
245
246 - QPaintEngine
247         Fixed an out of memory issue when drawing very long lines.
248         OpenGL : Make sure the image and pixmap cache is used.
249         OpenGL : Faster rect outlining for the most common case.
250
251 - QPrintEngine
252         Better font underlining/overlining.
253         Support PDF font embedding, resulting in smaller PDF files and
254         selectable text.
255         Made our generated PDFs readable by Ghostscript.
256         Support pens that have patterns/pixmaps for PDFs.
257         Support landscape mode for PDFs.
258
259 - QPixmap
260         Fixed issue where save() in some cases would return true on
261         failure.
262
263 - QProgressBar
264         Fix incorrect progress in some cases.
265
266 - QPushButton
267         Buttons reparented into a dialog parent through the layout are
268         now auto-default.
269
270 - QRadioButton
271         Fixed a potential crash in QRadioButton Qt 3 support
272         constructors.
273
274 - QSortFilterProxyModel
275         Improve stability when adding rows to source model.
276         Fixed issue where some nodes would show up as expandable even
277         if all it's children had been filtered.
278         Fixed a crash when deleting rows.
279
280 - QSizeGrip
281         Fixed size grip painting when maximizing a QMainWindow in a
282         QWorkspace.
283
284 - QSvgRenderer
285         Better handling of invalid files.
286
287 - QSvg
288         Improve stroking with pen width 0.
289         Fix rectangle filling bug.
290
291 - QSyntaxHighlighter
292         Fixed missing handling of blocks of text under certain
293         conditions.
294         Improved interaction with input methods.
295
296 - QScrollArea
297         Fixed an issue where the scroll area sometimes would not
298         resize to compensate for content change.
299
300 - QString
301         Fixed regression in fromLocal8Bit().
302
303 - QTextDocument
304         Support span style background-color.
305         Fix nested tables in html documents regression.
306
307 - QTextLayout
308         Added support for soft-hyphens.
309         
310 - QToolButton
311         Make popup menus appear on the correct screen.
312         Fixed ToolButtonPopupMode when QToolButton has a
313         QAction.
314
315 - QToolBar
316         Combo boxes now appears as submenus in a toolbar extension.
317         setIconSize() now works correctly.
318         Relative position within toolbars are now kept when saving and
319         restoring state.
320
321 - QTextBrowser
322         Fix missing line break after paragraph.
323         
324 - QTextEdit
325         Improve handling of the TITLE tag.
326         Fixed navigating links via tab.
327         Improved handling of malformed html.
328         Fixed rendering for tables with thead/tbody/tfoot elements.
329         Improved copy and paste of content with whitespace
330         Make undo/redo update the cursor position.
331         Fixed lost cursorPositionChanged() signal in read-only mode.
332         Fixed memory leak when calling setHtml() repeatedly.
333         Significantly improved performance when appending and editing
334         text.
335         Improved performance when selecting all text.
336         Emit copyAvailable() on mouse selection.
337
338 - QTableView
339         Fixed drawing of selections after moving columns.
340         Do not wrap to the top if Page Down is pressed.
341         Improve scrolling behavior.
342         QTableView now takes ownership of QHeaders set using
343         setHorizontalHeader()
344         Fixed issue where calling setModel(0) could result in a
345         crash.
346         
347 - QTreeView
348         Fixed scrolling-related item expand bug.
349         Improve scrolling behavior.
350         QTreeView now takes ownership of QHeaders set using
351         setHorizontalHeader()
352         Avoid crash when calling setRowHidden with no model.
353         Avoid crash when calling sizeHintForColumn() in some cases.
354         Improved performance when adding rows.
355         Fixed update of view when changing row heights.
356         Fixed a bug where calling setCurrentIndex() did not update the
357         view correctly.
358         Removed extra emit of the expanded() signal on already
359         expanded branches.
360
361 - QTreeWidget
362         Fixed tristate check item behavior.
363
364 - QTabWidget
365         Fixed bug that caused missing resize when dynamically adding
366         widgets.
367         Fixed text positioning in a tab with an icon.
368
369         
370 - QTemporaryFile
371         Fixed issue where calling open() could potentially change the
372         file name.
373
374 - QTextDocument
375         Improved stability when importing incorrectly formed html
376         tables.
377         Improved stability when importing closing tags without
378         corresponding opening tags.
379         
380 - QTextStream
381         Ensure valid codec converter state after calling seek(0).
382         Fixed issue where readAll() would not work with sequential
383         devices.
384
385 - QTabBar
386         Improve handling of tab removal.
387
388 - QUrl
389         Improve handling of hostnames containing digits.
390         Fix crash when calling hasQueryItem() on QUrl without any
391         query items.
392         Added support for parsing file names with '[' and ']'
393         characters.
394
395 - QVariant
396         Improve operator==() behavior when comparing different types.
397         The QVariant(const char *) constructor is now unavailable when
398         QT_NO_CAST_TO_ASCII is set. Otherwise, it uses
399         QString::fromAscii to convert the const char * to a Unicode
400         QString to prevent loss of information.
401
402 - QWidget
403         Fix regression in setMask().
404         Fixed issue where incorrect minimum size was reported after
405         reparenting from a top level widget.
406         Fixed return value of normalGeometry() after the widget has
407         been maximized.
408         Fixed crash on application exit if the widget was created
409         before the widget mapper is initialized.
410
411 - QXpmHandler
412         Fixed handling of non-transparent XPM images.
413
414 - XMLInputReader
415         Fixed issue where entities in XML files were not
416         resolved.
417
418 - QXmlSimpleReader
419         A significant (approx. 50x) speedup in QXmlSimpleReader when
420         parsing documents which contain internal or external entities.
421
422 - Q3DataTable
423         Drivers not supporting the QuerySize feature would display one
424         row of data too little.
425
426 - Q3IconView
427         Fixed selection appearance.
428
429 - Q3TextEdit
430         Fixed focus indicator tabbing through tables.
431         Fixed coloring when inserting text after use of setColor().
432
433 - Q3TabDialog
434         Added missing selected() signal
435
436 - Q3ListView
437         Fixed occasional crashes when deleting items.
438         Fixed wrong label after addLabel(QString()).
439
440 - Q3ScrollView
441         Fixed default focus policy for deriving classes.
442
443 - Q3ToolBar
444         Q3Action::setOn() now works correctly.
445         Adding an action now sets all action properties correctly.
446
447 - Q3ActionGroup
448         Fix drop down drawing error.
449
450 - Q3MainWindow
451         Fixed a regression in setUsesIconText().
452
453
454 Platform-Specific changes
455 -------------------------
456
457 Windows:
458
459 - QApplication
460         Timers now continue to fire when windows enters a modal event
461         loop.
462
463 - QAxServer
464         Fixed issue where updateRegistry() would report success, even
465         though the operation failed.
466         Fixed comparison of class attributes.
467
468 - QAxWidget
469         Support parameters of type short* and char* in signal/slots.
470
471 - QClipboard
472         Make sure the dataChanged() signal is emitted correctly.
473
474 - QColordialog
475         Fixed various selection issues in WindowsXP style.
476
477 - QDockWidget
478         Improve the look of title bar buttons.
479         Improved appearance of dock widget title and frame.
480
481 - QFileDialog
482         Improve handling of path names with special characters.
483         Maintain modality chain when showing a native modal inside a
484         qt modal.
485         Speedup when browsing dirs containing broken shortcuts.
486
487 - QHeaderView
488         Improved header highlighting in WindowsXP style.
489
490 - QInputDialog
491         Calling setText() also selects all text to be consistent with
492         other platforms.
493
494 - QLabel
495         Improved appearance when disabled.
496
497 - QLineEdit
498         Make QLineEdit respect the XP color scheme.
499
500 - QOpenGL
501         Added workaround for missing OpenGL sample buffers on the
502         Mobile Intel 915GM Express Chipset.
503         Fixed rendering into a QPixmap.
504
505 - QPainter
506         Improve Type 1 font rendering.
507         Improved performance of font rendering.
508         Use the standard fallback fonts for Asian languages.
509
510 - QPrinter
511         Fixed issue where the orientation for a QPrinter would be
512         ignored.
513         Fix PCL printer line drawing bug.
514
515 - QPrintDialog
516         Fix unhandled exception when a print dialog is launched from
517         within Visual Studio.
518
519 - QPrintEngine
520         Ensure correct pageRect() and paperRect() when printer
521         resolution is set manually.
522
523 - QTableView
524         Improved checkbox coloring within selections.
525
526 - QUdpSocket
527         Better handling when sending to an unbound port.
528
529 - QWidget
530         Fix setWindowOpacity() flicker.
531
532 - QWindowsXPStyle
533         Fixed QApplication::setStyle() if called before construction
534         of the application object.
535
536 - QWorkSpace
537         Improve window resizing.
538         Improve title bar and button appearance in XP style.
539         Improved focus handling.
540         Fixed update of child masks on style change.
541         Fixed restore action not being enabled on maximize and
542         minimize.
543         Fixed a potential crash in maximizeWindow().
544
545 X11:
546
547         Reintroduced qt_x11_set_global_double_buffer() for binary
548         compatibility.
549         Improved tablet event handling.
550
551 - QApplication
552         The KeypadModifier is now set when NumLock is enabled.
553
554 - QBitmap
555         Fixed text drawing errors under some fontconfig
556         settings.
557
558 - QLibrary
559         isLibrary() now returns true for .a and .so on AIX.
560
561 - qmake
562         Improved stability when modifying environment variables
563         Allow '/' as a path separator on all platforms.
564
565 - QPaintEngine
566         Fixed issue where filling and stroking ellipses could leave
567         pixel gaps.
568
569 - QPainter
570         Implemented Porter-Duff composition support.
571         Fix artifacts when drawing aliased primitives with an alpha
572         pen.
573         Fixed issue where rotating pixmaps could add a pixel row in
574         some cases.
575         Fixed drawing of arcs of less than 1 degree.
576         Made drawText() honor the Qt::TextWrapAnywhere flag.
577
578 - QPrinter
579         Fixed cleanup of child processes.
580
581 - QPrintDialog
582         Fixed problems when using "From page" and "To page" spin
583         boxes.
584         Made it impossible to choose "OK" when no printers are
585         configured.
586
587 - QProcess
588         Fixed possible deadlock when calling startDetatched().
589
590 - QScrollArea
591         Catch double click also when size exceeds window system size
592         limits.
593
594 - QTextEdit
595         Fixed an issue where the horizontal scrollbar did not show up.
596
597 - QWorkspace
598         Fixed missing mouse event propagation to child widgets.
599
600 Mac OS X:
601
602         General fixes to the drag and drop support.
603         Improved performance when resizing widgets.
604         Fixed font issues for input methods with Japanese.
605         Fixed issue with pasting Japanese text.
606         Correctly set architecture and SDKROOT when creating a Xcode
607         project.
608
609 - QCursor
610         Fix alpha pixmap cursors.
611
612 - QDesktopWidget
613         Improve stability when changing users.
614
615 - QDockWidget 
616         Improve dock widget appearance.
617
618 - QGroupBox
619         More conformant styling.
620
621 - QHeaderView
622         Fix text truncating issue on headers.
623
624 - QLabel
625         Fix labels painted incorrectly when using MacMetalStyle.
626
627 - QMenu
628         Improved menu styling.
629         Improved popup appearance.
630
631 - QPainter
632         Add support for SmoothPixmap transform.
633
634 - QPushButton
635         Make Mac style obey the icon size set by setIconSize().
636         Make sure buttons are not shown as default on inactive
637         windows.
638
639 - QPrintEngine
640         Fixed truncated PDF generation of large documents.
641
642 - QSplashScreen
643         Fix painting errors when using showMessage().
644
645 - QTextEdit
646         Fixed focus issues with Japanese input.
647         Fixed issue with pasting Unicode text between
648         applications.
649
650 - QToolBar 
651         Improve tool bar appearance.
652
653 - QTextFormat
654         Fixed a crash when setting a font's pixel size to -1.
655
656 - QWorkSpace 
657         Improve workspace children appearance.
658
659 - Q3TextEdit
660         Fixed a crash in paragraphRect() when all content had been
661         deleted.
662
663 - Q3ListViewItem
664         Fixed a infinite loop when editing an item.
665
666 Qtopia Core:
667
668         Removed flickering when mouse cursor is above an animation.
669         Optimized use of shared memory.
670         Optionally use iwmmxt intrinsics to optimize painting.
671         Added a simple example on how to calibrate touch screen mouse
672         handlers.
673
674 - Fonts
675         Handle BDF fonts without the PIXEL_SIZE property.
676         Added Chinese and Japanese fonts.
677
678 - PDF
679         Support PDF font embedding.
680
681 - qvfb
682         Fixed a crash when increasing the display size in the
683         configuration dialog.
684
685 - QPixmap
686         Implement QPixmap::grabWindow().
687
688 3rd-party libraries
689 -------------------
690
691 - FreeType
692         Fix memory leak.
693