1Qt 3.0.1 is a bugfix release. It maintains both forward and backward
2compatibility (source and binary) with Qt 3.0.0
3
4
5****************************************************************************
6*			    General					   *
7****************************************************************************
8
9- Style Engine fixes
10	Qt 3.0 introduced a new and more flexibile style engine. This
11	release should fix most of the small visual flaws that the new
12	styles introduced. It also greatly improves appearance in
13	right-to-left mode.
14
15- MS-Windows XP
16	This is the first release to fully support Windows XP,
17	including the new themable GUI styles.
18	The Windows XP style can only be built as a plugin, which requires
19	Qt to be configured as a shared library. To build the plugin
20	you must install a Microsoft Platform SDK for October 2001
21	or later. Your INCLUDE and LIB environment variables must
22	point to the respective directories in the SDK installation.
23
24- Reverse (right-to-left) layouts
25	Many classes have improved support for right-to-left layouts.
26
27- Compile fixes
28	Solaris 7 Intel, g++ version 2.8.1.
29
30- Documentation updates
31	Some new and improved diagrams and minor textual revisions.
32
33- Mac only: Drag'n'drop
34	Mac only: QDropEvents can decode HFS flavors.
35
36- X11 only: Multi-head (multi-screen) improvements
37	Support for different TrueColor depths on each head (screen).
38	Drag'n'drop support across multiple screens. Tooltips always
39	stay on the correct screen. Improved OpenGL support on
40	multiple screens. Qt 3.1 will support different color depths
41	on every screen (e.g. one TrueColor screen, one 8-bit
42	PseudoColor and one 8-bit GreyScale).
43
44
45****************************************************************************
46*			   Library					   *
47****************************************************************************
48
49- QAction
50	Fixed a memory leak in conjunction with action accelerators.
51	Turn toggle actions off when toggling is turned off with
52	setToggleAction(FALSE);
53
54- QApplication
55	Shared double buffers are cleaned up on destruction.
56	Creating and using multiple QApplications in the same process
57	is supported.
58	- Solaris only: Default to the Interface System font (which is
59	  the default for the CDE)
60	- Win32 only: When WM_QUERYENDSESSION is received, _flushall
61	  is called to ensure that all open streams and buffers are
62	  flushed to disk (or to OS's buffers).
63	  Better support for more input methods (e.g. Chinese).
64	  Enter events are not propagated to modally blocked widgets.
65	  Key_BackTab events are generated rather than Shift+Key_Tab.
66	  Floating toolbars are blocked when the application is modal.
67	  Move and Resize are disabled in the system menu for
68	  maximized toplevel windows
69	- WinXP only: WM_THEMECHANGED messages are handled; widgets
70	  are repolished with the appropriate style.
71	- X11 only: Removed misleading warning message for main
72	  widgets on heads (screens) other than the default head.
73	  Input context: Solved a memory leak in Xlib, and saved a
74	  server round trip when updating the microfocushint.
75	  Worked around some broken XmbLookupString implementations
76	  that do not report buffer overflows correctly.
77	  Key events are never given to a widget after clearFocus()
78	  has been called for that widget; this is the same behavior
79	  as Windows.
80
81- QAquaStyle (MacOS X only)
82	More optimizations and several minor visual bugs fixed.
83
84- QCanvas
85	Erase any exposed empty space when shrinking the canvas.
86
87- QCanvasPixmapArray
88	Initialize the framecount to 0.
89
90- QCanvasView
91	Optimize background pixmaps: potentially they were drawn
92	twice, first untranslated then translated.
93
94- QClipboard (X11 only)
95	The race conditions that cause KDE to lock-up occasionally
96	should now be fixed.
97
98- QComboBox
99	Fixed behavior with non-selectable items. Fixed a crash when
100	calling setCurrentItem(-1). Fixed autoscrolling when dragging
101	the mouse directly after opening the dropdown.
102
103- QColor
104	Make invalid named colors return a non-valid QColor (as
105	documented).
106
107- QColorDialog (Win32 only)
108	Use WStyle_DialogBorder, since resizing this dialog does not
109	make much sense.
110
111- QCommonStyle
112	Respect QApplication::globalStrut() in scroll bars. Support
113	reverse layout in QTitleBar.
114
115- QCursor
116	Safer cleanup of cursor shapes (avoids possible free'd memory
117	read)
118	- Win32 only: fixed application override cursor with mouse
119	  grabbing.
120
121- QDate
122	Fixed some possible overflows.
123	- Win32 only: Improve locale support for short day and month
124	  names etc. Initialize milliseconds correctly.
125
126- QDateTimeEdit
127	Display AM/PM if set by locale. Improved sizeHint().
128
129- QDockAarea
130	More reliable sizeHint(). Better support for reverse layouts.
131
132- QDockWindow
133	Emit the placeChange() signal more reliably. Avoid floating
134	docks popping up everywhere before they have been positioned
135	and laid out.
136
137- QDesktopWidget
138	- X11 only: When using normal dualhead (not Xinerama), make
139	  sure we report the correct screen number.
140	- Win32 only: refresh on WM_DISPLAYCHANGE.
141
142- QFrame
143	New panel styles LineEditPanel and TabWidgetPanel. This was
144	required by the new for Windows XP support.
145
146- QFileDialog
147	Show unicode filenames to the user rather than encoded ASCII
148	(e.g. previously latin1 characters were shown as "%XX"
149	escapes).
150	Fixed multiple-selection of FTP files.
151	Emit signal fileHighlighted in existingfile mode.
152	- Mac only: Fixed existingFolder(). Fixed window position so
153	  that it will never fall outside the screen.
154	- Win32 only: since files, directories and drives are not case
155	  sensitive, we don't add an extra entry in the paths box if
156	  the path already exists but with different case.
157
158- QFileInfo (Unix only)
159	Make sure that symlinks pointing to invalid/non-existing
160	targets are reported as symlinks.
161
162- QFont
163	Ensure a rounded-off value is returned from pointSize().
164	- x11 only: improved line width calculation. Fixed off by one
165	  error in interpreting Xft font extents. Allow the use of
166	  both Xft and non Xft fonts in the same application. Make
167	  sure fonts are antialiased by default when using
168	  xftfreetype.
169
170- QFontDialog
171	Prevent re-laying out when the size of the preview label
172	changes.
173
174- QFtp
175	In parseDir(), do not compare English month names to
176	shortMonthName(), since the latter is localized.
177
178- QGList
179	Make self-assignments work.
180
181- QGLWidget
182	Fixed ARGB to RGBA conversion on BigEndian systems.
183	- Win32 only: fixed colormap for 8-bit RGBA GL mode.
184	- X11 only: multiple heads with different color depths fixes.
185
186- QHebrewCodec
187	Assume the bidi algorithm is a reversible operation for the
188	visual 8859-8 codec. This is not true for very complex strings
189	but should hold in most cases.
190
191- QIconSet
192	Fixed detach() to really detach the internal pixmaps. In case
193	no image formats are installed, show black pixmaps rather than
194	ASSERT.
195
196- QImage
197	Allow 16-bit DIBs. Allow > 32767 level PNMs.
198	Fixed smoothscale() for the following bug: whenever
199	(new_width / original_width * 4096) is not an integer the last
200	column of the scaled image is black.
201
202- QImageIO
203	Fixed plugin loading in cases where the image format is
204	explicitly defined.
205
206- QInputDialog
207	Disable the OK button when input is not Acceptable.
208	(See QValidator.)
209
210- QLabel
211	When showing rich text with tables (via QSimpleRichtext),
212	avoid drawing the table background.
213
214- QLayout
215	In reverse layout mode: fix off by one error when laying out
216	right to left or bottom to top.
217
218- QLineEdit
219	Fixed offset calculation for horizontal scrolling. Invoke
220	validator when the user presses Backspace or
221	Delete. Compression of the undo/redo stack fixed. Security: do
222	not reveal the position of spaces with Ctrl+RightArrow or
223	Ctrl+LeftArrow in password mode.
224
225- QListBox
226	Append items at the proper position even after sorting the
227	content. Made QWidget::setBackgroundMode() work correctly.
228
229- QListBoxPixmap
230	Use the function pixmap() when drawing the pixmap, so users
231	can reimplement QListBoxPixmap::pixmap().
232
233- QListView
234	Fix misalignment of checkbox click zone. Make the selected and
235	focus rectangles cover the entire column for QCheckListItems
236	if the listview root is not decorated. Make
237	QWidget::setBackgroundMode() on the viewport work correctly.
238	Comply with user interface guidelines: clear the selection
239	when a click is in an empty area unless the Ctrl key is down.
240	Fixed possible crash when starting a rename with a double
241	click. Smarter ensureItemVisible(). Draw listview background
242	in paintEmptyArea() with the current style. Ensure the
243	listview always has a current item.
244
245- QMainWindow
246	Better laying out of dockareas when they are all empty.
247	Otherwise an empty QMainWindow looks unappealing in a
248	workspace. Maintain the toplevel layout's resize mode.
249
250- QMessageBox
251	Avoid double deletion if the parent is destroyed while the
252	messagebox is open. Support y/n/c shortcuts without needing
253	the Alt key modifier.
254
255- QMovie
256	Allow pause() and restart() with MNG.
257
258- QMultiLineEdit
259	Remove internal trailing space when returning a textline with
260	textLine(int) and querying lineLength(int).
261
262- QPainter
263	The boundingRect() should now work properly for the
264	combination richtext, right-aligned and an empty initial rect.
265	Handle DontClip-flag in the painter's complex drawText()
266	function. Reset the cached composition matrix (and inverse)
267	when reinitialising a painter.
268
269- QPicture
270	Fixed the loading of binaries from older Qt versions.
271
272- QPixmap
273	grabWidget(): when the widget sets WRepaintNoErase it might
274	erase itself with the non-redirected QWidget::erase(); restore
275	those areas.
276	- X11 only: (with XRENDER extension) when copying a pixmap,
277	  bitBlt the entire data into the new pixmap instead of using
278	  alpha composition.
279
280- QPopupMenu
281	Fixed strange side effects with the menu effects. Support
282	minimumSize() for popups. Fixed a navigation issue where
283	Key_Right under certain circumstances was not propagated to
284	the menu bar. Speedups when disabling/enabling menu items
285	before showing them.
286	- X11 only: Fixed mouse and keyboard grabbing side effects
287	  with popup menu effects enabled.
288
289- QPrintDialog (built-in dialog)
290	Use the text in the lineedit for the file dialog.
291
292- QPrinter
293	Fixed crash when printing with incomplete combined unicode
294	fonts.
295	- Win32 only: fixed a very rare and mysterious crash.
296
297
298- QPSPrinter
299	Make sure the fontPath is read correctly by the postscript
300	driver, and the qtconfig program. Small memory leaks closed.
301	Better support for Asian printing. Limit line length of
302	Postscript DSC comments to 255 chars (as per the postscript
303	specification).
304
305-  QRichText
306	Fixed handling of &nbsp. Support both <qt title="..."> and
307	<title>. Avoid painting \n at the end of lines (these
308	sometimes appeared as an empty unicode box). Fixed find() in
309	"whole words only" mode. Fixed unicode auto alignment. Made
310	cursor movement in BiDi paragraphs compliant with MS-Windows.
311	Fixed paragraph right and center alignments when using <br>
312	tags. Fixed superscript/subscript confusion.
313
314- QScrollBar
315	Allow scrolling with modifier keys pressed.
316
317- QScrollView
318	Made autoscrolling work with drag and drop. Never generate
319	paintevents that are outside the visible area.
320
321- QSettings
322	- Unix only: search paths are valid for individual objects,
323	  NOT every object (windows behavior). When reading files,
324	  don't replace the old groups with contents of the new
325	  groups; merge them instead. Properly escape backslashes and
326	  newlines.
327	- win32 only: improved error handling. Fixed subKeyList() and
328	  entryList() for empty paths.
329
330- QSimpleRichText
331	Correctly transform clipping rectangle.
332
333- QSizeGrip
334	Reverted sizeHint() to the old size to avoid making the
335	statusbar a tiny bit too big. Support right-to-left layout.
336
337
338- QSgiStyle
339	Made the combobox arrow look nicer. Fixed disabled combobox
340	drawing.
341
342- QSlider
343	Fixed click handling for reverse layouts.
344
345- QSpinBox
346	Usability fix: when changing a value with the up/down arrow
347	keys or with the arrow buttons, select the new value.
348
349- QSplitter
350	Use the actual QSplitter pointer as documented (and not a
351	QSplitterHandle pointer) as the parameter to the
352	QStyle::sizeForContents() call. Fixed reverse layouts when
353	splitter movement is constrained.
354
355- QSqlRecord
356	Fixed double increment of the iterator in certain
357	circumstances.
358
359- QString
360	Fixed QString::setLatin1() when the length parameter is 0.
361	- Unix only: Use strcoll() in QString::localeAwareSorting().
362	- Mac only: clarify that local8Bit() is always utf8().
363
364- QStyle
365	New frame styles for tab widgets, window frames and line edit
366	controls. This was required by the new support for Windows XP.
367	Added SH_ScrollBar_StopMouseOverSlider style hint so that one can
368	turn on (or off) the ability to stop pageup/pagedown when the
369	slider hits the mouse (this is needed for Aqua on MacOS X).
370
371- QSvgDevice
372	Many fixes for saving and restoring attributes that are not
373	part of QPainter. Processing of 'tspan' elements. Now uses
374	double instead of int for internal 'path' arithmetic for
375	better scaling results. Supports QPicture's coordinate
376	transformations.
377
378- QTabBar
379	Fixed the focus rectangles and spacing with icons and label
380	texts.
381
382- QTable
383	Improved layout in right-to-left mode. Fixed adjustRow() when
384	using header items with icon sets. Do not let hidden
385	columns/rows re-appear when adjusting. Update header correctly
386	when changing a table's dimensions. Correctly reset the
387	updatesEnabled flag in sortColumn(). Fixed modifying the
388	contents of a combobox or checkbox table item while it is the
389	current cell.
390
391- QTableItem
392	Make sure an item cannot span over a table's maximum number of
393	rows and columns.
394
395- QTabWidget
396	Constrain the sizehint to avoid having oversized dialogs.
397
398- QTextCode
399	Rename iso8859-6-I to to 8859-6. The old name is still
400	supported for backwards compatibility.
401	- Win32: implemented locale().
402	- Mac: implemented locale().
403
404- QTextDrag (Win32 only)
405	Performance improvements in encodedData().
406
407- QTextEdit
408	Fixed HTML output. New property tabStopWidth. Fixed append()
409	and made it smarter: it only scrolls to the end if the view
410	was scrolled to the end before. Proper reformatting when
411	switching word wrap policies. Do not blink the cursor when the
412	textedit is disabled. Make isModified() return the new value
413	in slots connected to the modificationChanged() signal.
414	- X11 only: middle mouse selection pasting sets the cursor
415	  position.
416
417- QTextStream
418	Faster string output in latin1 mode.
419
420- QThread
421	- Unix only: initialize threads in non-GUI mode as well.
422	- Win32 only: fixed the initial value of QThread::running().
423
424- QToolButton
425	Fixed unwanted occurences of delayed popup menus.
426
427- QUrlOperator
428	Fixed the cache, so that QUrlInfo::name() is set correctly for
429	renamed files. This bug also affected QFileDialog. More
430	careful check whether a file is writable before renaming or
431	deleting it.
432
433- QValueVector
434	Make operator==() const. Fixed some sharing issues.
435
436- QVariant
437	Fixed a few memory leaks when casting complex values to simple
438	types. Faster operator==().
439
440- QWaitCondition (Win32 only)
441	Fixed wakeAll().
442
443- QWhatsThis
444	Make QWidget::customWhatsThis() work with menu accelerators.
445	Avoid infinite loops with menu effects.
446
447- QWidget
448	Fix default focus so that setTabOrder( X, Y ); setTabOrder( Y,
449	Z ); gives focus to X, not Y or Z. Closing a modal dialog with
450	a double click on a widget could result in a mouse release
451	event being delivered to the widget underneath; this has been
452	fixed.
453	Set/Reset WState_HasMouse on DragEnter/DragLeave.
454	- Win32 only: obey WPaintUnclipped. Make reparent() with 0,0
455	  positions do the requested positioning.
456	- X11 only: when reparenting widgets to/from toplevel, make
457	  sure the XdndAware property is set. Make input methods work
458	  with servers other than kinput2. More fixes for 4Dwm's
459	  incompliance with ICCCM 4.1.5 regarding geometry handling.
460	  When hiding toplevel windows, we call XFlush() to avoid
461	  having popup menus hanging around grabbing the mouse and
462	  keyboard while the application is busy. Obey the 'erase'
463	  value in repaint(const QRegion& reg, bool erase).
464
465- QWindowsStyle
466	Various visual fixes, including fixes for right-to-left
467	mode. Most significantly the light source now comes from the
468	top left also in reverse layout the same as modern versions of
469	Windows.
470
471- QWorkspace
472	Support document windows without title bars. Scroll to top
473	left corner when cascading/tiling a scrolled workspace. Define
474	a proper baseSize() for workspace children. Fix some side
475	effects with the workspace's maximize controls on Windows
476	style. Don't raise windows over scrollbars. Clients can now
477	call adjustSize() on the workspace when their sizeHint()
478	changes. When showing two scrollbars, maintain a solid corner.
479	Obey a document window's maximum size when tiling.
480
481****************************************************************************
482*			   Extensions					   *
483****************************************************************************
484
485NO CHANGES
486
487****************************************************************************
488*			      Other					   *
489****************************************************************************
490
491- qtconfig (X11 only)
492	It is now possible to turn Xft on and off, as well as turning
493	antialiasing-by-default on and off. This is necessary since
494	Xft doesn't work on dual head.
495
496- moc
497	Q_PROPERTY: Support QMap<QString, QVariant> and
498	QValueList<QVariant> as "QMap" and "QValueList". Support
499	parameters of nested template types, for example
500	QValueVector<QValueVector<double> >, as well as
501	Foo<const int>.
502
503- uic
504	Fix uic-generated code for QWizard with both "font" and
505	"titleFont" properties set. Put local includes after global
506	includes in generated files.
507
508- lupdate
509	Allow translation of menubar items generated with Qt Designer
510	(e.g. "&File", "&Edit", etc.).
511
512- libMNG
513	Updated to version 1.0.3.
514
515- libPNG
516	Updated to version 1.0.12.
517
518- Translations
519	Added Hebrew translations for Qt and the demo application.
520
521- Qt Designer
522	Support 'Ignored' size policy. Support properties of type
523	'double'. Fixed saving of custom widgets in toolbars. Various
524	smaller usability improvements.
525
526- Qt Assistant
527	When users starts Qt Assistant themselves, always make a new
528	instance. Only use the unique-instance feature when invoking
529	from Qt Designer.
530
531- QMsDev
532	Invoke Qt Linguist when opening a .ts file in Visual Studio.
533
534
535
536****************************************************************************
537*		    Qt/Embedded-specific changes		           *
538****************************************************************************
539
540NO CHANGES
541