| Qt 4.6 introduces many new features and improvements as well as bugfixes |
| over the 4.5.x series. For more details, refer to the online documentation |
| included in this distribution. The documentation is also available online: |
| |
| http://qt.nokia.com/doc/4.6 |
| |
| The Qt version 4.6 series is binary compatible with the 4.5.x series. |
| Applications compiled for 4.5 will continue to run with 4.6. |
| |
| Some of the changes listed in this file include issue tracking numbers |
| corresponding to tasks in the Qt Bug Tracker, the (now obsolete) Task |
| Tracker, or the Merge Request queue of the public source repository. |
| |
| Qt Bug Tracker: http://bugreports.qt.nokia.com |
| Task Tracker: http://qt.nokia.com/developer/task-tracker |
| Merge Request: http://qt.gitorious.org |
| |
| **************************************************************************** |
| * General * |
| **************************************************************************** |
| |
| New features |
| ------------ |
| |
| - QState, QStateMachine |
| * New classes for state machine framework added to QtCore. |
| |
| - QAbstractAnimation |
| * New animation framework added to QtCore |
| |
| - QTouchEvent |
| * New class for handling multitouch events added to QtGui |
| |
| - QGesture, QGestureRecognizer |
| * New gesture framework added to QtGui |
| |
| - QMatrix4x4, QGenericMatrix, QVector2D, QVector3D, QVector4D, QQuaternion |
| * New classes to support 3D applications. |
| |
| - QGLShaderProgram, QGLShader |
| * New classes for using shader programs written in the GL Shading Language. |
| |
| - QGraphicsEffect |
| * New classes for applying graphics effects to graphics items and widgets. |
| |
| - QWebElement |
| * New class for DOM access added to QtWebKit |
| |
| - QAudioInput, QAudioOutput |
| * New audio input and output classes. |
| |
| - QAbstractVideoSurface, QVideoFrame |
| * New abstract video output classes. |
| |
| - OpenVG graphics system added. |
| |
| - Added 800x480 screen mode to qvfb configuration dialog. |
| |
| - Improved support for input methods in graphics view. |
| |
| - [MR#1742] Added new multimedia keys to the Qt::Key enum. |
| |
| - Boxes demo ported to use new 3D math and shader program classes. |
| |
| - QtTest now supports outputting XUnit XML documents, for integrating |
| with existing continuous integration systems. This is enabled by |
| running the test program with the -xunitxml option. |
| |
| - QtDBus |
| * The minimum required version of the D-Bus reference library is |
| now 0.93. |
| * Support for reading and writing of custom property types added. |
| * Support for getting return arguments in remote method invocation |
| via QMetaMethod::invokeMethod. |
| |
| - The QtScript module is now based on the 3rdparty JavaScriptCore library. It |
| is only available under the LGPL or a compatible license. |
| |
| Optimizations |
| ------------- |
| |
| - Optimized rendering strategy in QGraphicsView |
| * See list of Important Behavior Changes below |
| |
| - Improved delivery of posted events on Windows |
| |
| |
| **************************************************************************** |
| * Library * |
| **************************************************************************** |
| |
| QtCore |
| ------ |
| - QAbstractItemModel |
| * [MR#972] Added API to move items |
| * [MR#1072] Added function beginResetModel() / endResetModel() |
| |
| |
| - QByteArray |
| * New overloads for QByteArray::insert() and QByteArray::prepend(). |
| * [MR#1286] Added value_type typedef for STL compatibility |
| |
| - QEventDispatcherGlib (internal class) |
| * Fix a regression introduced in 4.5.3 that would cause timers to not |
| be delivered. |
| |
| - QEventDispatcherUNIX (internal class) |
| * Improve detection of monotonic clock support to include |
| non-POSIX.1-2001 compliant systems. |
| * [250681] Fix time change detection on UNIX systems without monotonic |
| timers. |
| |
| - QEventDispatcherWin32 (internal class) |
| * Changed the threshold for using multimedia timers to 20ms (was 10ms). |
| * Changed the way Qt's posted events are sent by the event |
| dispatcher. They are now driven on top of a Windows message |
| instead of an explicit call in processEvents(). This means that |
| posted events are sent even when a Windows modal message loop is |
| running (for example, when the user is moving a window or when a |
| native modal dialog is visible). |
| * Fixed a bug that would allow the same timer id to be used by multiple |
| QTimer instances. |
| |
| - QFile |
| * Make QFile::resize() more robust when operating on buffered files. |
| |
| - QObject |
| * [259514] fixed a possible dead-lock in the destructor. |
| * Added the possibility to pass the flag Qt::UniqueConnection to |
| QObject::connect. |
| * Fixed race conditions that occured when moving object to threads |
| while connecting. |
| |
| - QPluginLoader |
| * Improved performance of plugin loading by reusing the plugin cache |
| instead of loading it every time. |
| |
| - QProcessEnvironment |
| * New class; support for easy access to key/value pairs in the process |
| environment. |
| |
| - QRegExp |
| * New pattern syntax "QRegExp::WildcardUnix" with wildcard character |
| escaping. |
| |
| - QScopedPointer |
| * New pointer class for cleaning up objects when leaving the current |
| scope. |
| |
| - QSharedPointer |
| * Added support for creating the object along with the internal private |
| data in one single memory allocation. (QSharedPointer::create) |
| * Fixed a bug where, in a race condition, QSharedPointer could track a |
| pointer that was being deleted. |
| |
| - QTextCodec |
| * Instantiate the CP949 codec when building with -no-iconv. |
| |
| - QTextStream |
| * [221316] Fixed crash on large input. |
| * Improved reading utf8/utf16/utf32 data by correctly skipping the |
| ByteOrderMark when reading data by one character at a time. |
| |
| - QThread |
| * [249997] Document that QThread priority has no effect on Linux. |
| |
| - QUrl |
| * Made QUrl hostname parser a lot stricter, requiring compliance |
| to STD3 to validate, thus preventing invalid hostnames from |
| being accepted. See below in "Important Behavior Changes". |
| |
| - QUuid |
| * [QTBUG-3543] Fixed a bug in createUuid() which caused multiple |
| threads to generate the identical UUID sequences. |
| |
| - QVariant |
| * Many optimisations. |
| * Added QVariant::toFloat() and QVariant::toReal(). |
| * Added QVariant(float) constructor. |
| * qvariant_cast<QVariant> and QVariant::fromValue<QVariant> are now |
| identity functions. |
| * Added support for math3d types. |
| |
| - QWeakPointer |
| * Added support for tracking QObject-derived classes that aren't |
| attached to a QSharedPointer. |
| * Added QWeakPointer::data which allows you to obtain the pointer |
| being tracked (without protection). |
| * Added operator-> like the above data(), but requires a #define. |
| |
| - QXmlStreamWriter |
| * [256468] Fixed comment indentation. |
| |
| QtGui |
| ----- |
| |
| - Qt::escape |
| * Now escape the double quote ("). |
| |
| - QAbstractItemView |
| * [256502] Fixes selectionModel::hasSelection return value after |
| model::reset. |
| * [MR#1426] Fixes some issues with Shift-selection |
| * [MR#1668] New QAbstractItemView::setDefaultDropAction |
| |
| - QApplication |
| * [QTBUG-739] Removed internal widgets from QApplication::topLevelWidgets(). |
| |
| - QCalendarWidget |
| * [252943] QCalendarWidget::setDateTextFormat() reset the format if the |
| date is invalid. |
| |
| - QColumnView |
| * [246999] Fixed view not updating when the model changed dynamically. |
| |
| - QComboBox |
| * [220195] Fixed keyboard search when current index is -1. |
| |
| - QCompleter |
| * [246056] Fixed a possible assertion when setting the completer prefix. |
| |
| - QEvent |
| * Introduced RequestSoftwareInputPanel and CloseSoftwareInputPanel events. |
| |
| - QFontDialog |
| * [256466] Fixed the dialog not always returning the selected style. |
| |
| - QFontEngine |
| * [QTBUG-2354] Support certain 'Microsoft' platform symbol fonts which |
| also contain a regular unicode table for exactly the symbol range of |
| code points. |
| |
| - QFontEngineQPF |
| * Make alphaMapForGlyph() generate the correct color table for |
| Indexed8 and Mono glyph images. Fixed the "all glyphs are white |
| boxes" problem in OpenGL1 paint engine. |
| |
| - QFontMetrics |
| * [176401] Account for right bearing in bounding rect. |
| |
| - QGraphicsAnchorLayout |
| * Support for expanding size policy has been removed. (The Qt 4.6 Beta |
| had support for it). |
| |
| - QGraphicsBlurEffect |
| * Since the 4.6 Beta, Qt::RenderHint has been moved to |
| QGraphicsBlurEffect::BlurHint. |
| * Input contexts are not activated for disabled widgets anymore. |
| * [250555] Data copied from Mozilla Firefox can now be pasted correctly to |
| a Qt application. |
| |
| - QGraphicsItem |
| * Many optimizations. |
| * Fixed bug and improved accuracy of QGraphicsItem::childrenBoundingRect(). |
| * Introduced QGraphicsItem::ItemHasNoContents. |
| * Introduced QGraphicsItem::ItemSendsGeometryChanges (see Behavioral |
| Changes). |
| * Introduced QGraphicsItem::focusProxy(), focus proxy support. |
| * Introduced QGraphicsItem::ItemNegativeZStacksBehindParent. |
| * Introduced QGraphicsItem::ItemIsPanel, light-weight window support. |
| * Introduced modality support for QGraphicsItem panels. |
| * Introduced activation support. |
| * Introduced QGraphicsItem::stackBefore(). |
| * Cached items are now always invalidated when update() is called. |
| * Added input hints. |
| * Added a new set of properties to set a transformation on an item. |
| |
| - QGraphicsLayout |
| * Introduced QGraphicsLayout::addChildLayoutItem(). |
| |
| - QGraphicsObject |
| * New class; inherits QGraphicsItem and adds notification signals and |
| property declarations. |
| |
| - QGraphicsProxyWidget |
| * [251407] Fixed window flag handling. Now QGraphicsProxyWidget's flags |
| win. |
| * Fix Qt::ClickFocus policy. |
| |
| - QGraphicsScene |
| * Many optimizations. |
| * [245317] Fixes to mouse grabbing behavior. |
| * Fixed delivery of double-click events after explicit grab and then ungrab. |
| * Rewrote the internal rendering to use a recursive instead of an iterative |
| approach. |
| * Ensure hover enter events are delivered when an item is pressed. |
| * Introduced activation support. |
| * Fixed bugs in initial focus support. |
| |
| - QGraphicsTextItem |
| * Now inherits from QGraphicsObject instead. |
| |
| - QGraphicsTransform |
| * New class; eases animation of transformations for QGraphicsItem. |
| |
| - QGraphicsView |
| * Many optimizations. |
| * Fix mapToScene(QRect) to avoid extra unnecessary adjustments. |
| * Introduced QGraphicsView::isTransformed(). |
| * [QTBUG-4151] Items with parent that sets ItemClipsChildrenToShape were |
| sometimes invisible. |
| |
| - QGraphicsWidget |
| * Now inherits from QGraphicsObject instead. |
| * Interactive resizing of top level windows now respects height-for-width |
| constraints. |
| * Reduced memory footprint. |
| |
| - QHeaderView |
| * [208320] Make sure the sort indicator is taken into account for the size |
| hint. |
| * [255574] Make sure the size hint for the section depends on visible |
| sections. |
| |
| - QImageReader |
| * [255627] Fix floating point exception in |
| QImageReader::setScaledSize(QSize(0, 0)). |
| |
| - QLineEdit |
| * [248948] Clear selection when redoing a delete operation. |
| * [QTBUG-5261] Fixed bug where erasing characters from a textedit did not |
| update the text. |
| |
| - QListView |
| * [243335] Fixed the visualRect to return correct values when the widget is |
| not yet shown. |
| * [MR#666] Fixed selection with Shift-Arrow/Shift-Click in QListView's IconMode |
| |
| - QMainWindow |
| * [226060] Adding actions to a toolbar would always make the next toolbar |
| move. |
| |
| - QMenu |
| * [252610] Fixed position of the shortcut text while setting a stylesheet |
| on menu items |
| |
| - QMenuBar |
| * [260873] Fix mouse interaction while undocking a widget from the main |
| window |
| * Dock areas didn't get a splitter if their dock widgets were not |
| resizable. |
| |
| - QPaintDevice |
| * New qt_paint_device_metric() function to replace the friend declarations |
| for window surface classes that need to access metric(). |
| |
| - QPainter |
| * [QTBUG-1666] Made QPainter::drawText() respect Qt::TextDontClip flag |
| also in vertical direction. |
| * [254658] Improved clipping performance in OpenGL paint engine. |
| |
| - QPainterPath |
| * [QTBUG-1537] Fixed bug where the points of a rounded rectangle were added |
| in counter-clockwise order instead of clockwise order like other shapes. |
| |
| - QPen |
| * [QTBUG-2738] Made QPen::setDashOffset() work with non-custom dashed lines. |
| |
| - QPixmap |
| * Optimized width(), height(), isNull() and depth(). |
| * [QTBUG-2832] Fixed bug where calling fill on pixmap with active painter |
| could crash. |
| |
| - QPlainTextEdit |
| * Fixed crash when clicking on a text edit which was smaller than the |
| height of the font used. |
| |
| - QPlastiqueStyle |
| * [QTBUG-3555] Fixed a bug in the Plastique style that would cause an |
| ASSERT failure in QFont when the application font has a pixel size set. |
| |
| - QPrinter |
| * [QTBUG-4497] Removed redundant SetPen command in the postscript code when |
| reusing a QPrinter object. |
| |
| - QPrintPreviewDialog now uses a QMainWindow with a proper QToolBar, instead |
| of a plain layout. |
| |
| - QPushButton |
| * [255581] Fixed sizeHint recalculation bug. |
| |
| - QRasterPaintEngine |
| * [QTBUG-4210] Fixed bug where bitmaps were painted black instead of in pen |
| colour. |
| |
| - QRegion |
| * Minor optimizations. |
| |
| - QSortFilterProxyModel |
| * [251296] Fixed bugs in which filtered items could not be filtered. |
| |
| - QSplitter |
| * [206494] Added ability to style pressed slider with stylesheet. |
| |
| - QSpinBox |
| * [259226] Fixed setting a stylesheet on a QSpinBox to change the arrow |
| position. |
| * [255051] Fixed sizeHint update bug. |
| |
| - QStandardItemModel |
| * [255652] Fixed crash while using takeRow with a QSortFilterProxyModel. |
| |
| - QStroker |
| * [QTBUG-5212] Fixed bug where thick strokes around small shapes could |
| cause holes in the stroke. |
| |
| - QTabBar |
| * [196326] Fixed having a stylesheet on a QTabBar resulted in some tab |
| names being slightly clipped. |
| * [241383] Added ability to style the close tab button with style sheet |
| |
| - QTableView |
| * [191545] Selections work more similarly to well-known spreadsheets. |
| * [234926] Fixed sorting after changing QTableView header. |
| * [244651] [245327] [250193] [QTBUG-5062] Spans get plenty of love with |
| performance improvements, support for row/column insertioa and removal, |
| and better keyboard navigation. |
| |
| - QTableWidget |
| * [234641] Fixed takeItem to cause the view to be updated. |
| |
| - QTextDocument |
| * [207189] Support setting font size using short hand syntax in the |
| CSS "font" property. |
| * [201228] Remove implicit margin on bullet lists when exporting to HTML. |
| * [240086] Fixed bug which caused floating objects which span several |
| pages to float into the second page of the document even when it's |
| the only existing object, causing the document to contain a blank |
| first page. |
| * [240325] Even with wrap mode set to Qt::TextWordWrap, the layout |
| would sometimes break outside word boundaries when floating objects |
| affected the width available to the text. |
| * [MR#681] Added support for roman numbering for lists |
| * [MR#1753] Fixed escaping HTML attributes QTextDocument::toHtml() |
| |
| |
| - QTextLayout |
| * [QTBUG-4468] Count tabs as multiple characters when applying a fixed |
| column width. |
| * [176401] Take into account the negative right bearing of the last |
| character in an item of text if the glyph extends beyond its ascent. |
| |
| - QToolTip |
| * Fixed a bug where tooltips were not shown in popups (Windows only). |
| |
| - QTreeView |
| * [234930] Be able to use :has-children and :has-sibillings in a stylesheet. |
| * [252616] Set QStyleOptionViewItemV4::OnlyOne flag when painting spanning |
| columns. |
| * [245654] Fixed expandAll when deleting and recreating a mode for the tree. |
| * [239271] Fixed missing update when adding a row when the first column is |
| hidden. |
| * [258225] Fixed scrollTo with center and bottom. |
| |
| - QTreeWidget |
| * [253109] Shows the widget when calling setItemWidget. |
| * [MR#1393] Use stable sorting. |
| |
| - QWidget |
| * Added inputMethodHints property. |
| * [201649] Added QWidget::previousInFocusChain. |
| * [254563] Fixed a crash when setting focus in a widget tree that |
| contains invisible widgets. |
| * [QTBUG-5012] Fixed uninitialized background when using QWidget::render |
| with Qt::WA_NoSystemBackground and window opacity set. |
| |
| QtDBus |
| ------ |
| |
| - QDBusConnection |
| * Made sending of invalid/incomplete messages consistently fail with error |
| (no more assertions). |
| * [249528/QTBUG-3833] Added an overload of connect() that allows one to |
| specify strings for matching arguments. |
| |
| - QDBusServiceWatcher |
| * New class; supports efficiently watching for a service to be created, |
| deleted or to change owners. |
| |
| QtNetwork |
| --------- |
| |
| - QAbstractSocket |
| * Only disconnect from host when all bytes have been written. |
| * New setSocketOption method. |
| |
| - QHttp |
| * Do not buffer the complete POST data anymore when HTTPS is used. |
| * QHttp is now obsolete and replaced by QNetworkAccessManager. |
| |
| - QLocalServer |
| * Fix timeout when waiting for a connection on Unix. |
| |
| - QNativeSocketEngine |
| * Do not set the OS socket send and receive buffer size. The OS |
| should auto tune these values for us. |
| |
| - QNetworkAcessManager |
| * [242916] Add possibility to send HTTP DELETE requests. |
| * Connection count per HTTP server increased to 6 on Desktop, 3 on Symbian. |
| * Optional HTTP pipelining support. |
| * General HTTP performance improvements. |
| |
| - QNetworkReply |
| * [257322] Add possibility to ignore specific SSL errors. |
| * New isFinished() method. |
| |
| - QSslCertificate |
| * [251830] Fix version() and serialNumber() methods. |
| |
| - QSslSocket |
| * [257322] Add possibility to ignore specific SSL errors. |
| * Fix build with openssl 1.0.0 betas. |
| * Trigger a SSL transmission when reading from the socket. In certain |
| cases the connection stalled when a buffer limit was used. |
| |
| QtOpenGL |
| -------- |
| |
| - QGLColormap |
| * setEntry() was inserting entries instead of replacing them. |
| * Clarified documentation for isEmpty(). |
| |
| - QGLContext |
| * Fix RGB565 mode in bindTexture(). |
| * Map mipmaps work on OpenGL/ES 2.0 systems in bindTexture(). |
| * Improve performance of QGLContext::currentContext(). |
| |
| - QGLFormat |
| * Increase unit test coverage and fix some long-standing issues. |
| * Improve performance of code that tests QGLFormat options. |
| * operator==() now tests for equality on all fields. |
| |
| - QGLFramebufferObject |
| * Add support for the ARB_framebuffer_object, OES_framebuffer_object, |
| and OES_packed_depth_stencil extensions. |
| * Unbind the texture after it is initialized. |
| * Don't destroy the texture target on cleanup if one wasn't created. |
| |
| - QGLFramebufferObjectFormat |
| * New class for controlling fbo options. |
| |
| - Improvements to context sharing and object cleanup logic. |
| |
| - QGLGradientCache |
| * [249919] Clean up the gradient cache in the right context. |
| |
| - OpenGL (ES) 2.0 Paint Engine |
| * Re-written the OpenGL (ES) 2.0 Paint Engine's shader manager to use new |
| shader API and to allow custom code from E.g. Pixmap Filters to be |
| instered into the fragment "pipeline". |
| * Fixed conical gradients. |
| |
| - Added a static function, QGL::setPreferredPaintEngine(), to allow users |
| to set the preferred GL paint engine. |
| |
| - Cleaned up usage of OpenGL extensions. QtOpenGL now uses the OpenGL 2.0 |
| names of methods rather than using the EXT postfix. However, when resolving |
| extensions, QtOpenGL will also try postfixing EXT if the OpenGL 2.0 name is |
| not found. |
| |
| - Fix QGLWidget::showFullscreen() on EGL platforms. |
| |
| - Added lots of OpenGL autotests. |
| |
| QtScript |
| -------- |
| |
| - Many optimizations. |
| - Improved ECMA script compliance. |
| - New method, QScriptString::toArrayIndex(), for converting QScriptString |
| to a QtScript array index. |
| |
| QtSql |
| ----- |
| |
| - [QTBUG-3162] Views for Sql table models should not reset state on failed |
| queries. |
| - [QTBUG-5251] Fix retrieval of SQL 'TIME' information for PostgreSQL. |
| - Better error checking in case of failed query. |
| - [QTBUG-5179] Fixed floating point number truncation in qsqlpsql plugin. |
| - [QTBUG-551] Fixed Oracle batchExec using strings as out params. |
| - Updated sqlite to 3.6.19 + readded our patches. |
| - [QTBUG-3736] ODBC: Retrieved in ascii, should be stored in ascii. |
| - Fixed issue with multiple lookups to same table/field in |
| QSqlRelationalTableModel. |
| - Updated documentation of setForwardOnly. |
| - [QT-754] TDS: Fixed improper formatting of date values. |
| - TDS: Fixed missing field/table name escaping. |
| - ODBC: Fixed setForwardOnly not being reset on when the query is reset. |
| - [QTBUG-4510] Add reconnection option to the mysql driver. |
| - [222678] Fixed QSqlTableModel: trying to delete the wrong row. |
| - Interbase: Fixed crash when calling numRows on unknown query type. |
| - DB2: Don't return an error when the table is just empty. |
| - [17327] Added OCI support for synonyms to tables created by another user. |
| - [176267] Fixed mysql driver not knowing the difference between tables and |
| views. |
| - Fixed determination of end of ODBC string on deficient drivers. |
| - Added ability to open sqlite databases readonly. |
| - Fixed race condition on reopening an ODBC connection. |
| - Fixed invalid use of statics in the defaultCasing code. |
| - Fixed proper quoting under odbc. |
| - [252450 & 246125] Fixed failed queries due to MySql driver auto-preparing. |
| - QSqlDatabase now has a database level precisionPolicy. Queries now default |
| to this. |
| - Add proper iODBC linking support. |
| |
| QtSvg |
| ----- |
| |
| - QSvgHandler |
| * [245602] [204686] Fixed gradient and solid-color referencing. |
| * [202426] Made attribute inheritance work with 'use' tags. |
| * [250618] Fixed gradient on strokes. |
| * [254040] Added support for 'vector-effect'. |
| |
| - QSvgPaintEngine |
| * [257052] Changed drawImage() to ignore aspect ratio. |
| |
| QtWebKit |
| -------- |
| |
| - Many bug fixes. |
| |
| - QWebElement |
| * New class; introduced to implement DOM like operations on a web page. |
| |
| - QWebFrame |
| * New properties for an URL and a focus management. |
| * New signals delivering current loading status. |
| |
| - QWebInspector |
| * New class for embedding the WebInspector as a QWidget |
| |
| - QWebHistory |
| * Streaming operators for saving and restoring QWebHistory's state. |
| |
| - QWebPage |
| * New property; preferredContentsSize for setting layout of the page in the |
| viewport. |
| * New slot; shouldInterruptJavaScript, called when JavaScript program is |
| running too long. |
| |
| - QWebSecurityOrigin: |
| * New functions for defining local URL schemes. |
| |
| - QWebSettings |
| * New options for text encoding and off-line web application cache (HTML5). |
| |
| - QWebView |
| * Support for render hints. |
| |
| QtXml |
| ----- |
| |
| - QDomDocument |
| * Set the codec to UTF-8 if codec not present or unknown. |
| |
| QtXmlPatterns |
| ------------- |
| |
| - QXmlQuery |
| * [245219] Added QXmlQuery::setFocus(const QString &focus). |
| |
| Qt Plugins |
| ---------- |
| |
| - Tiff plugin |
| * [258526] Rotate the image if the tiff file contains an orientation tag. |
| * [254317] Add support for mono and indexed format |
| |
| Third party components |
| ---------------------- |
| |
| - Updated FreeType to version 2.3.9. |
| |
| - Updated harfbuzz to the latest version from fd.org. |
| |
| - Updated sqlite to version 3.6.19. |
| |
| - Updated libpng to version 1.2.40 |
| |
| |
| **************************************************************************** |
| * Platform Specific Changes * |
| **************************************************************************** |
| |
| - Added support for the Symbian platform with integration for the S60 |
| framework. |
| |
| - Added community supported Qt ports for QNX and VxWorks. See platform |
| notes in the Qt documentation for details. |
| |
| - Improved support for AIX using IBM's Visual Age C/C++ compiler |
| version 7 (xlC). |
| |
| - Improved support for Solaris using Sun Studio 12 (CC 5.9). |
| |
| Qt for Unix (X11 and Mac OS X) |
| ------------------------------ |
| |
| - Added support for thread-safe FD_CLOEXEC file-descriptor creation |
| where supported by the operating system (currently only Linux). |
| |
| - Ensured that system calls where EINTR is a possible result are |
| properly restarted. |
| |
| Qt for Linux/X11 |
| ---------------- |
| |
| - KDE Integration: Improved the integration into KDE desktop (loading of KDE |
| palette, usage of KColorDialog and KFileDialog) using the GuiPlatformPlugin |
| |
| - Fixed pasting the clipboard content to non-Qt application on X11 when the |
| requested format is image/ppm. |
| |
| - On X11, Qt now supports the _NET_WM_SYNC protocol. |
| |
| - On X11, Qt now supports the SAVE_TARGET protocol that allows to keep |
| clipboard contents if the application that owns the clipboards exits |
| |
| - [QTBUG-4652] On X11, clipboard content can be properly retrieved even when |
| an application asks for the unsupported target. This fixes copying and |
| pasting data when using Synergy. |
| |
| - [MR#797] Fixed a crash when using QX11EmbedContainer/Widget on x86_64. |
| |
| - [MR#1111] Emit workAreaResized when _NET_WORKAREA is changed on X11. |
| |
| - [QTBUG-3620] Fixed bug on X11 that caused bitmap fonts to become so small |
| it was unreadable when printed or presented in a print preview widget. |
| |
| - Improved EGL integration on X11 (including better visual selection). |
| |
| - Made Qt::WA_TranslucentBackground work in combination with native |
| child widgets. |
| |
| - Support Qt::WA_TranslucentBackground on top-level QGLWidgets on X11, both |
| (EGL & glX). This allows OpenGL (& ES) rendering to semi-transparent widgets |
| if a compositing window manager is running. |
| |
| - Support OpenGL texture_from_pixmap extension on X11 (EGL & glX) when |
| calling QPainter::drawPixmap() with the OpenGL paint engine, or calling |
| QGLContext::bindTexture() on an X11 QPixmap. If the |
| GLX_EXT_texture_from_pixmap or EGL_NOKIA_texture_from_pixmap extensions are |
| present, Qt will attempt to use glXBindTexImageEXT or eglBindTexImage to |
| bind the pixmap to a texture, rather than copying the pixel data. |
| |
| - Add new experimental QX11GLPixmapData backend for QPixmap. This pixmap |
| backend uses regular X11 pixmaps to store the image data, however it uses |
| OpenGL to render into them. |
| |
| - Tablet: Disable event compression of events of type QTabletEvent when the |
| current event is accepted by the receiver. |
| |
| - [QTBUG-4242] Fixed a bug that allowed the user to close a window |
| event though the program is using the QEventLoop::ExcludeUserInputEvents |
| flag. |
| |
| - [255559] Fixed generation of XdndLeave events to include the correct |
| source id. |
| |
| - [258319] Avoid division by zero on some Xlib/Xserver implementations. |
| |
| - Fixed the default QWidget size on X servers with Xinerama to give widgets |
| a default size that should fit on a single screen. |
| |
| - Support _NET_WORKAREA on X servers with Xinerama (previously this property |
| was ignored). |
| |
| Qt for Windows |
| -------------- |
| |
| - Significant external contribution from Milan Burda for planned removal |
| of (non-unicode) Windows 9x/ME support. |
| |
| - QRegion is no longer a GDI object by default. This means it is no |
| longer subject to gui-thread only nor does it potentially impact |
| the 10.000 GDI object limit per process. By explicitly calling |
| .handle() a GDI object will be created and memory managed by |
| QRegion. The native handle is for reading out only. Any GDI calls |
| made on the HRGN handle will not affect the QRegion. |
| |
| - The reading code of QLocalSocket on Windows has been rewritten to improve |
| reading performance. |
| |
| - On Windows when a file cannot be accessed (stat()ed), we are now restoring |
| the error mode to the original value. |
| |
| - [259221] QFileInfo::symLinkTarget() now supports NTFS symbolic links |
| thanks to Konstantin Ritt (merge request 1217). |
| - [251554] Fixed openUrl("mailto:") with Thunderbird on Windows. |
| - [254501] QDestopServices now supports cyrillic file names. |
| - Fixed an issue which prevents moving fixed size windows using titlebar. |
| - [258087] Fixed an issue on Vista which returns incorrect file paths when |
| using QFileDialog::getOpenFileNames() |
| - [253763] Fixed a focus issue when using out-of-process ActiveQt controls. |
| - [255912] Mouse move events will not be delivered to a blocked widget. |
| - [225588] Enabled IME reconversion support. |
| |
| - Phonon on Windows |
| * Now much more reliable when reading a file through a QIODevice. |
| * If Video Mixing Renderer 9 is not available, falls back to software |
| rendering. |
| * Fixed a flicker issue when switching source with a transition time of 0. |
| |
| - [QTBUG-4445] Fixed bug on Windows that caused problems when printing |
| text where several characters were represented by a single glyph, e.g. |
| a double 't' with the Calibri font. |
| |
| - Added QSysInfo::WV_WINDOWS7 and QSysInfo::WV_6_1. |
| |
| - Changed QPrintDialog under Windows to use PrintDlgEx, instead of the old |
| deprecated PrintDlg call. |
| |
| Qt for Mac OS X |
| --------------- |
| |
| - General changes on Mac OS X: |
| * Mac OS X version support: Support for 10.3(Panther) has been dropped and |
| support for 10.6(Snow Leopard) has been added. |
| * The Cocoa port now supports static linking. |
| * The Cocoa port now supports the Qt3Support library (with the exception of |
| Q3FileDialog) to ease the transition from Carbon to Cocoa. |
| * The Cocoa binary packages are now Intel only (universal i386 and x86_64). |
| * Snow Leopard notes: |
| - Gcc 4.2 is used by default. Configure with -platform macx-g++40 to |
| select 4.0. |
| - Using the 10.4u SDK requires gcc 4.0. |
| - Configuring for the Cocoa port (-cocoa) produces 64-bit binaries by |
| default. Use the -arch flags to override. |
| - Building for ppc64 is no longer supported by the gcc tool chain. |
| - Building for ppc is still supported. |
| * Added support for GetURL events on Mac OS X. |
| |
| - General bug fixes: |
| * [123740] Fixed an issue with dead keys on Mac (cocoa) on French keyboard |
| layout. |
| * [258438] Enabled Emacs style keyboard shortcuts. |
| * [QTBUG-4418] Fixed maximizing and restoring a window. |
| |
| - Cocoa bug fixes: |
| * [252088] Drag Leave events will be delivered correctly on Cocoa. |
| * [257661] Cocoa now uses the correct line ending for clipboard plain text. |
| * [258173] Fixed an issue which caused "whatsthis" pointer to flicker. |
| * Fixed some warnings that might get printed when reparenting QGLWidget. |
| * Fixed stacking order of modal dialogs so that they never rearrange level, |
| or hide in the background. |
| * Fixed problem with plugins written with Qt that closes down the native |
| application when hiding a modal dialog. |
| * Fixed problem that native applications cannot quit when using plugins |
| written with Qt from a native application. |
| * Fixed problem that the menubar is not restored correctly when using |
| plugins written with Qt from a native application. |
| * The event dispatcher now integrates better with native applications that |
| spin the event loop themselves. |
| * Using Qt::AA_MacPluginApplication will now disable the use of native |
| menubars on Mac. |
| * Sliders and scroll views in Qt now use pixel scrolling for mouse devices |
| that support this. |
| * Wheel events can now contain a delta with a value as low as 1 for mouse |
| devices that use pixel scrolling. |
| |
| Qt for Embedded Linux |
| --------------------- |
| |
| - Added QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL and |
| QMAKE_LIBS_OPENGL_ES2 qmake variables for specifying OpenGL ES |
| specific libraries. |
| |
| - Compilation fixes for OpenGL/ES 1.0 and OpenGL/ES 1.1 Common Lite. |
| |
| - Phonon on Windows |
| * Now much more reliable when reading a file through a QIODevice. |
| * If Video Mixing Renderer 9 is not available, falls back to software |
| rendering. |
| * Fixed a flicker issue when switching source with a transition time of 0 |
| |
| - [QTBUG-3620] Fixed bug on X11 that caused bitmap fonts to become so small |
| it was unreadable when printed or presented in a print preview widget. |
| |
| - [QTBUG-4445] Fixed bug on Windows that caused problems when printing |
| text where several characters were represented by a single glyph, e.g. |
| a double 't' with the Calibri font. |
| |
| - EGL and OpenGL/ES |
| * Protect the use of version-specific EGL symbols with #ifdef's. |
| * Make sure an EGL context is current when resolving GL extensions. |
| * Introduce "lazyDoneCurrent" for optimizing context switching in |
| paint engines. |
| * Separate EGLSurface from QEglContext so that the same context can |
| be used with multiple surfaces. |
| * Move common functions from system-specific files to qgl_egl.cpp. |
| * Fix a memory leak of EGLSurface's in QGLContext. |
| * Fix detection of pbuffers on OpenGL/ES systems. |
| * EGL_SAMPLES was being set to the wrong value for multisampled surfaces. |
| |
| - PowerVR |
| * Make the code better at detecting MBX vs SGX header files. |
| * Fix 32-bit screen support - some code was still assuming 16-bit. |
| * Stop GL window surfaces double-flushing their contents. |
| * Remove surface holder, which never worked all that well. |
| * Implement screen rotations. |
| |
| - Mouse and keyboard drivers |
| * Removed obsolete drivers (vr41xx, yopy, sl5000, bus mouse). |
| * Added a new LinuxInput driver for both mouse and keyboard. |
| * Added keymap support for QWS via standard Linux .kmap files. |
| (complete with dead-keys, compose-key and LED handling). |
| |
| - Remove obsolete OpenGL/ES screen drivers: hybrid, ahigl. |
| |
| - Send enter/leave events also to child widgets. |
| |
| - Fix crash when instantiating multiple QApplications. |
| |
| - Optimize software cursor by using native image format instead of 8-bit. |
| |
| - [255828] Avoid window decoration flicker on show. |
| |
| - [255495] Fix blend function crash on AVR32. |
| |
| - Fix qconfig configurations. |
| |
| - Add powerpc mkspec and remove "empty" ppc mkspec . |
| |
| DirectFB |
| -------- |
| |
| - When running Qt/DirectFB the DirectFB window id of a top level QWidget can |
| be queried using property("_q_DirectFBWindowID") |
| |
| - Allow setting the background color of the primary layer in DirectFB with |
| connect options. QWS_DISPLAY=directfb:bgcolor=red or |
| QWS_DISPLAY=directfb:bgcolor=\#aabbccdd |
| |
| - Add support for rendering mouse cursor using a top level window when cursor |
| support is not working in IDirectFBDisplayLayer. Define |
| QT_DIRECTFB_WINDOW_AS_CURSOR to enable. |
| |
| - Add experimental support for optimized locking/unlocking of surfaces. Enable |
| by defining QT_DIRECTFB_SUBSURFACE. |
| |
| - Fix a bug to conceptually allow using QDirectFBScreen as a subscreen of a |
| proxy screen. Don't make QDirectFBScreen::instance() assume that |
| QScreen::instance() is a QDirectFBScreen. |
| |
| - Optimize move/resize operations with DirectFB. With a properly configured |
| DirectFB these operations are handled for us and we don't need to force a |
| repaint of the window. |
| |
| - Support top level window opacity in DirectFB |
| |
| - Fix a bug when loading RGB32 images that would lead to rendering issues. |
| |
| - Fix a bug when painting with invalid pens/brushes. |
| |
| - Fix a bug that would show up when QWidget::scroll is called. |
| |
| - Implement support for loading pixmaps using IDirectFBImageProvider. |
| |
| - Disable color table support by default. This seems to work incorrectly on |
| most boards and loading these images will generally require an image |
| conversion anyway. |
| |
| - Fix a crash when resizing windows. |
| |
| - Compile with versions < 1.0. We still recommend using newer versions. |
| |
| - Considerable code cleanup |
| |
| - Various optimizations regarding painting, loading of images and creation of |
| surfaces. |
| |
| - Allow forcibly falling back to raster engine for painting operations by |
| exporting QT_DIRECTFB_FORCE_RASTER=1 |
| |
| - Reenable support for RGB32 primary surface. |
| |
| |
| Qt for Windows CE |
| ----------------- |
| |
| - On Windows CE the link time code generation has been disabled by default to |
| be consistent with win32-msvc200x. |
| - The default button size has been reduced in the Windows mobile style. |
| - [QTBUG-3613] QWizard issues have been fixed on Windows mobile. |
| - [254673] Restoring minimized widgets fixed for Windows mobile and |
| Windows CE. |
| - [255242] Seeking within large files (bigger than 0x80000000 bytes) fixed |
| on Windows CE. |
| - [257352] When configuring Qt for Windows CE, configure points the user to |
| setcepaths, when its done. |
| - [259850] Added a makespec template for Windows CE 6. |
| - Fixed the hardcoded GL library names for Windows CE. |
| |
| **************************************************************************** |
| * Tools * |
| **************************************************************************** |
| |
| - Designer |
| * [233683] Promoted Widgets are now stored correctly in scratchpad. |
| * [249823] Added search functionality to the resource browser. |
| * [254282] Enabled the use of promoted widgets in form templates. |
| * [254824] Made it possible to override the createAction()/createWidget() |
| functions of QUiLoader. |
| * [256332] Enabled deleting all pages of a QTabWidget or QStackedWidget. |
| * [259238] Fixed menubar/menu editing in right-to-left mode. |
| * [259918] Fixed setting of object names for container pages not to use |
| localized strings. |
| * [260658] Fixed saving of alpha values set in the palette editor. |
| * It is now possible to further specify the kind of custom widget string |
| properties using XML tags. |
| |
| - uic |
| * [260784] Generated code for retranslateUi doesn't cause compiler warnings |
| anymore. |
| |
| - uic3 |
| * [128859] Fixed code generation of QLabel's wordWrap property. |
| |
| - qdoc3 |
| * Changed qdoc3 binary to be in bin/ instead of a platform specific location. |
| |
| - Linguist |
| * Linguist GUI: Experimental support for editing multi-length strings. |
| * lupdate is now again the only tool which can parse program code. |
| * lupdate |
| - Actually guess the target language from the file name. |
| - Make -{source,target}-language actually override values from files. |
| - C++ parser |
| * Properly support "using namespace", etc. |
| * Remove the obsolete TRANSLATOR hack relating to "using namespace". |
| * Support attaching meta data to translatable message. |
| * Actually use the argument of Q_DECLARE_TR_FUNCTION. |
| * Optimization. |
| * Bug fixes and robustness improvements. |
| * lrelease |
| - Add -markuntranslated <prefix> option. |
| * Both lupdate & lrelease |
| - Accuracy improvements of the qmake .pro file parser. |
| - Support for ID-based translations. Somewhat experimental. |
| * lconvert |
| - Add --sort-contexts option. |
| - Add --locations option (complementing lupdate). |
| - Add --no-ui-lines option (complementing lupdate). |
| |
| |
| **************************************************************************** |
| * Important Behavior Changes * |
| **************************************************************************** |
| |
| - The experimental Direct3D paint engine has been removed. The reason for |
| this is that Nokia focuses on OpenGL for desktop hardware accelerated |
| rendering. |
| |
| - The default engine used to draw onto OpenGL buffers has changed in |
| Qt 4.6. The QPaintEngine::OpenGL2 engine is now used as the default |
| engine. This *may* cause compatibility problems for applications |
| that use a mix of QPainter and native OpenGL calls to draw into a GL |
| buffer. Use the QGL::setPreferredPaintEngine() function to enforce |
| usage of the old GL paint engine. |
| |
| - When mixing OpenGL and QPainter calls you need to surround your |
| custom OpenGL calls with QPainter::beginNativePainting() and |
| QPainter::endNativePainting(). |
| This is to ensure that the paint engine flushes any pending drawing and sets |
| up the GL modelview/projection matrices properly before you can issue custom |
| OpenGL calls, and to let the paint engine synchronize to the painter state |
| before resuming regular QPainter based drawing. |
| |
| - Graphics View has undergone heavy optimization work, and as a result of |
| this work, the following behavior changes were introduced. |
| |
| a) QStyleOptionGraphicsItem::exposedRect now contains the item's bounding |
| rectangle, and QStyleOptionGraphicsItem::matrix is uninitialized by |
| default. You can enable an exact exposed rectangle and a correct matrix |
| by enabling the flag QGraphicsItem::ItemUsesExtendedStyleOptions. |
| |
| b) QStyleOptionGraphicsItem::levelOfDetails is obsoleted and its value is |
| always initialized to 1. Instead you can call |
| QStyleOptionGraphicsItem::levelOfDetailFromTransform(const QTransform &) |
| to determine the level of detail. |
| |
| c) QGraphicsView no longer calls QGraphicsView::drawItems(), and in turn |
| QGraphicsScene::drawItems(), by default. You can get the old behavior |
| back by enabling QGraphicsView::IndirectPainting. |
| |
| d) QGraphicsItem no longer calls itemChange() for position and |
| transformation changes. If you want to receive notifications for changes |
| to the item's position and transformation, you can set the flag |
| QGraphicsItem::ItemSendsGeometryChanges (which is enabled by default by |
| QGraphicsWidget and QGraphicsProxyWidget). |
| |
| - QDesktopWidget on X11 no longer emits the resized(int) signal when screens |
| are added or removed. This was not done on other platforms. Use the |
| screenCountChanged signal instead. |
| |
| - QUrl's parser is more strict when for hostnames in URLs. QUrl now |
| enforces STD 3 rules: |
| |
| * each individual hostname section (between dots) must be at most |
| 63 ASCII characters in length; |
| |
| * only letters, digits, and the hyphen character are allowed in the |
| ASCII range; letters outside the ASCII range follow the normal |
| IDN rules |
| |
| That means QUrl no longer accepts some URLs that were invalid |
| before, but weren't interpreted as such. |
| |
| - The Unix configure-time check for STL is stricter now in Qt |
| 4.6. This means some legacy STL implementations may fail to pass |
| the test and, therefore, Qt will automatically disable STL support. |
| |
| This is a binary-compatible change: existing code will continue to |
| work without being recompiled. However, it affects the source code, |
| since some STL-compatibility API will not be enabled. |
| |
| Platforms affected by this change: |
| * solaris-cc-* with the default (Cstd) C++ STL library |
| recommendation: use -library=stlport4 |
| See Sun Studio's documentation for the effects of this option |
| |
| - QVariant has now a new implicit constructor that takes a float. This |
| means that code that assigned a float to a variant would create a |
| variant with userType QMetaType::Float, instead of QVariant::Double. |
| |
| - QDataStream will now read and write all floating point numbers with the |
| same precision, regardless of whether it's streamed into or out from a |
| float or double. This is to maintain compatibility across platforms with |
| a different default precision for qreal. The default is 64-bit precision |
| for all floating point numbers, and this can be changed using the new |
| function setFloatingPointPrecision(). Set Qt_4_5 as the version of the |
| QDataStream to get the behavior of previous versions. |
| |
| - On Mac OS X, QDesktopServices::storageLocation(DataLocation) now includes |
| QCoreApplication::organizationName() and QCoreApplication::applicationName() |
| if those are set. This matches the behavior on the other platforms. |
| |
| - The Animation Framework |
| * currentTime() now returns the complete current time including previous |
| loops. |
| * currentLoopTime() returns the time inside the current loop. |
| * stateChanged signal sends the new state as first parameter and old state |
| as the second. |
| * QAnimationGroup::clearAnimations() has been renamed to clear(). |
| * QAnimationGroup::insertAnimationAt() has been renamed to |
| insertAnimation(). |
| * QAnimationGroup::takeAnimationAt() has been renamed to takeAnimation(). |
| * QSequentialAnimationGroup::insertPauseAt() has been renamed to |
| insertPause(). |
| * [QT-941] Avoids timer ticks when there are only pause animations running. |
| |
| - Refactoring in OpenGL examples to improve portability and utilize the |
| Animation framework for animation. The hellogl and overpainting examples |
| now compile on OpenGL/ES 1.1. Also common code is factored. |
| |
| - Changed QWebFrame::setHtml() and setContent() to not affect the back/forward |
| and the session history. |
| |
| - qmake no longer adds Qt internal dependencies to the linker when Qt |
| is built in shared mode (not static). This means that applications |
| that made use of platform-specific API may need to adjust the LIBS |
| variable in their .pro files to match: |
| |
| X11: LIBS += -lX11 |
| Mac: LIBS += -framework AppKit -framework Carbon |
| |
| - QtScript: Behavior changes due to using JavaScriptCore in the back-end: |
| * QDateTime is no longer used for date parsing and string conversion of |
| Date objects; instead the (more compliant) date processing from |
| JavaScriptCore is used. |
| * RegExp objects are no longer thin wrappers around QRegExp; they are now |
| "proper" JavaScript RegExp objects. |
| |