dist/changes-3.0.1
author Alex Gilkes <alex.gilkes@nokia.com>
Mon, 11 Jan 2010 14:00:40 +0000
changeset 0 1918ee327afb
permissions -rw-r--r--
Revision: 200952

Qt 3.0.1 is a bugfix release. It maintains both forward and backward
compatibility (source and binary) with Qt 3.0.0


****************************************************************************
*			    General					   *
****************************************************************************

- Style Engine fixes
	Qt 3.0 introduced a new and more flexibile style engine. This
	release should fix most of the small visual flaws that the new
	styles introduced. It also greatly improves appearance in
	right-to-left mode.

- MS-Windows XP
	This is the first release to fully support Windows XP,
	including the new themable GUI styles.
	The Windows XP style can only be built as a plugin, which requires
	Qt to be configured as a shared library. To build the plugin
	you must install a Microsoft Platform SDK for October 2001
	or later. Your INCLUDE and LIB environment variables must
	point to the respective directories in the SDK installation.

- Reverse (right-to-left) layouts
	Many classes have improved support for right-to-left layouts.

- Compile fixes 
	Solaris 7 Intel, g++ version 2.8.1.

- Documentation updates
	Some new and improved diagrams and minor textual revisions.

- Mac only: Drag'n'drop
	Mac only: QDropEvents can decode HFS flavors.

- X11 only: Multi-head (multi-screen) improvements
	Support for different TrueColor depths on each head (screen).
	Drag'n'drop support across multiple screens. Tooltips always
	stay on the correct screen. Improved OpenGL support on
	multiple screens. Qt 3.1 will support different color depths
	on every screen (e.g. one TrueColor screen, one 8-bit
	PseudoColor and one 8-bit GreyScale).


****************************************************************************
*			   Library					   *
****************************************************************************

- QAction
	Fixed a memory leak in conjunction with action accelerators.
	Turn toggle actions off when toggling is turned off with
	setToggleAction(FALSE);

- QApplication
	Shared double buffers are cleaned up on destruction. 
	Creating and using multiple QApplications in the same process
	is supported.
	- Solaris only: Default to the Interface System font (which is
	  the default for the CDE)
	- Win32 only: When WM_QUERYENDSESSION is received, _flushall
	  is called to ensure that all open streams and buffers are
	  flushed to disk (or to OS's buffers). 
	  Better support for more input methods (e.g. Chinese). 
	  Enter events are not propagated to modally blocked widgets. 
	  Key_BackTab events are generated rather than Shift+Key_Tab.
	  Floating toolbars are blocked when the application is modal. 
	  Move and Resize are disabled in the system menu for
	  maximized toplevel windows
	- WinXP only: WM_THEMECHANGED messages are handled; widgets
	  are repolished with the appropriate style.
	- X11 only: Removed misleading warning message for main
	  widgets on heads (screens) other than the default head.
	  Input context: Solved a memory leak in Xlib, and saved a
	  server round trip when updating the microfocushint. 
	  Worked around some broken XmbLookupString implementations
	  that do not report buffer overflows correctly. 
	  Key events are never given to a widget after clearFocus()
	  has been called for that widget; this is the same behavior
	  as Windows.

- QAquaStyle (MacOS X only)
	More optimizations and several minor visual bugs fixed.

- QCanvas
	Erase any exposed empty space when shrinking the canvas.

- QCanvasPixmapArray
	Initialize the framecount to 0.

- QCanvasView
	Optimize background pixmaps: potentially they were drawn
	twice, first untranslated then translated.

- QClipboard (X11 only)
	The race conditions that cause KDE to lock-up occasionally
	should now be fixed.

- QComboBox
	Fixed behavior with non-selectable items. Fixed a crash when
	calling setCurrentItem(-1). Fixed autoscrolling when dragging
	the mouse directly after opening the dropdown.

- QColor
	Make invalid named colors return a non-valid QColor (as
	documented).

- QColorDialog (Win32 only)
	Use WStyle_DialogBorder, since resizing this dialog does not
	make much sense.

- QCommonStyle
	Respect QApplication::globalStrut() in scroll bars. Support
	reverse layout in QTitleBar.

- QCursor
	Safer cleanup of cursor shapes (avoids possible free'd memory
	read)
	- Win32 only: fixed application override cursor with mouse
	  grabbing.

- QDate
	Fixed some possible overflows.
	- Win32 only: Improve locale support for short day and month
	  names etc. Initialize milliseconds correctly.

- QDateTimeEdit
	Display AM/PM if set by locale. Improved sizeHint().

- QDockAarea
	More reliable sizeHint(). Better support for reverse layouts.

- QDockWindow
	Emit the placeChange() signal more reliably. Avoid floating
	docks popping up everywhere before they have been positioned
	and laid out.

- QDesktopWidget
	- X11 only: When using normal dualhead (not Xinerama), make
	  sure we report the correct screen number.
	- Win32 only: refresh on WM_DISPLAYCHANGE.

- QFrame
	New panel styles LineEditPanel and TabWidgetPanel. This was
	required by the new for Windows XP support.

- QFileDialog
	Show unicode filenames to the user rather than encoded ASCII
	(e.g. previously latin1 characters were shown as "%XX"
	escapes).
	Fixed multiple-selection of FTP files. 
	Emit signal fileHighlighted in existingfile mode.
	- Mac only: Fixed existingFolder(). Fixed window position so
	  that it will never fall outside the screen.
	- Win32 only: since files, directories and drives are not case
	  sensitive, we don't add an extra entry in the paths box if
	  the path already exists but with different case.

- QFileInfo (Unix only) 
	Make sure that symlinks pointing to invalid/non-existing
	targets are reported as symlinks.

- QFont
	Ensure a rounded-off value is returned from pointSize().
	- x11 only: improved line width calculation. Fixed off by one
	  error in interpreting Xft font extents. Allow the use of
	  both Xft and non Xft fonts in the same application. Make
	  sure fonts are antialiased by default when using
	  xftfreetype.

- QFontDialog
	Prevent re-laying out when the size of the preview label
	changes.

- QFtp
	In parseDir(), do not compare English month names to
	shortMonthName(), since the latter is localized.

- QGList
	Make self-assignments work.

- QGLWidget
	Fixed ARGB to RGBA conversion on BigEndian systems.
	- Win32 only: fixed colormap for 8-bit RGBA GL mode.
	- X11 only: multiple heads with different color depths fixes.

- QHebrewCodec
	Assume the bidi algorithm is a reversible operation for the
	visual 8859-8 codec. This is not true for very complex strings
	but should hold in most cases.

- QIconSet
	Fixed detach() to really detach the internal pixmaps. In case
	no image formats are installed, show black pixmaps rather than
	ASSERT.

- QImage
	Allow 16-bit DIBs. Allow > 32767 level PNMs. 
	Fixed smoothscale() for the following bug: whenever 
	(new_width / original_width * 4096) is not an integer the last
	column of the scaled image is black.

- QImageIO
	Fixed plugin loading in cases where the image format is
	explicitly defined.

- QInputDialog
	Disable the OK button when input is not Acceptable.
	(See QValidator.)

- QLabel
	When showing rich text with tables (via QSimpleRichtext),
	avoid drawing the table background.

- QLayout
	In reverse layout mode: fix off by one error when laying out
	right to left or bottom to top.

- QLineEdit
	Fixed offset calculation for horizontal scrolling. Invoke
	validator when the user presses Backspace or
	Delete. Compression of the undo/redo stack fixed. Security: do
	not reveal the position of spaces with Ctrl+RightArrow or
	Ctrl+LeftArrow in password mode.

- QListBox
	Append items at the proper position even after sorting the
	content. Made QWidget::setBackgroundMode() work correctly.

- QListBoxPixmap
	Use the function pixmap() when drawing the pixmap, so users
	can reimplement QListBoxPixmap::pixmap().

- QListView
	Fix misalignment of checkbox click zone. Make the selected and
	focus rectangles cover the entire column for QCheckListItems
	if the listview root is not decorated. Make
	QWidget::setBackgroundMode() on the viewport work correctly.
	Comply with user interface guidelines: clear the selection
	when a click is in an empty area unless the Ctrl key is down.
	Fixed possible crash when starting a rename with a double
	click. Smarter ensureItemVisible(). Draw listview background
	in paintEmptyArea() with the current style. Ensure the
	listview always has a current item.

- QMainWindow
	Better laying out of dockareas when they are all empty.
	Otherwise an empty QMainWindow looks unappealing in a
	workspace. Maintain the toplevel layout's resize mode.

- QMessageBox
	Avoid double deletion if the parent is destroyed while the
	messagebox is open. Support y/n/c shortcuts without needing
	the Alt key modifier.

- QMovie
	Allow pause() and restart() with MNG.

- QMultiLineEdit
	Remove internal trailing space when returning a textline with
	textLine(int) and querying lineLength(int).

- QPainter
	The boundingRect() should now work properly for the
	combination richtext, right-aligned and an empty initial rect.
	Handle DontClip-flag in the painter's complex drawText()
	function. Reset the cached composition matrix (and inverse)
	when reinitialising a painter.

- QPicture
	Fixed the loading of binaries from older Qt versions.

- QPixmap
	grabWidget(): when the widget sets WRepaintNoErase it might
	erase itself with the non-redirected QWidget::erase(); restore
	those areas.
	- X11 only: (with XRENDER extension) when copying a pixmap,
	  bitBlt the entire data into the new pixmap instead of using
	  alpha composition.

- QPopupMenu
	Fixed strange side effects with the menu effects. Support
	minimumSize() for popups. Fixed a navigation issue where
	Key_Right under certain circumstances was not propagated to
	the menu bar. Speedups when disabling/enabling menu items
	before showing them.
	- X11 only: Fixed mouse and keyboard grabbing side effects
	  with popup menu effects enabled.

- QPrintDialog (built-in dialog)
	Use the text in the lineedit for the file dialog.

- QPrinter
	Fixed crash when printing with incomplete combined unicode
	fonts.
	- Win32 only: fixed a very rare and mysterious crash.


- QPSPrinter
	Make sure the fontPath is read correctly by the postscript
	driver, and the qtconfig program. Small memory leaks closed.
	Better support for Asian printing. Limit line length of
	Postscript DSC comments to 255 chars (as per the postscript
	specification).

-  QRichText
	Fixed handling of &nbsp. Support both <qt title="..."> and
	<title>. Avoid painting \n at the end of lines (these
	sometimes appeared as an empty unicode box). Fixed find() in
	"whole words only" mode. Fixed unicode auto alignment. Made
	cursor movement in BiDi paragraphs compliant with MS-Windows.
	Fixed paragraph right and center alignments when using <br>
	tags. Fixed superscript/subscript confusion.

- QScrollBar
	Allow scrolling with modifier keys pressed.

- QScrollView
	Made autoscrolling work with drag and drop. Never generate
	paintevents that are outside the visible area.

- QSettings
	- Unix only: search paths are valid for individual objects,
	  NOT every object (windows behavior). When reading files,
	  don't replace the old groups with contents of the new
	  groups; merge them instead. Properly escape backslashes and
	  newlines.
	- win32 only: improved error handling. Fixed subKeyList() and
	  entryList() for empty paths.

- QSimpleRichText
	Correctly transform clipping rectangle.

- QSizeGrip
	Reverted sizeHint() to the old size to avoid making the
	statusbar a tiny bit too big. Support right-to-left layout.


- QSgiStyle
	Made the combobox arrow look nicer. Fixed disabled combobox
	drawing.

- QSlider
	Fixed click handling for reverse layouts.

- QSpinBox
	Usability fix: when changing a value with the up/down arrow
	keys or with the arrow buttons, select the new value.

- QSplitter
	Use the actual QSplitter pointer as documented (and not a
	QSplitterHandle pointer) as the parameter to the
	QStyle::sizeForContents() call. Fixed reverse layouts when
	splitter movement is constrained.

- QSqlRecord
	Fixed double increment of the iterator in certain
	circumstances.

- QString
	Fixed QString::setLatin1() when the length parameter is 0.
	- Unix only: Use strcoll() in QString::localeAwareSorting().
	- Mac only: clarify that local8Bit() is always utf8().

- QStyle
	New frame styles for tab widgets, window frames and line edit
	controls. This was required by the new support for Windows XP.
	Added SH_ScrollBar_StopMouseOverSlider style hint so that one can
	turn on (or off) the ability to stop pageup/pagedown when the
	slider hits the mouse (this is needed for Aqua on MacOS X).

- QSvgDevice
	Many fixes for saving and restoring attributes that are not
	part of QPainter. Processing of 'tspan' elements. Now uses
	double instead of int for internal 'path' arithmetic for
	better scaling results. Supports QPicture's coordinate
	transformations.

- QTabBar
	Fixed the focus rectangles and spacing with icons and label
	texts.

- QTable
	Improved layout in right-to-left mode. Fixed adjustRow() when
	using header items with icon sets. Do not let hidden
	columns/rows re-appear when adjusting. Update header correctly
	when changing a table's dimensions. Correctly reset the
	updatesEnabled flag in sortColumn(). Fixed modifying the
	contents of a combobox or checkbox table item while it is the
	current cell.

- QTableItem
	Make sure an item cannot span over a table's maximum number of
	rows and columns.

- QTabWidget
	Constrain the sizehint to avoid having oversized dialogs.

- QTextCode
	Rename iso8859-6-I to to 8859-6. The old name is still
	supported for backwards compatibility.
	- Win32: implemented locale().
	- Mac: implemented locale().

- QTextDrag (Win32 only)
	Performance improvements in encodedData().

- QTextEdit
	Fixed HTML output. New property tabStopWidth. Fixed append()
	and made it smarter: it only scrolls to the end if the view
	was scrolled to the end before. Proper reformatting when
	switching word wrap policies. Do not blink the cursor when the
	textedit is disabled. Make isModified() return the new value
	in slots connected to the modificationChanged() signal.
	- X11 only: middle mouse selection pasting sets the cursor
	  position.

- QTextStream
	Faster string output in latin1 mode.

- QThread
	- Unix only: initialize threads in non-GUI mode as well.
	- Win32 only: fixed the initial value of QThread::running().

- QToolButton
	Fixed unwanted occurences of delayed popup menus.

- QUrlOperator
	Fixed the cache, so that QUrlInfo::name() is set correctly for
	renamed files. This bug also affected QFileDialog. More
	careful check whether a file is writable before renaming or
	deleting it.

- QValueVector
	Make operator==() const. Fixed some sharing issues.

- QVariant
	Fixed a few memory leaks when casting complex values to simple
	types. Faster operator==().

- QWaitCondition (Win32 only)
	Fixed wakeAll().

- QWhatsThis
	Make QWidget::customWhatsThis() work with menu accelerators.
	Avoid infinite loops with menu effects.

- QWidget
	Fix default focus so that setTabOrder( X, Y ); setTabOrder( Y,
	Z ); gives focus to X, not Y or Z. Closing a modal dialog with
	a double click on a widget could result in a mouse release
	event being delivered to the widget underneath; this has been
	fixed.
	Set/Reset WState_HasMouse on DragEnter/DragLeave.
	- Win32 only: obey WPaintUnclipped. Make reparent() with 0,0
	  positions do the requested positioning.
	- X11 only: when reparenting widgets to/from toplevel, make
	  sure the XdndAware property is set. Make input methods work
	  with servers other than kinput2. More fixes for 4Dwm's
	  incompliance with ICCCM 4.1.5 regarding geometry handling.
	  When hiding toplevel windows, we call XFlush() to avoid
	  having popup menus hanging around grabbing the mouse and
	  keyboard while the application is busy. Obey the 'erase'
	  value in repaint(const QRegion& reg, bool erase).

- QWindowsStyle
	Various visual fixes, including fixes for right-to-left
	mode. Most significantly the light source now comes from the
	top left also in reverse layout the same as modern versions of
	Windows.

- QWorkspace
	Support document windows without title bars. Scroll to top
	left corner when cascading/tiling a scrolled workspace. Define
	a proper baseSize() for workspace children. Fix some side
	effects with the workspace's maximize controls on Windows
	style. Don't raise windows over scrollbars. Clients can now
	call adjustSize() on the workspace when their sizeHint()
	changes. When showing two scrollbars, maintain a solid corner.
	Obey a document window's maximum size when tiling.

****************************************************************************
*			   Extensions					   *
****************************************************************************

NO CHANGES

****************************************************************************
*			      Other					   *
****************************************************************************

- qtconfig (X11 only)
	It is now possible to turn Xft on and off, as well as turning
	antialiasing-by-default on and off. This is necessary since
	Xft doesn't work on dual head.

- moc
	Q_PROPERTY: Support QMap<QString, QVariant> and
	QValueList<QVariant> as "QMap" and "QValueList". Support
	parameters of nested template types, for example
	QValueVector<QValueVector<double> >, as well as
	Foo<const int>.

- uic
	Fix uic-generated code for QWizard with both "font" and
	"titleFont" properties set. Put local includes after global
	includes in generated files.

- lupdate
	Allow translation of menubar items generated with Qt Designer
	(e.g. "&File", "&Edit", etc.).

- libMNG
	Updated to version 1.0.3.

- libPNG
	Updated to version 1.0.12.

- Translations
	Added Hebrew translations for Qt and the demo application.

- Qt Designer
	Support 'Ignored' size policy. Support properties of type
	'double'. Fixed saving of custom widgets in toolbars. Various
	smaller usability improvements.

- Qt Assistant
	When users starts Qt Assistant themselves, always make a new
	instance. Only use the unique-instance feature when invoking
	from Qt Designer.

- QMsDev
	Invoke Qt Linguist when opening a .ts file in Visual Studio.



****************************************************************************
*		    Qt/Embedded-specific changes		           *
****************************************************************************

NO CHANGES