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.