Qt 3.3.5 is a bug-fix release. It maintains both forward and backward compatibility (source and binary) with Qt 3.3.4, Qt 3.3.3, Qt 3.3.2, Qt 3.3.1 and Qt 3.3.0. **************************************************************************** * General * **************************************************************************** Platforms --------- - Qt now supports Mac OS X 10.4 (Tiger) Compilers --------- - Added support for VS 2005 - Added support for GCC 4 Windows Installer ----------------- - The environment variables no longer contain invalid paths. - The user is warned if QTDIR is not set and the evaluation edition is already installed, to avoid conflicts between the two packages. - A bug was fixed where a '\0' was appended to the end of a path. - Fixed the dependencies for image formats and styles. Qt Designer ----------- - Fixed a problem with long string literals on certain Visual Studio C++ compilers. - UIC now uses the include hints from the .ui file when generating source files. - The "paste" action is now enabled and disabled correctly. - QWidgetFactory::supportsWidget() now returns true for QSplitter. - Parse files with more than one '.' in the file name correctly. - The project name is now displayed correctly also when the project is created in a root directory. - Fixed a bug where Windows end-of-line terminators would be included in string literals, which broke translation. - Several crashes were fixed related to cutting/copying/pasting menu items. - Fixed some problems with designer generating corrupted pro files. - A crash was fixed for when designer loads a pro file with the same file listed more than once. - The action editor is now closed when there is no main window form. - Stability fixes Qt Linguist ----------- - lupdate now understands strings longer than 16384 characters. - Fixed escaping bugs for string that contain both ampersands and double quotes. Qt Assistant ------------ - When printing, assistant now always uses the Active color group. - Fixed a rendering bug for paragraphs that start with a line break. - Support for setting the documentation root path, allowing documentation files to be moved. - When opening a link in a new window, assistant will now properly scroll to the correct anchor after the window has been shown. - Fixed full text search for documents not listed in the 'ref' attribute of the
tag in the current .adp file. - The state of the forward/backward buttons now work properly when the tabs are changed. **************************************************************************** * Library * **************************************************************************** General Fixes ------------- Added security patches for zlib: CAN-2005-1849, CAN-2005-2096 The FreeType library was upgraded from version 2.0.9 to 2.1.9 - Build system Improved build keys for gcc 4 compilers, so plugins no longer need rebuilding after upgrading gcc to a new patch release. - QCanvas Fixed wrong text scaling and cut-off text. Fixed drawing with a brush when double buffering is enabled. - QCommonStyle Fixed the appearance of QSlider after setBackgroundOrigin has been called. Fixed an overflow in calculating the handle position for QScrollBar. - QCString Fixed a crash in qUncompress() if the resulting QByteArray was too large to fit in memory. Fixed potential security problems by using vsnprintf() instead of the less secure vsprintf(). - QDataStream Fixed a data corruption bug when using stream version Qt_3_1 and using operator<<(qint64). - QDateTime Fixed QDateTime::secsTo() when crossing daylight savings hours boundaries. - QDockWindow Undocked windows now remember their size also if the user changes it. - QDom The default constructor for QDocDocument now creates an empty document that can be used to create elements. A warning is now displayed when trying to construct or save an invalid document. Characters that are not allowed in XML are now escaped properly when saving. - QFileDialog Shortcuts now show the icons of what they point to. Entry sorting is now locale-aware, as opposed to sorting based on Unicode order. You can now select files by pressing 'enter' when using QFileDialog::getOpenFileNames(). Fixed a missing repaint in contents preview after selecting a file, then a directory, then the same file again. dirPath() no longer chops off the last directory in a path. - QGVector Fixed a bug that caused a memory leak and data corruption if resize() failed. - QHeader The header text is now rendered correctly next to the icon in reverse layout mode. - QImage Fixed comparison of images with alpha data, but with the alpha channel disabled. - QKeySequence Key sequences that ended with a ',' now work properly. - QLineEdit Fixed the behavior of the delete key on the keypad. Fixed support for transparent line edits. Fixed a crash when opening the context menu in a QTextEdit subclass that returns 0 for createPopupMenu(). - QListBox Fixed a crash when removing the current item while selecting items with a rubberband. - QListView Fixed the behavior of the Home and End keys when QListView contains disabled and hidden items. Fixed a problem with the QListView::...Clicked() signals were emitted also when the root decorated section was not in the left-most column. HTML control characters in QListView's tool tip text are now escaped properly. sortChildren() now also sorts children of items with no siblings. Fixed a missing redraw after removing columns. contentsWidth() now returns the correct value after setContentsWidth() has been called. Fixed a crash after a sequence of deleting and selecting items. Fixed the size of headers with multi-line text. Fixed a lock-up and possible crash caused by an internal state restore on controllers with no children. Fixed keyboard navigation when jumping to entries by pressing the key for the first character in the text of an item. - QLocale Fixed support for NaN, which failed on certain compilers. Passing Q_LLONG to toString() now properly includes the group symbols. Fixed locale detection when locale environment variables are not set. Added workarounds for compiler optimization bugs when parsing doubles. - QLocalFS Fixed a crash when canceling a QUrlOperator transfer before completion. - QMenuData Fixed a crash when closing an MDI application while the menu bar has Alt-focus. - QMessageBox Message boxes now work correctly in right-to-left mode. - QPaintDevice Fixed drawing errors when using bitBlt() on a printer. - QPainter Fixed drawing of rectangles with a negative (or 0) width. - QPopupMenu The height of new columns is now initialized properly when menu items are shown in multiple columns. - QProcess Close socket connections properly when a process is created after creating the socket connection. - QPSPrinter Generate PS font names correctly. - QPushButton Fixed a crash caused by deleting the button while the popup menu is shown. - QRichText Tab stops are now adjusted correctly when printing in high resolution mode. Reduced the number of memory allocations when deleting large blocks of text. Fixed parsing of hexadecimal HTML entities Fixed a bug where the font changed after calling setText() repeatedly. - QScriptEngine Fixed an issue with shaping of Hebrew text, which lead to layout problems in QTextLayout. Fixed rendering of Hebrew text with punctuation. Fixed bugs in Gurmukhi shaping. - QScrollView Fixed the size hint when scrollbars are set to be permanently on. Fixed a drawing error seen on certain graphics drivers when a scroll view spans multiple screens. Fixed a bug where wheel events' horizontal/vertical status were not forwarded to viewportWheelEvent(). Fixed a crash when mouse wheel events were sent to a scroll view with disabled scroll bars. - QSettings Fixed a bug when comparing keys with common prefixes. - QSGIStyle Fixed the size of QComboBox. - QSizeGrip Fixed a bug that caused the window to move when resizing to the minimum size using the size grip. - QSocketDevice Improved error reporting when the connection is unexpectedly closed. Fixed a bug where the socket would be closed if 0 was passed as maxlen to readBlock(). - QString Fixed a lock-up in QString::section(). Let replace() behave as documented when the index is larger than the length of the string. - QTable Fixed positioning of QComboTableItems that span several rows. - QTextCodec Fixed occasional crash in fromUnicode(). Fixed Big5 support to comply with the standards. - QTextEdit Fixed bug in undo/redo history when input methods are used. Fixed a crash caused by inserting text with an input method during a focus change. Fixed the behavior of the delete key on the keypad. Fixed setMaxLogLines() when there are already too many lines. Fixed crash when clearing a QTextEdit when the IME is active. Fixed crash when the text edit is deleted while dragging text. - QTextLayout Fixed layout of lines that are too long and do not contain a possible break point. - QTimeEdit Fixed several issues with stepUp() and stepDown(). - QToolButton Fixed a crash when assigning a tooltip to a tool button which does not have QMainWindow as an ancestor. - QToolTip Fixed an occasional crash. - QTranslator Fixed a bug when calling messages() before tr() when using compressed .qm files. - QUrlOperator Fixed a crash when accessing invalid paths on an FTP server using QFileDialog. Fixed a bug where the source would be removed if the source and destination were the same. - QVariant Fixed a memory leak in clear(). - QWidget Fixed excessive flicker when reparenting a widget that has tool windows. - QWorkspace Fixed flickering when switching between maximized windows. Fixed a lock-up when modal dialogs were created with QWorkspace as parent. Fixed a bug where modeless dialogs with QWorkspace as parent would be drawn with no title bar. - SQL, DB2 driver Compile fixes. Fixed a bug where QSqlCursor::insert() would fail to insert two blob fields at the same time. - SQL, MySQL driver Fixed a crash when using empty database names. - SQL, Oracle driver Fixed truncation of numeric data types to 22 digits. Fixed UTF-8 support by ensuring that there is enough space to store the text. - SQL, ODBC driver Fixed problems with sorting and comparing strings larger than 8192 characters. - SQl, PostgreSQL driver Temporary tables are now only visible for the connection that created them. - SQL, TDS driver Fixed problems with compiling the plugin with later versions of the TDS library. - SVG support Fixed support for SVG viewbox. Added basic support for stroke-dasharray. Platform-Specific Issues ------------------------ Windows: - ActiveQt Unrelated types are no longer converted. The control container is now only reset if the CLSID changes. Fixed a bug where QAxObject::clear() did not reset the metaobject when it was cached. Fixed a memory leak. Fixed a bug that caused flicker when navigating away from a page embedding a control. The VARIANT out-parameters in signals now map to "QVariant &" and not "const QVariant &". Signal parameters of type "bool" are marshalled to the bool slot also when the control sends an integer parameter. - Drag & drop Fixed a bug with sending single-color pixmaps. Fixed a crash caused by reading a drag object after it has been deleted (before the drop event). Dragged pixmaps are now cleaned up before drawn to avoid problems with broken alpha values and resetting masked pixels. - QApplication Fixed a lockup caused by showing a dialog while resizing a window. QWidget::grabKeyboard() now also grabs the menu button. Fixed a bug where mouse events were sent to the wrong widget after calling QEventLoop::processEvents() with ExcludeUserInput. Windows Server 2003 can now also use the Windows XP style. Fixed a memory leak in QEventLoop. - QColor Fixed failed initialization of the Qt colors (e.g., Qt::red) when using the MinGW compiler. - QFile Fixed a bug where a read error was not handled properly. - QFileInfo permission() now uses the correct file name on Windows 9x. - QFontDataBase Added support for scalable fonts. - QFontEngine Fixed a problem with symbol fonts. Fixed support for user defined characters. - QLibrary Fixed the directory separators. Fixed some library loading errors. - QLocale The locale() function now returns the correct ISO name instead of a number. - QNPWidget (NPAPI) Fixed a bug where the widget was not clipped properly by the browser. - QPainter Fixed a bug where QPainter failed to fill ellipses of size 2x2. Fixed a potential lock-up after failed GDI allocations. - QPrinter Rich text tables are now printed correctly when the table spans pages. Fixed text printing errors on page 2 and out caused by the background mode being reset to OPAQUE. - QProcess The directory separators for the current working directory are now converted properly, so that a UNC path can be used on Windows. - QTranslator Fixed an issue with isReadable() on NTFS. - QWindowsXPStyle XP style now works when compiled as a plugin. Fixed menu bar placement. Fixed a bug in setting the background color of QTabWidget. Fixed the position of the size grip in large QSizeGrip widgets. QGroupBox now uses the correct colors. - QWorkspace Fixed bug where hidden windows would be shown after restoring from maximized mode. - qmake The Makefile generator now only searches for the latest version of the Qt library, as opposed to searching all libraries. Dependency checking for pre-compiled headers were fixed. Fixed support for listing .pro files in SUBDIRS in subdir .pro files. Fixed support for multiple -L and -I entries in QMAKE_LIBS. Mac: - Build system When using Xcode, the optimization level is set to 0 in debug mode. Added support for Xcode 2.1 and up. Fixed copying of target files when DESTDIR is set. - Drag & drop Fixed a crash when deleting the drag object before dropping. - QApplication The default font is now only set if the user has not set one. Fixed a problem where popup menus would not go away after releasing the mouse button outside the popup. Added support for dual axis mouse wheels. Fixed a bug in tablet identification. Added support for tablet erasers. Fixed a deadlock in postEvent() when there was contention for a wakeup. Fixed a crash when switching displays at the same time as QApplication is destroyed. Stability fixes. - QColorDialog Fixed modality support. - QFileDialog Let the file dialog remember the previous directory. Fixed keyboard navigation when jumping to entries using the first letter of a file name. Fixed a memory leak. - QFontDatabase Fall back to the "Geneva" font, which is guaranteed to be available, instead of "Helvetica". - QFontEngine Fixed a memory leak. Fixed rendering of glyphs that modify previous glyphs, including Indic text. - QMacStyle Title bars are now shown as deactivated when the window is deactivated. Fixed a bug where buttons in button groups inside a container would look like they were pressed. Fixed a crash caused by drawing onto a non-pixmap background. Fixed the width of QComboBox. Improved drawing of size grips. Improved drawing of sliders, and made QSlider slightly wider by default. - QMenuBar Fixed a lockup caused by menu items ending with an '&'. Menu items with disabled popups are now also disabled. - QMessageBox The resize handle is now shown. - QPainter Fixed double transformation of ellipses with a transformed width or height of 1. - QPixmap Fixed a crash when loading a cursor from an embedded image. The color depth is now set properly when converting a QBitmap. - QPrinter Fixed a crash when using bitBlt() to copy a QBitmap onto a printer. - QProcess Fixed support for launching bundles. - QPushButton Icons are now drawn properly. - QTextBrowser Fixed a bug where a text browser popup triggered by a hyperlink would pop up again when the user clicks inside the first popup. - QToolButton Fixed a painting problem when the button was pressed. - QWidget Menubar popups no longer steal focus from QTextEdit. Fixed collapsing of windows with no title bar decorations. Several window activation bugs have been fixed. Fixed a bug where modal dialogs would be modal to its own children. Fixed tablet support for multiple screens. Fixed a memory leak. X11: - Build system Removed aliasing/redefinitions of the 'which' command to fix failures in the configure script on certain Unix systems. Added some missing flags for the yacc tool on 64-bit Linux. The -fn application command line option, which selects the default application font, works again. Fixed copying of target files when DESTDIR is set. - Drag and drop Fixed a crash in the dragging application when the drop target crashes. Fixed a bug in finding the widget under the cursor while dragging. Some problems were fixed with the internal timestamp in the drop event. - OpenGL Fixed colors when rendering using glColor() onto an 8 bit pixmap. - QApplication Support the F11 and F12 keys on Sun keyboards. - QCanvasView Support multiple shared views of a single canvas on multiple X11 screens. - QClipboard Fixed a rare crash related to cut & paste with the Motif extension. - QFontDatabase Fixed a bug where QFontInfo would return an empty family and point size after trying to select a font that was not installed on the system. - QFontEngine Fixed a bug where scaling italic fonts would sometimes cut overhangs. - QInputContext Fixed a bug that led to a corrupted display in QLineEdit and QTextEdit when using Japanese input methods with very long input selections. - QPainter Fixed a crash when setting a pen on an inactive painter. - QPrinter Fixed printing on Tru64 by removing the -o argument to the lp command. - QScriptEngine Added support for Khmer fonts. Fixed shaping of Telugu text. Fixed a crash when scaling Japanese XLFD fonts by a factor of 1000. Embedded: - QApplication Fixed a memory leak. - VNC driver Fixed a memory leak. - QWidget Fixed a potential crash when reparenting widgets.