Fix regression introduced in 98a05681851db9d88b1364af52be543715fbe306
[qt-netbsd.git] / dist / changes-4.6.0
bloba0ae663d85adc81b8697ff2d8c6cd63e81acff76
1 Qt 4.6 introduces many new features and improvements as well as bugfixes
2 over the 4.5.x series. For more details, refer to the online documentation
3 included in this distribution. The documentation is also available online:
5   http://qt.nokia.com/doc/4.6
7 The Qt version 4.6 series is binary compatible with the 4.5.x series.
8 Applications compiled for 4.5 will continue to run with 4.6.
10 Some of the changes listed in this file include issue tracking numbers
11 corresponding to tasks in the Qt Bug Tracker, the (now obsolete) Task
12 Tracker, or the Merge Request queue of the public source repository.
14 Qt Bug Tracker: http://bugreports.qt.nokia.com
15 Task Tracker: http://qt.nokia.com/developer/task-tracker
16 Merge Request: http://qt.gitorious.org
18 ****************************************************************************
19 *                           General                                        *
20 ****************************************************************************
22  - QtDBus
23    * The minimum required version of the D-Bus reference library is
24      now 0.93.
25    * Support for reading and writing of custom property types added.
26    * Support for getting return arguments in remote method invocation
27      via QMetaMethod::invokeMethod.
29  - [MR#1742] Added new multimedia keys to the Qt::Key enum.
31  - QMatrix4x4, QGenericMatrix, QVector2D, QVector3D, QVector4D, QQuaternion
32     * New classes to support 3D applications.
34  - QGLShaderProgram, QGLShader
35     * New classes for using shader programs written in the GL Shading Language.
37  - QGraphicsEffect
38     * New classes for applying graphics effects to graphics items and widgets.
40  - Boxes demo ported to use new 3D math and shader program classes.
42  - OpenVG graphics system added.
44  - Added 800x480 screen mode to qvfb configuration dialog.
46  - Improved support for input methods in graphics view.
48  - QAudioInput, QAudioOutput
49     * New audio input and output classes.
51  - QAbstractVideoSurface, QVideoFrame
52     * New abstract video output classes.
54  - New state machine framework added to QtCore.
56  - QtTest now supports outputting XUnit XML documents, for integrating
57    with existing continuous integration systems. This is enabled by
58    running the test program with the -xunitxml option.
60 Third party components
61 ----------------------
63  - Updated FreeType to version 2.3.9.
65  - Updated harfbuzz to the latest version from fd.org.
67  - Updated sqlite to version 3.6.19.
69  - Updated libpng to version 1.2.40
72 ****************************************************************************
73 *                          Library                                         *
74 ****************************************************************************
76 QtCore
78  - QByteArray
79     * New overloads for QByteArray::insert() and QByteArray::prepend().
81  - QEventDispatcherGlib (internal class)
82     * Fix a regression introduced in 4.5.3 that would cause timers to not
83       be delivered.
85  - QEventDispatcherUNIX (internal class)
86     * Improve detection of monotonic clock support to include
87       non-POSIX.1-2001 compliant systems.
88     * [250681] Fix time change detection on UNIX systems without monotonic
89       timers.
91  - QEventDispatcherWin32 (internal class)
92     * Changed the threshold for using multimedia timers to 20ms (was 10ms).
93     * Changed the way Qt's posted events are sent by the event
94       dispatcher. They are now driven on top of a Windows message
95       instead of an explicit call in processEvents(). This means that
96       posted events are sent even when a Windows modal message loop is
97       running (for example, when the user is moving a window or when a
98       native modal dialog is visible).
99     * Fixed a bug that would allow the same timer id to be used by multiple
100       QTimer instances.
102  - QFile
103     * Make QFile::resize() more robust when operating on buffered files.
105  - QObject
106     * [259514] fixed a possible dead-lock in the destructor.
107     * Added the possibility to pass the flag Qt::UniqueConnection to
108       QObject::connect.
109     * Fixed race conditions that occured when moving object to threads
110       while connecting.
112  - QPluginLoader
113     * Improved performance of plugin loading by reusing the plugin cache
114       instead of loading it every time.
116  - QProcessEnvironment
117     * New class; support for easy access to key/value pairs in the process
118       environment.
120  - QRegExp
121     * New pattern syntax "QRegExp::WildcardUnix" with wildcard character
122       escaping.
124  - QScopedPointer
125     * New pointer class for cleaning up objects when leaving the current
126       scope.
128  - QSharedPointer
129     * Added support for creating the object along with the internal private
130       data in one single memory allocation. (QSharedPointer::create)
131     * Fixed a bug where, in a race condition, QSharedPointer could track a
132       pointer that was being deleted.
134  - QTextCodec
135     * Instantiate the CP949 codec when building with -no-iconv.
137  - QTextStream
138     * [221316] Fixed crash on large input.
139     * Improved reading utf8/utf16/utf32 data by correctly skipping the
140       ByteOrderMark when reading data by one character at a time.
142  - QThread
143     * [249997] Document that QThread priority has no effect on Linux.
145  - QUrl
146     * Made QUrl hostname parser a lot stricter, requiring compliance
147       to STD3 to validate, thus preventing invalid hostnames from
148       being accepted. See below in "Important Behavior Changes".
150  - QUuid
151     * [QTBUG-3543] Fixed a bug in createUuid() which caused multiple
152       threads to generate the identical UUID sequences.
154  - QVariant
155     * Many optimisations.
156     * Added QVariant::toFloat() and QVariant::toReal().
157     * Added QVariant(float) constructor.
158     * qvariant_cast<QVariant> and qVariantFromValue<QVariant> are now
159       identity functions.
160     * Added support for math3d types.
162  - QWeakPointer
163     * Added support for tracking QObject-derived classes that aren't
164       attached to a QSharedPointer.
165     * Added QWeakPointer::data which allows you to obtain the pointer
166       being tracked (without protection).
167     * Added operator-> like the above data(), but requires a #define.
169  - QXmlStreamWriter
170     * [256468] Fixed comment indentation.
172 QtGui
174  - Qt::escape
175     * Now escape the double quote (&quot;).
177  - QAbstractItemView
178     * [256502] Fixes selectionModel::hasSelection return value after
179       model::reset.
181  - QApplication
182     * [QTBUG-739] Removed internal widgets from QApplication::topLevelWidgets().
184  - QCalendarWidget
185     * [252943] QCalendarWidget::setDateTextFormat() reset the format if the
186       date is invalid.
188  - QColumnView
189     * [246999] Fixed view not updating when the model changed dynamically.
191  - QComboBox
192     * [220195] Fixed keyboard search when current index is -1.
194  - QCompleter
195     * [246056] Fixed a possible assertion when setting the completer prefix.
197  - QEvent
198     * Introduced RequestSoftwareInputPanel and CloseSoftwareInputPanel events.
200  - QFontDialog
201     * [256466] Fixed the dialog not always returning the selected style.
203  - QFontEngine
204     * [QTBUG-2354] Support certain 'Microsoft' platform symbol fonts which
205       also contain a regular unicode table for exactly the symbol range of
206       code points.
208  - QFontEngineQPF
209     * Make alphaMapForGlyph() generate the correct color table for
210       Indexed8 and Mono glyph images.  Fixed the "all glyphs are white
211       boxes" problem in OpenGL1 paint engine.
213  - QFontMetrics
214     * [176401] Account for right bearing in bounding rect.
216  - QGraphicsAnchorLayout
217     * Support for expanding size policy has been removed. (The Qt 4.6 Beta
218       had support for it).
220  - QGraphicsBlurEffect
221     * Since the 4.6 Beta, Qt::RenderHint has been moved to
222       QGraphicsBlurEffect::BlurHint.
223     * Input contexts are not activated for disabled widgets anymore.
224     * [250555] Data copied from Mozilla Firefox can now be pasted correctly to
225       a Qt application.
227  - QGraphicsItem
228     * Many optimizations.
229     * Fixed bug and improved accuracy of QGraphicsItem::childrenBoundingRect().
230     * Introduced QGraphicsItem::ItemHasNoContents.
231     * Introduced QGraphicsItem::ItemSendsGeometryChanges (see Behavioral
232       Changes).
233     * Introduced QGraphicsItem::focusProxy(), focus proxy support.
234     * Introduced QGraphicsItem::ItemNegativeZStacksBehindParent.
235     * Introduced QGraphicsItem::ItemIsPanel, light-weight window support.
236     * Introduced modality support for QGraphicsItem panels.
237     * Introduced activation support.
238     * Introduced QGraphicsItem::stackBefore().
239     * Cached items are now always invalidated when update() is called.
240     * Added input hints.
241     * Added a new set of properties to set a transformation on an item.
243  - QGraphicsLayout
244     * Introduced QGraphicsLayout::addChildLayoutItem().
246  - QGraphicsObject
247     * New class; inherits QGraphicsItem and adds notification signals and
248       property declarations.
250  - QGraphicsProxyWidget
251     * [251407] Fixed window flag handling. Now QGraphicsProxyWidget's flags
252       win.
253     * Fix Qt::ClickFocus policy.
255  - QGraphicsScene
256     * Many optimizations.
257     * [245317] Fixes to mouse grabbing behavior.
258     * Fixed delivery of double-click events after explicit grab and then ungrab.
259     * Rewrote the internal rendering to use a recursive instead of an iterative
260       approach.
261     * Ensure hover enter events are delivered when an item is pressed.
262     * Introduced activation support.
263     * Fixed bugs in initial focus support.
265  - QGraphicsTextItem
266     * Now inherits from QGraphicsObject instead.
268  - QGraphicsTransform
269     * New class; eases animation of transformations for QGraphicsItem.
271  - QGraphicsView
272     * Many optimizations.
273     * Fix mapToScene(QRect) to avoid extra unnecessary adjustments.
274     * Introduced QGraphicsView::isTransformed().
275     * [QTBUG-4151] Items with parent that sets ItemClipsChildrenToShape were
276       sometimes invisible.
278  - QGraphicsWidget
279     * Now inherits from QGraphicsObject instead.
280     * Interactive resizing of top level windows now respects height-for-width
281       constraints.
282     * Reduced memory footprint.
284  - QHeaderView
285     * [208320] Make sure the sort indicator is taken into account for the size
286       hint.
287     * [255574] Make sure the size hint for the section depends on visible
288       sections.
290  - QImageReader
291     * [255627] Fix floating point exception in
292       QImageReader::setScaledSize(QSize(0, 0)).
294  - QLineEdit
295     * [248948] Clear selection when redoing a delete operation.
296     * [QTBUG-5261] Fixed bug where erasing characters from a textedit did not
297       update the text.
299  - QListView
300     * [243335] Fixed the visualRect to return correct values when the widget is
301       not yet shown.
303  - QMainWindow
304     * [226060] Adding actions to a toolbar would always make the next toolbar
305       move.
307  - QMenu
308     * [252610] Fixed position of the shortcut text while setting a stylesheet
309       on menu items
311  - QMenuBar
312     * [260873] Fix mouse interaction while undocking a widget from the main
313       window
314     * Dock areas didn't get a splitter if their dock widgets were not
315       resizable.
317  - QPaintDevice
318     * New qt_paint_device_metric() function to replace the friend declarations
319       for window surface classes that need to access metric().
321  - QPainter
322     * [QTBUG-1666] Made QPainter::drawText() respect Qt::TextDontClip flag
323       also in vertical direction.
324     * [254658] Improved clipping performance in OpenGL paint engine.
326  - QPainterPath
327     * [QTBUG-1537] Fixed bug where the points of a rounded rectangle were added
328       in counter-clockwise order instead of clockwise order like other shapes.
330  - QPen
331     * [QTBUG-2738] Made QPen::setDashOffset() work with non-custom dashed lines.
333  - QPixmap
334     * Optimized width(), height(), isNull() and depth().
335     * [QTBUG-2832] Fixed bug where calling fill on pixmap with active painter
336       could crash.
338  - QPlainTextEdit
339     * Fixed crash when clicking on a text edit which was smaller than the
340       height of the font used.
342  - QPlastiqueStyle
343     * [QTBUG-3555] Fixed a bug in the Plastique style that would cause an
344       ASSERT failure in QFont when the application font has a pixel size set.
346  - QPrinter
347     * [QTBUG-4497] Removed redundant SetPen command in the postscript code when
348       reusing a QPrinter object.
350  - QPrintPreviewDialog now uses a QMainWindow with a proper QToolBar, instead
351    of a plain layout.
353  - QPushButton
354     * [255581] Fixed sizeHint recalculation bug.
356  - QRasterPaintEngine
357     * [QTBUG-4210] Fixed bug where bitmaps were painted black instead of in pen
358       colour.
360  - QRegion
361     * Minor optimizations.
363  - QSortFilterProxyModel
364     * [251296] Fixed bugs in which filtered items could not be filtered.
366  - QSplitter
367     * [206494] Added ability to style pressed slider with stylesheet.
369  - QSpinBox
370     * [259226] Fixed setting a stylesheet on a QSpinBox to change the arrow
371       position.
372     * [255051] Fixed sizeHint update bug.
374  - QStandardItemModel
375     * [255652] Fixed crash while using takeRow with a QSortFilterProxyModel.
377  - QStroker
378     * [QTBUG-5212] Fixed bug where thick strokes around small shapes could
379       cause holes in the stroke.
381  - QTabBar
382     * [196326] Fixed having a stylesheet on a QTabBar resulted in some tab
383       names being slightly clipped.
384     * [241383] Added ability to style the close tab button with style sheet
386  - QTableView
387     * [191545] Selections work more similarly to well-known spreadsheets.
388     * [234926] Fixed sorting after changing QTableView header.
389     * [244651] [245327] [250193] [QTBUG-5062] Spans get plenty of love with
390       performance improvements, support for row/column insertioa and removal,
391       and better keyboard navigation.
393  - QTableWidget
394     * [234641] Fixed takeItem to cause the view to be updated.
396  - QTextDocument
397     * [207189] Support setting font size using short hand syntax in the
398       CSS "font" property.
399     * [201228] Remove implicit margin on bullet lists when exporting to HTML.
400     * [240086] Fixed bug which caused floating objects which span several
401       pages to float into the second page of the document even when it's
402       the only existing object, causing the document to contain a blank
403       first page.
404     * [240325] Even with wrap mode set to Qt::TextWordWrap, the layout
405       would sometimes break outside word boundaries when floating objects
406       affected the width available to the text.
408  - QTextLayout
409     * [QTBUG-4468] Count tabs as multiple characters when applying a fixed
410       column width.
411     * [176401] Take into account the negative right bearing of the last
412       character in an item of text if the glyph extends beyond its ascent.
414  - QToolTip
415     * Fixed a bug where tooltips were not shown in popups (Windows only).
417  - QTreeView
418     * [234930] Be able to use :has-children and :has-sibillings in a stylesheet.
419     * [252616] Set QStyleOptionViewItemV4::OnlyOne flag when painting spanning
420       columns.
421     * [245654] Fixed expandAll when deleting and recreating a mode for the tree.
422     * [239271] Fixed missing update when adding a row when the first column is
423       hidden.
424     * [258225] Fixed scrollTo with center and bottom.
426  - QTreeWidget
427     * [253109] Shows the widget when calling setItemWidget.
429  - QWidget
430     * Added inputMethodHints property.
431     * [201649] Added QWidget::previousInFocusChain.
432     * [254563] Fixed a crash when setting focus in a widget tree that
433       contains invisible widgets.
434     * [QTBUG-5012] Fixed uninitialized background when using QWidget::render
435       with Qt::WA_NoSystemBackground and window opacity set.
437 QtDBus
439  - QDBusConnection
440     * Made sending of invalid/incomplete messages consistently fail with error
441       (no more assertions).
442     * [249528/QTBUG-3833] Added an overload of connect() that allows one to
443       specify strings for matching arguments.
445  - QDBusServiceWatcher
446     * New class; supports efficiently watching for a service to be created,
447       deleted or to change owners.
449 QtNetwork
451  - QAbstractSocket
452     * Only disconnect from host when all bytes have been written.
453     * New setSocketOption method.
455  - QHttp
456     * Do not buffer the complete POST data anymore when HTTPS is used.
457     * QHttp is now obsolete and replaced by QNetworkAccessManager.
459  - QLocalServer
460     * Fix timeout when waiting for a connection on Unix.
462  - QNativeSocketEngine
463     * Do not set the OS socket send and receive buffer size. The OS
464       should auto tune these values for us.
466  - QNetworkAcessManager
467     * [242916] Add possibility to send HTTP DELETE requests.
468     * Connection count per HTTP server increased to 6 on Desktop, 3 on Symbian.
469     * Optional HTTP pipelining support.
470     * General HTTP performance improvements.
472  - QNetworkReply
473     * [257322] Add possibility to ignore specific SSL errors.
474     * New isFinished() method.
476  - QSslCertificate
477     * [251830] Fix version() and serialNumber() methods.
479  - QSslSocket
480     * [257322] Add possibility to ignore specific SSL errors.
481     * Fix build with openssl 1.0.0 betas.
482     * Trigger a SSL transmission when reading from the socket. In certain
483       cases the connection stalled when a buffer limit was used.
485 QtOpenGL
487  - QGLColormap
488     * setEntry() was inserting entries instead of replacing them.
489     * Clarified documentation for isEmpty().
491  - QGLContext
492     * Fix RGB565 mode in bindTexture().
493     * Map mipmaps work on OpenGL/ES 2.0 systems in bindTexture().
494     * Improve performance of QGLContext::currentContext().
496  - QGLFormat
497     * Increase unit test coverage and fix some long-standing issues.
498     * Improve performance of code that tests QGLFormat options.
499     * operator==() now tests for equality on all fields.
501  - QGLFramebufferObject
502     * Add support for the ARB_framebuffer_object, OES_framebuffer_object,
503       and OES_packed_depth_stencil extensions.
504     * Unbind the texture after it is initialized.
505     * Don't destroy the texture target on cleanup if one wasn't created.
507  - QGLFramebufferObjectFormat
508     * New class for controlling fbo options.
510  - Improvements to context sharing and object cleanup logic.
512  - QGLGradientCache
513    * [249919] Clean up the gradient cache in the right context.
515  - OpenGL (ES) 2.0 Paint Engine
516     * Re-written the OpenGL (ES) 2.0 Paint Engine's shader manager to use new
517       shader API and to allow custom code from E.g. Pixmap Filters to be
518       instered into the fragment "pipeline".
519     * Fixed conical gradients.
521  - Added a static function, QGL::setPreferredPaintEngine(), to allow users
522    to set the preferred GL paint engine.
524  - Cleaned up usage of OpenGL extensions. QtOpenGL now uses the OpenGL 2.0
525    names of methods rather than using the EXT postfix. However, when resolving
526    extensions, QtOpenGL will also try postfixing EXT if the OpenGL 2.0 name is
527    not found.
529  - Fix QGLWidget::showFullscreen() on EGL platforms.
531  - Added lots of OpenGL autotests.
533 QtScript
535  - Many optimizations.
536  - Improved ECMA script compliance.
537  - New method, QScriptString::toArrayIndex(), for converting QScriptString
538    to a QtScript array index.
540 QtSql
542  - [QTBUG-3162] Views for Sql table models should not reset state on failed
543    queries.
544  - [QTBUG-5251] Fix retrieval of SQL 'TIME' information for PostgreSQL.
545  - Better error checking in case of failed query.
546  - [QTBUG-5179] Fixed floating point number truncation in qsqlpsql plugin.
547  - [QTBUG-551] Fixed Oracle batchExec using strings as out params.
548  - Updated sqlite to 3.6.19 + readded our patches.
549  - [QTBUG-3736] ODBC: Retrieved in ascii, should be stored in ascii.
550  - Fixed issue with multiple lookups to same table/field in
551    QSqlRelationalTableModel.
552  - Updated documentation of setForwardOnly.
553  - [QT-754] TDS: Fixed improper formatting of date values.
554  - TDS: Fixed missing field/table name escaping.
555  - ODBC: Fixed setForwardOnly not being reset on when the query is reset.
556  - [QTBUG-4510] Add reconnection option to the mysql driver.
557  - [222678] Fixed QSqlTableModel: trying to delete the wrong row.
558  - Interbase: Fixed crash when calling numRows on unknown query type.
559  - DB2: Don't return an error when the table is just empty.
560  - [17327] Added OCI support for synonyms to tables created by another user.
561  - [176267] Fixed mysql driver not knowing the difference between tables and
562    views.
563  - Fixed determination of end of ODBC string on deficient drivers.
564  - Added ability to open sqlite databases readonly.
565  - Fixed race condition on reopening an ODBC connection.
566  - Fixed invalid use of statics in the defaultCasing code.
567  - Fixed proper quoting under odbc.
568  - [252450 & 246125] Fixed failed queries due to MySql driver auto-preparing.
569  - QSqlDatabase now has a database level precisionPolicy. Queries now default
570    to this.
571  - Add proper iODBC linking support.
573 QtSvg
575  - QSvgHandler
576    * [245602] [204686] Fixed gradient and solid-color referencing.
577    * [202426] Made attribute inheritance work with 'use' tags.
578    * [250618] Fixed gradient on strokes.
579    * [254040] Added support for 'vector-effect'.
581  - QSvgPaintEngine
582    * [257052] Changed drawImage() to ignore aspect ratio.
584 QtWebKit
586  - Many bug fixes.
588  - QWebElement
589    * New class; introduced to implement DOM like operations on a web page.
591  - QWebFrame
592    * New properties for an URL and a focus management.
593    * New signals delivering current loading status.
595  - QWebInspector
596    * New class for embedding the WebInspector as a QWidget
598  - QWebHistory
599    * Streaming operators for saving and restoring QWebHistory's state.
601  - QWebPage
602    * New property; preferredContentsSize for setting layout of the page in the
603      viewport.
604    * New slot; shouldInterruptJavaScript, called when JavaScript program is
605      running too long.
607  - QWebSecurityOrigin:
608    * New functions for defining local URL schemes.
610  - QWebSettings
611    * New options for text encoding and off-line web application cache (HTML5).
613  - QWebView
614    * Support for render hints.
616 QtXml
618  - QDomDocument
619     * Set the codec to UTF-8 if codec not present or unknown.
621 QtXmlPatterns
623  - QXmlQuery
624     * [245219] Added QXmlQuery::setFocus(const QString &focus).
626 Qt Plugins
628  - Tiff plugin
629     * [258526] Rotate the image if the tiff file contains an orientation tag.
630     * [254317] Add support for mono and indexed format
632  - QPlainTextEdit
633     * Fixed crash when clicking on a text edit which was smaller than the 
634       height of the font used.
635           
636  - QPrinter 
637     * [QTBUG-4497] Removed redundant SetPen command in the postscript code 
638       when reusing a QPrinter object.
640  - QTextLayout
641     * [QTBUG-4468] Count tabs as multiple characters when applying a fixed
642       column width.
643         * [176401] Take into account the negative right bearing of the last 
644       character in an item of text if the glyph extends beyond its ascent.
645         
646  - QTextDocument
647     * [207189] Support setting font size using short hand syntax in the 
648       CSS "font" property.
649         * [201228] Remove implicit margin on bullet lists when exporting to 
650       HTML.
651         * [240086] Fixed bug which caused floating objects which span several
652       pages to float into the second page of the document even when it's
653       the only existing object, causing the document to contain a blank
654       first page.
655         * [240325] Even when wrap mode is set to Qt::TextWordWrap, the layout
656       would sometimes break outside word boundaries when floating objects
657       affected the width available to the text. This has been fixed.
659  - QFontEngine 
660     * [QTBUG-2354] Support certain 'Microsoft' platform symbol fonts which 
661       also contain a regular unicode table for exactly the symbol range of
662       code points.
663           
664  - QFontMetrics   
665     * [176401] Account for right bearing in bounding rect.
667 ****************************************************************************
668 *                      Platform Specific Changes                           *
669 ****************************************************************************
671  - Added community supported Qt ports for QNX and VxWorks. See platform
672    notes in the Qt documentation for details.
674  - Improved support for AIX using IBM's Visual Age C/C++ compiler
675    version 7 (xlC).
677  - Improved support for Solaris using Sun Studio 12 (CC 5.9).
679 Qt for Unix (X11 and Mac OS X)
680 ------------------------------
682  - Added support for thread-safe FD_CLOEXEC file-descriptor creation
683    where supported by the operating system (currently only Linux).
685  - Ensured that system calls where EINTR is a possible result are
686    properly restarted.
688 Qt for Linux/X11
689 ----------------
691  - KDE Integration: Improved the integration into KDE desktop (loading of KDE
692    palette, usage of KColorDialog and KFileDialog) using the GuiPlatformPlugin
694  - Fixed pasting the clipboard content to non-Qt application on X11 when the
695    requested format is image/ppm.
697  - On X11, Qt now supports the _NET_WM_SYNC protocol.
699  - On X11, Qt now supports the SAVE_TARGET protocol that allows to keep
700    clipboard contents if the application that owns the clipboards exits
702  - [QTBUG-4652] On X11, clipboard content can be properly retrieved even when
703    an application asks for the unsupported target. This fixes copying and
704    pasting data when using Synergy.
706  - [MR#797] Fixed a crash when using QX11EmbedContainer/Widget on x86_64.
708  - [MR#1111] Emit workAreaResized when _NET_WORKAREA is changed on X11.
710  - [QTBUG-3620] Fixed bug on X11 that caused bitmap fonts to become so small
711    it was unreadable when printed or presented in a print preview widget.
713  - Improved EGL integration on X11 (including better visual selection).
715  - Made Qt::WA_TranslucentBackground work in combination with native
716    child widgets.
718  - Support Qt::WA_TranslucentBackground on top-level QGLWidgets on X11, both
719    (EGL & glX). This allows OpenGL (& ES) rendering to semi-transparent widgets
720    if a compositing window manager is running.
722  - Support OpenGL texture_from_pixmap extension on X11 (EGL & glX) when
723    calling QPainter::drawPixmap() with the OpenGL paint engine, or calling
724    QGLContext::bindTexture() on an X11 QPixmap. If the
725    GLX_EXT_texture_from_pixmap or EGL_NOKIA_texture_from_pixmap extensions are
726    present, Qt will attempt to use glXBindTexImageEXT or eglBindTexImage to
727    bind the pixmap to a texture, rather than copying the pixel data.
729  - Add new experimental QX11GLPixmapData backend for QPixmap. This pixmap
730    backend uses regular X11 pixmaps to store the image data, however it uses
731    OpenGL to render into them.
733  - Tablet: Disable event compression of events of type QTabletEvent when the
734    current event is accepted by the receiver.
736  - [QTBUG-4242] Fixed a bug that allowed the user to close a window
737    event though the program is using the QEventLoop::ExcludeUserInputEvents
738    flag.
740  - [255559] Fixed generation of XdndLeave events to include the correct
741    source id.
743  - [258319] Avoid division by zero on some Xlib/Xserver implementations.
745  - Fixed the default QWidget size on X servers with Xinerama to give widgets
746    a default size that should fit on a single screen.
748  - Support _NET_WORKAREA on X servers with Xinerama (previously this property
749    was ignored).
751 Qt for Windows
752 --------------
754  - Significant external contribution from Milan Burda for planned removal
755    of (non-unicode) Windows 9x/ME support.
757  - QRegion is no longer a GDI object by default. This means it is no
758    longer subject to gui-thread only nor does it potentially impact
759    the 10.000 GDI object limit per process. By explicitly calling
760    .handle() a GDI object will be created and memory managed by
761    QRegion. The native handle is for reading out only. Any GDI calls
762    made on the HRGN handle will not affect the QRegion.
764  - The reading code of QLocalSocket on Windows has been rewritten to improve
765    reading performance.
767  - On Windows when a file cannot be accessed (stat()ed), we are now restoring
768    the error mode to the original value.
770  - [259221] QFileInfo::symLinkTarget() now supports NTFS symbolic links
771    thanks to Konstantin Ritt (merge request 1217).
772  - [251554] Fixed openUrl("mailto:") with Thunderbird on Windows.
773  - [254501] QDestopServices now supports cyrillic file names.
774  - Fixed an issue which prevents moving fixed size windows using titlebar.
775  - [258087] Fixed an issue on Vista which returns incorrect file paths when
776    using QFileDialog::getOpenFileNames()
777  - [253763] Fixed a focus issue when using out-of-process ActiveQt controls.
778  - [255912] Mouse move events will not be delivered to a blocked widget.
779  - [225588] Enabled IME reconversion support.
781  - Phonon on Windows
782    * Now much more reliable when reading a file through a QIODevice.
783    * If Video Mixing Renderer 9 is not available, falls back to software
784      rendering.
785    * Fixed a flicker issue when switching source with a transition time of 0.
787  - [QTBUG-4445] Fixed bug on Windows that caused problems when printing
788    text where several characters were represented by a single glyph, e.g.
789    a double 't' with the Calibri font.
791  - Added QSysInfo::WV_WINDOWS7 and QSysInfo::WV_6_1.
793  - Changed QPrintDialog under Windows to use PrintDlgEx, instead of the old
794    deprecated PrintDlg call.
796 Qt for Mac OS X
797 ---------------
799  - General changes on Mac OS X:
800    * Mac OS X version support: Support for 10.3(Panther) has been dropped and
801      support for 10.6(Snow Leopard) has been added.
802    * The Cocoa port now supports static linking.
803    * The Cocoa port now supports the Qt3Support library (with the exception of
804      Q3FileDialog) to ease the transition from Carbon to Cocoa.
805    * The Cocoa binary packages are now Intel only (universal i386 and x86_64).
806    * Snow Leopard notes:
807      - Gcc 4.2 is used by default. Configure with -platform macx-g++40 to
808        select 4.0.
809      - Using the 10.4u SDK requires gcc 4.0.
810      - Configuring for the Cocoa port (-cocoa) produces 64-bit binaries by
811        default. Use the -arch flags to override.
812      - Building for ppc64 is no longer supported by the gcc tool chain.
813      - Building for ppc is still supported.
814    * Added support for GetURL events on Mac OS X.
816  - General bug fixes:
817    * [123740] Fixed an issue with dead keys on Mac (cocoa) on French keyboard
818      layout.
819    * [258438] Enabled Emacs style keyboard shortcuts.
820    * [QTBUG-4418] Fixed maximizing and restoring a window.
822  - Cocoa bug fixes:
823    * [252088] Drag Leave events will be delivered correctly on Cocoa.
824    * [257661] Cocoa now uses the correct line ending for clipboard plain text.
825    * [258173] Fixed an issue which caused "whatsthis" pointer to flicker.
826    * Fixed some warnings that might get printed when reparenting QGLWidget.
827    * Fixed stacking order of modal dialogs so that they never rearrange level,
828      or hide in the background.
829    * Fixed problem with plugins written with Qt that closes down the native
830      application when hiding a modal dialog.
831    * Fixed problem that native applications cannot quit when using plugins
832      written with Qt from a native application.
833    * Fixed problem that the menubar is not restored correctly when using
834      plugins written with Qt from a native application.
835    * The event dispatcher now integrates better with native applications that
836      spin the event loop themselves.
837    * Using Qt::AA_MacPluginApplication will now disable the use of native
838      menubars on Mac.
839    * Sliders and scroll views in Qt now use pixel scrolling for mouse devices
840      that support this.
841    * Wheel events can now contain a delta with a value as low as 1 for mouse
842      devices that use pixel scrolling.
844 Qt for Embedded Linux
845 ---------------------
847  - Added QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL and
848    QMAKE_LIBS_OPENGL_ES2 qmake variables for specifying OpenGL ES
849    specific libraries.
851  - Compilation fixes for OpenGL/ES 1.0 and OpenGL/ES 1.1 Common Lite.
853  - Phonon on Windows
854    * Now much more reliable when reading a file through a QIODevice.
855    * If Video Mixing Renderer 9 is not available, falls back to software 
856      rendering.
857    * Fixed a flicker issue when switching source with a transition time of 0
858    
859  - [QTBUG-3620] Fixed bug on X11 that caused bitmap fonts to become so small 
860    it was unreadable when printed or presented in a print preview widget. 
861    
862  - [QTBUG-4445] Fixed bug on Windows that caused problems when printing 
863    text where several characters were represented by a single glyph, e.g. 
864    a double 't' with the Calibri font.
865    
866  - EGL and OpenGL/ES
867    * Protect the use of version-specific EGL symbols with #ifdef's.
868    * Make sure an EGL context is current when resolving GL extensions.
869    * Introduce "lazyDoneCurrent" for optimizing context switching in
870      paint engines.
871    * Separate EGLSurface from QEglContext so that the same context can
872      be used with multiple surfaces.
873    * Move common functions from system-specific files to qgl_egl.cpp.
874    * Fix a memory leak of EGLSurface's in QGLContext.
875    * Fix detection of pbuffers on OpenGL/ES systems.
876    * EGL_SAMPLES was being set to the wrong value for multisampled surfaces.
878  - PowerVR
879    * Make the code better at detecting MBX vs SGX header files.
880    * Fix 32-bit screen support - some code was still assuming 16-bit.
881    * Stop GL window surfaces double-flushing their contents.
882    * Remove surface holder, which never worked all that well.
883    * Implement screen rotations.
885  - Mouse and keyboard drivers
886    * Removed obsolete drivers (vr41xx, yopy, sl5000, bus mouse).
887    * Added a new LinuxInput driver for both mouse and keyboard.
888    * Added keymap support for QWS via standard Linux .kmap files.
889      (complete with dead-keys, compose-key and LED handling).
891  - Remove obsolete OpenGL/ES screen drivers: hybrid, ahigl.
893  - Send enter/leave events also to child widgets.
895  - Fix crash when instantiating multiple QApplications.
897  - Optimize software cursor by using native image format instead of 8-bit.
899  - [255828] Avoid window decoration flicker on show.
901  - [255495] Fix blend function crash on AVR32.
903  - Fix qconfig configurations.
905  - Add powerpc mkspec and remove "empty" ppc mkspec .
907 Qt for Windows CE
908 -----------------
910  - On Windows CE the link time code generation has been disabled by default to
911    be consistent with win32-msvc200x.
912  - The default button size has been reduced in the Windows mobile style.
913  - [QTBUG-3613] QWizard issues have been fixed on Windows mobile.
914  - [254673] Restoring minimized widgets fixed for Windows mobile and
915    Windows CE.
916  - [255242] Seeking within large files (bigger than 0x80000000 bytes) fixed
917    on Windows CE.
918  - [257352] When configuring Qt for Windows CE, configure points the user to
919    setcepaths, when its done.
920  - [259850] Added a makespec template for Windows CE 6.
921  - Fixed the hardcoded GL library names for Windows CE.
923 ****************************************************************************
924 *                          Tools                                           *
925 ****************************************************************************
927  - Designer
928    * [233683] Promoted Widgets are now stored correctly in scratchpad.
929    * [249823] Added search functionality to the resource browser.
930    * [254282] Enabled the use of promoted widgets in form templates.
931    * [254824] Made it possible to override the createAction()/createWidget()
932      functions of QUiLoader.
933    * [256332] Enabled deleting all pages of a QTabWidget or QStackedWidget.
934    * [259238] Fixed menubar/menu editing in right-to-left mode.
935    * [259918] Fixed setting of object names for container pages not to use
936      localized strings.
937    * [260658] Fixed saving of alpha values set in the palette editor.
938    * It is now possible to further specify the kind of custom widget string
939      properties using XML tags.
941  - uic
942    * [260784] Generated code for retranslateUi doesn't cause compiler warnings
943      anymore.
945  - uic3
946    * [128859] Fixed code generation of QLabel's wordWrap property.
948  - qdoc3
949    * Changed qdoc3 binary to be in bin/ instead of a platform specific location.
951  - Linguist
952    * Linguist GUI: Experimental support for editing multi-length strings.
953    * lupdate is now again the only tool which can parse program code.
954    * lupdate
955      - Actually guess the target language from the file name.
956      - Make -{source,target}-language actually override values from files.
957      - C++ parser
958        * Properly support "using namespace", etc.
959        * Remove the obsolete TRANSLATOR hack relating to "using namespace".
960        * Support attaching meta data to translatable message.
961        * Actually use the argument of Q_DECLARE_TR_FUNCTION.
962        * Optimization.
963        * Bug fixes and robustness improvements.
964    * lrelease
965      - Add -markuntranslated <prefix> option.
966    * Both lupdate & lrelease
967      - Accuracy improvements of the qmake .pro file parser.
968      - Support for ID-based translations. Somewhat experimental.
969    * lconvert
970      - Add --sort-contexts option.
971      - Add --locations option (complementing lupdate).
972      - Add --no-ui-lines option (complementing lupdate).
975 ****************************************************************************
976 *                               DirectFB                                   *
977 ****************************************************************************
979  - When running Qt/DirectFB the DirectFB window id of a top level QWidget can
980    be queried using property("_q_DirectFBWindowID")
982  - Allow setting the background color of the primary layer in DirectFB with
983    connect options. QWS_DISPLAY=directfb:bgcolor=red or
984    QWS_DISPLAY=directfb:bgcolor=\#aabbccdd
986  - Add support for rendering mouse cursor using a top level window when cursor
987    support is not working in IDirectFBDisplayLayer. Define
988    QT_DIRECTFB_WINDOW_AS_CURSOR to enable.
990  - Add experimental support for optimized locking/unlocking of surfaces. Enable
991    by defining QT_DIRECTFB_SUBSURFACE.
993  - Fix a bug to conceptually allow using QDirectFBScreen as a subscreen of a
994    proxy screen. Don't make QDirectFBScreen::instance() assume that
995    QScreen::instance() is a QDirectFBScreen.
997  - Optimize move/resize operations with DirectFB. With a properly configured
998    DirectFB these operations are handled for us and we don't need to force a
999    repaint of the window.
1001  - Support top level window opacity in DirectFB
1003  - Fix a bug when loading RGB32 images that would lead to rendering issues.
1005  - Fix a bug when painting with invalid pens/brushes.
1007  - Fix a bug that would show up when QWidget::scroll is called.
1009  - Implement support for loading pixmaps using IDirectFBImageProvider.
1011  - Disable color table support by default. This seems to work incorrectly on
1012    most boards and loading these images will generally require an image
1013    conversion anyway.
1015  - Fix a crash when resizing windows.
1017  - Compile with versions < 1.0. We still recommend using newer versions.
1019  - Considerable code cleanup
1021  - Various optimizations regarding painting, loading of images and creation of
1022    surfaces.
1024  - Allow forcibly falling back to raster engine for painting operations by
1025    exporting QT_DIRECTFB_FORCE_RASTER=1
1027  - Reenable support for RGB32 primary surface.
1030 ****************************************************************************
1031 * Important Behavior Changes *
1032 ****************************************************************************
1034  - The experimental Direct3D paint engine has been removed. The reason for
1035    this is that Nokia focuses on OpenGL for desktop hardware accelerated
1036    rendering.
1038  - The default engine used to draw onto OpenGL buffers has changed in
1039    Qt 4.6. The QPaintEngine::OpenGL2 engine is now used as the default
1040    engine. This *may* cause compatibility problems for applications
1041    that use a mix of QPainter and native OpenGL calls to draw into a GL
1042    buffer. Use the QGL::setPreferredPaintEngine() function to enforce
1043    usage of the old GL paint engine.
1045  - When mixing OpenGL and QPainter calls you need to surround your
1046    custom OpenGL calls with QPainter::beginNativePainting() and
1047    QPainter::endNativePainting().
1048    This is to ensure that the paint engine flushes any pending drawing and sets
1049    up the GL modelview/projection matrices properly before you can issue custom
1050    OpenGL calls, and to let the paint engine synchronize to the painter state
1051    before resuming regular QPainter based drawing.
1053  - Graphics View has undergone heavy optimization work, and as a result of
1054    this work, the following behavior changes were introduced.
1056    a) QStyleOptionGraphicsItem::exposedRect now contains the item's bounding
1057       rectangle, and QStyleOptionGraphicsItem::matrix is uninitialized by
1058       default. You can enable an exact exposed rectangle and a correct matrix
1059       by enabling the flag QGraphicsItem::ItemUsesExtendedStyleOptions.
1061    b) QStyleOptionGraphicsItem::levelOfDetails is obsoleted and its value is
1062       always initialized to 1. Instead you can call
1063       QStyleOptionGraphicsItem::levelOfDetailFromTransform(const QTransform &)
1064       to determine the level of detail.
1066    c) QGraphicsView no longer calls QGraphicsView::drawItems(), and in turn
1067       QGraphicsScene::drawItems(), by default. You can get the old behavior
1068       back by enabling QGraphicsView::IndirectPainting.
1070    d) QGraphicsItem no longer calls itemChange() for position and
1071       transformation changes. If you want to receive notifications for changes
1072       to the item's position and transformation, you can set the flag
1073       QGraphicsItem::ItemSendsGeometryChanges (which is enabled by default by
1074       QGraphicsWidget and QGraphicsProxyWidget).
1076  - QDesktopWidget on X11 no longer emits the resized(int) signal when screens
1077    are added or removed. This was not done on other platforms. Use the
1078    screenCountChanged signal instead.
1080  - QUrl's parser is more strict when for hostnames in URLs. QUrl now
1081    enforces STD 3 rules:
1083     * each individual hostname section (between dots) must be at most
1084       63 ASCII characters in length;
1086     * only letters, digits, and the hyphen character are allowed in the
1087       ASCII range; letters outside the ASCII range follow the normal
1088       IDN rules
1090    That means QUrl no longer accepts some URLs that were invalid
1091    before, but weren't interpreted as such.
1093  - The Unix configure-time check for STL is stricter now in Qt
1094    4.6. This means some legacy STL implementations may fail to pass
1095    the test and, therefore, Qt will automatically disable STL support.
1097    This is a binary-compatible change: existing code will continue to
1098    work without being recompiled. However, it affects the source code,
1099    since some STL-compatibility API will not be enabled.
1101    Platforms affected by this change:
1102      * solaris-cc-* with the default (Cstd) C++ STL library
1103        recommendation: use -library=stlport4
1104        See Sun Studio's documentation for the effects of this option
1106  - QVariant has now a new implicit constructor that takes a float. This
1107    means that code that assigned a float to a variant would create a
1108    variant with userType QMetaType::Float, instead of QVariant::Double.
1110  - QDataStream will now read and write all floating point numbers with the
1111    same precision, regardless of whether it's streamed into or out from a
1112    float or double. This is to maintain compatibility across platforms with
1113    a different default precision for qreal. The default is 64-bit precision
1114    for all floating point numbers, and this can be changed using the new
1115    function setFloatingPointPrecision(). Set Qt_4_5 as the version of the
1116    QDataStream to get the behavior of previous versions.
1118  - On Mac OS X, QDesktopServices::storageLocation(DataLocation) now includes
1119    QCoreApplication::organizationName() and QCoreApplication::applicationName()
1120    if those are set. This matches the behavior on the other platforms.
1122  - The Animation Framework
1123    * currentTime() now returns the complete current time including previous
1124      loops.
1125    * currentLoopTime() returns the time inside the current loop.
1126    * stateChanged signal sends the new state as first parameter and old state
1127      as the second.
1128    * QAnimationGroup::clearAnimations() has been renamed to clear().
1129    * QAnimationGroup::insertAnimationAt() has been renamed to
1130      insertAnimation().
1131    * QAnimationGroup::takeAnimationAt() has been renamed to takeAnimation().
1132    * QSequentialAnimationGroup::insertPauseAt() has been renamed to
1133      insertPause().
1134    * [QT-941] Avoids timer ticks when there are only pause animations running.
1136 - Refactoring in OpenGL examples to improve portability and utilize the
1137   Animation framework for animation.  The hellogl and overpainting examples
1138   now compile on OpenGL/ES 1.1.  Also common code is factored.
1140 - Changed QWebFrame::setHtml() and setContent() to not affect the back/forward
1141   and the session history.
1143 - qmake no longer adds Qt internal dependencies to the linker when Qt
1144   is built in shared mode (not static). This means that applications
1145   that made use of platform-specific API may need to adjust the LIBS
1146   variable in their .pro files to match:
1148     X11: LIBS += -lX11
1149     Mac: LIBS += -framework AppKit -framework Carbon