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