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  . 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