Qt Changelog

New in version 5.4.0

December 11th, 2014
  • RENEWED WEB STORY:
  • HTML5 and Web technologies have become more and more important over the last years, and we have spent the last year developing a completely renewed Web offering for Qt. The Qt WebEngine module is the result of a long-term R&D project where we adopted the Chromium Web engine for use within Qt. With Qt 5.4, it is fully supported on the most used desktop and embedded platforms. Qt WebEngine provides you with an easy-to-use API to embed Web content in both Qt Widgets and Qt Quick based applications.
  • The new Qt WebChannel module provides a simple-to-use bridge between QML/C++ and HTML/Javascript. This enables the creation of hybrid applications that use both Qt and Web technologies. Communication between both sides happens by exposing QObjects in the Web context. The module works not only with Qt WebEngine, but also with any other browser engine that has support for Web sockets.
  • As a third component, Qt 5.4 introduces a Technology Preview of a new module called Qt WebView. The Qt WebView module offers a more limited API to embed the web browser that is native to the underlying operating system for use cases where the full Qt WebEngine isn’t needed, or where it can’t be used because of restrictions coming from the underlying OS. In Qt 5.4, the Qt WebView module supports iOS and Android.
  • Together with the Qt WebSockets module introduced in Qt 5.3, Qt now has great support for many of the latest Web technologies and makes interacting with Web content very easy. Qt WebEngine and Qt WebView make it very easy to embed HTML5, Qt WebChannel creates the communication channel between Qt and HTML5 that is required for hybrid applications, and Qt WebSockets allows for an easy communication between Qt and many Web services.
  • Qt 5.4 also still contains the older Qt WebKit module. Qt WebKit is still supported, but as of Qt 5.4 we consider it done, so no new functionality will be added to it. We are also planning to deprecate Qt WebKit in future releases, as the new Qt WebEngine provides what is needed. In most use cases, migrating from Qt WebKit to Qt WebEngine is rather straightforward. If you are starting a new project that requires web capabilities, we advise that you already start using Qt WebEngine.
  • QT FOR WINRT | COMPLETING OUR CROSS-PLATFORM OFFERING:
  • The second big new feature of Qt 5.4 is the completion of our cross-platform story with the full support for Qt on Windows Runtime. Qt for Windows Runtime was already added as a supported Beta to Qt 5.3, and has now reached the state where it is a fully supported part of Qt. With Qt for Windows Runtime, you can create applications for the Windows Store, targeting both Windows Phone 8.1 and above as well as Windows 8.1 and newer.
  • This port completes our cross-platform story and we feel that Qt now supports all currently relevant desktop, embedded and mobile operating systems.
  • GRAPHICS UPDATES:
  • Qt 5.4 brings also a lot of other new features and improvements. One focus are has been around graphics. With Qt 5.4, we now introduce better support for high-resolution displays for our desktop platforms. The support is still considered experimental in Qt 5.4, if you are interested, check out the overview documentation.
  • OpenGL support on Windows has been problematic in a few cases, since there aren’t always good drivers available. To help with this problem, Qt now has the capability to dynamically select the OpenGL implementation that is being used at application start-up time. Qt will now choose between using the native OpenGL driver, the ANGLE’s OpenGL ES 2.0 implementation that translates to DirectX or a pure Software rasterizer.
  • Qt Data Visualization has been updated to version 1.2 including additional features such as volume rendering and texture support for surface graphs and performance improvements. Qt Charts has now been updated to version 2.0 including better Qt 5 modularization, binary packages and minor improvements.
  • Other improvements on the graphics side is the new QOpenGLWidget class that replaces the old QGLWidget class from Qt 4 and allows us to deprecate the old Qt OpenGL module as all relevant functionality can now be found in Qt Gui. QOpenGLContext can now wrap existing native contexts. You can use the new QQuickRenderControl to render Qt Quick scenes into an offscreen buffer. For more details check out this blog post.
  • Finally, Qt 5.4 contains a technology preview of our new Qt Canvas3D module, that implements a WebGL like API for Qt Quick. This module makes it very easy to use Javascript code using WebGL within Qt Quick.
  • OTHER NEW FEATURES:
  • A large amount of other new features have also found their way into Qt 5.4. I’ll just mention a few of them in this blog post.
  • Qt now supports Bluetooth Low Energy on Linux using BlueZ. Support for other platforms will come in later versions of Qt. Bluetooth LE makes it possible to communicate with many modern Bluetooth devices such as e.g. wearables.
  • On Android we now have native looking Qt Quick Controls, as well as smaller deployment packages and faster application startup times. For iOS and Mac OS X, we have now support for the latest operating system versions, XCode 6 and the new code signing style required to push applications into the App Store. We especially worked hard to fix all issues related to the new style on Mac OS X 10.10.
  • Qt Qml comes now with support for Qt State Machines through the new QtQml.StateMachine import, and Qt Core has gained a new QStorageInfo class giving you information about mounted devices and volumes.
  • Qt Quick Controls now also come with a brand new and great looking ‘flat style’ that can be used on all platforms.
  • Qt 5.4, also comes with a brand new version of Qt Creator, Qt Creator 3.3. For details on all the new things in there check out our separate blog post.
  • QT FOR DEVICE CREATION:
  • We now have preliminary support to run Qt Applications on Wayland using the Weston compositor on i.MX6 based devices, including support for Video and Qt WebEngine.
  • We added a new B2Qt Utils module that gives easy access to device-specific settings such as the display backlight, hostname or power state from both C++ and QML. The B2Qt Wi-Fi module is now officially supported and makes it easy to configure your Wi-Fi network.
  • With this version, we have also added new hardware reference platforms, including a low-end profile for the GPU-less Freescale Vybrid. The complete list of reference hardware supported by Qt for device creation can be found in the documentation.
  • Apart from these new features we have added a large amount of improvements:
  • eAndroid Qt Multimedia plugin update: The implementation of Qt Multimedia for embedded Android has been refactored, resulting in a cleanly separated and easier maintained plugin for that platform.
  • SD Card Flashing Wizard for easier b2qt image deployment: Simple wizard for writing system image to SD card; Integrated into Qt Creator
  • BYOS (Build Your Own Stack) Improvements: Improved scripts for initializing and managing the Yocto build environment: Using repo tool for managing the numerous meta repositories needed for different devices.
  • eLinux: Camera support for i.MX6 devices: All necessary GStreamer plugins for using camera in Qt Quick applications are now integrated into reference device images; MIPI camera support added
  • QT QUICK WITHOUT OPENGL:
  • Another great new feature for our embedded customers is the new Qt Quick 2D Renderer module. This new commercial add-on allows using Qt Quick on embedded devices that have no OpenGL hardware acceleration. The new Qt Quick2DRenderer module can render most of Qt Quick using pure software rasterization or 2D hardware acceleration through e.g. DirectFB or Direct2D. The module support all of Qt Quick with the exception of OpenGL shaders and particles.
  • This enables the creation of Qt Quick based user interfaces with a modern look and feel on lower end devices than before. In addition, the ability to use the Qt Quick API across a device portfolio spanning devices both with and without OpenGL significantly reduces the amount of UI code you need to write and maintain. To showcase the Qt Quick 2D Renderer’s capabilities, we have added the Toradex Colibri VF50 and VF61 devices as new reference hardware to the Boot to Qt software stack, demonstrating our ability to run on the Freescale Vybrid SoCs.
  • INTRODUCTION OF LGPL V3:
  • As announced earlier, the open-source version for Qt 5.4 is also made available under the LGPLv3 license. The new licensing option allows us at The Qt Company to introduce more value-add components for the whole Qt ecosystem without making compromises on the business side. It also helps to protect 3rd party developers’ freedom from consumer device lock-down and prevents Tivoization as well as other misuse.
  • In Qt 5.4, a few modules are exclusively available under GPL/LGPLv3 or commercial license terms. These modules are the new Qt WebEngine and the Technology Previews ofQt WebView and Qt Canvas 3D. The Android style is only available under a commercial license or the LGPLv3. You can find more details here.
  • NEW FEATURES:
  • Qt GUI:
  • QOpenGLContext is now able to adopt existing native contexts (EGL, GLX, …). This allows interop between Qt and other frameworks, like game engines.
  • OpenGL ES 3.0/3.1 support is improved. The header file for the highest usable ES version (gl31.h, gl3.h or gl2.h) is now automatically included by Qt’s headers in -opengl es2 builds. Vertex array objects, framebuffer blits and multisampling are now supported via the standard GLES3 functions, where applicable.
  • Dynamic OpenGL implementation selection on application startup is now available on Windows when configured with -opengl dynamic. This allows using either opengl32.dll or ANGLE’s OpenGL ES 2.0 implementation in Qt and applications without the need for two separate builds of the binaries.
  • QOpenGLWidget: The modern replacement for QGLWidget and the counterpart of QQuickWidget.
  • QOpenGLWindow: Convenience class for performing OpenGL drawing onto a QWindow.
  • QRasterWindow: Covenience class for performing software-based drawing via QPainter onto a QWindow.
  • Support for 10-bit per color channels images. These can be rendered to and from, though internally the raster engine will still only use 8-bit per color channel. If used as the internal format of a QOpenGLFramebufferObject the OpenGL paint engine is able to render in full precision if supported by the OpenGL driver.
  • WinRT: Added support for native file dialogs
  • Qt Core:
  • WinRT: Added support for native settings container (local and roaming):
  • QStorageInfo: Class for providing information about currently mounted storage volumes and drives.
  • QByteArrayList: Convenience class adding similar extra methods on top of QList as QStringList does to QList.
  • QTabletEvent: added information about which stylus buttons are pressed; rotation and tangentialPressure have consistent ranges across platforms; proximity events include the type of stylus or other tool in use; manual tests and debug output are improved for better verification of functionality.
  • Qt Widgets:
  • Improved scaling of widget styles based on DPI.
  • Android style now also works when not using Ministro for deployment
  • Qt QML:
  • Declarative State Machine (DSM): QML wrapper for Qt’s State Machine Framework.
  • Qt Quick:
  • QQuickRenderControl is made public. This API allows efficient rendering of Qt Quick 2 scenes into framebuffer objects. The contents can then be used in arbitrary ways in Qt-based or 3rd party OpenGL renderers.
  • Introduced overlay and “pull back” headers and footers for ListView:
  • Added QQuickFontMetrics, which provides a subset of QFontMetricsF’s API.
  • Added QQuickTextMetrics, which provides a declarative API for the functions in QFontMetricsF which take arguments.
  • QQuickWidget is now supported on Android too.
  • Qt Quick Controls:
  • Android style
  • Qt Bluetooth:
  • Support for Bluez5
  • Tech Preview of Bluetooth Low Energy (client side support only, on Bluez 4 & 5)
  • QPA plugins:
  • The Wayland platform plugin is now part of the release.
  • XCB will now support screen with a depth of 30 (10 bit per color channel).
  • More font settings are parsed by fontconfig and GTK platform backends.
  • More categorized logging is in use so that you can enable it in the standard ways (qtlogging.ini etc.) instead of needing to set obscure environment variables or uncomment #defines. The log also provides more complete information, especially about events.
  • Support for integer device pixel ratios larger than one has been added to the XCB plugin. The ratio is controlled by the environment variable QT_DEVICE_PIXEL_RATIO.
  • Qt WebEngine:
  • New module with a web engine based on Chromium.
  • Qt WebKit:
  • Added support for OpenGL accelerated 2D canvas to QtWebKitWidgets.
  • OpenGL acceleration now also works with QOpenGLWidget.
  • The Qt WebKit module is considered done. It will in future be replaced by Qt WebEngine. This applies to the Widgets as well as to the QML API of Qt WebKit.
  • Qt WebChannel:
  • Introduction of a new module to bridge the gap between QML/C++ and HTML/JavaScript for Qt WebKit and other browser engines.
  • Qt Windows Extras:
  • Multiple thumbnail images when hovering over an application’s taskbar.
  • Qt Sensors:
  • Windows Phone: Added compass and ambient light sensors
  • Qt SQL:
  • Windows Phone: Added support for sqlite
  • Qt Network:
  • New bearer plugin for Android
  • PLATFORMS:
  • Qt for WinRT supported platform
  • Windows Phone 8.1 minimum supported version
  • iOS:
  • Accessibility support added. This enables Qt applications to be read by VoiceOver.
  • iOS port now uses fat builds with both 32-, and 64-bit support.
  • Improved support for iPhone6/6+.
  • QtQuick Controls now uses native text selection and popup menus.
  • Default theme fonts now uses Dynamic Type, which is based on user system settings.
  • DEPRECATED FEATURES:
  • Qt OpenGL:
  • The Qt OpenGL module (which contain classes that start with “QGL”) is now deprecated in favor of the Qt GUI module (which contain classes that start with “QOpenGL”). QGLWidget can now be replaced by QOpenGLWidget.

New in version 5.3.1 (June 27th, 2014)

  • QtCore:
  • QAbstractProxyModel:
  • Fixed QAbstractProxyModel::sibling to work in the same manner as the
  • Qt4 code used to behave. Previously, Qt5's implementation would treat
  • the row and column as positions in the source model instead of a
  • position in the proxy itself.
  • QtGui
  • Text:
  • [QTBUG-36083] Respect QFont::fixedPitch() for fallbacks when font
  • family cannot be matched.
  • [QTBUG-37190] Fixed crash when trying to load a font from invalid
  • data.
  • QtSql
  • QDB2 and QODBC
  • [QTBUG-39137] Fix error handling problem caused by unintialized variable
  • passed to SQLNumResultCols.
  • QPSQL
  • [QTBUG-12477] Fix PSQL column metadata.
  • QSqlQuery
  • Fix misbehavior of seek in special query positions BeforeFirstRow and
  • AfterLastRow. (commit 3e6e70bddd84536deaae69421d05785ae6ce28cd)
  • [QTBUG-33169] Fix for bindvalue(int) memory allocation problem.
  • QtWidgets
  • QMenu:
  • [QTBUG-38498] Accessibility: Menus are now read by screen readers
  • with more reliability.

New in version 5.3.0 (May 20th, 2014)

  • NEW FEATURES:
  • Qt Core:
  • Logging: You can now configure logging rules (i.e. which message types for which categories are printed) on the filesystem, in QtProject/qtlogging.ini. You can also using qCDebug and friends in a printf-style way, in addition to the streaming operator syntax.
  • Qt GUI:
  • Qt’s iOS plugin now implements support for input methods, spell checking and word completion.
  • Embedded Linux platform specifics (plugins like eglfs and linuxfb) are now documented.
  • New classes QPageSize and QPageLayout to manage PDF and printed document page sizes and layout.
  • QPdfWriter uses QPageSize and QPageLayout, can now set page orientation and paint resolution.
  • EGL support is now able to cope with OpenGL ES 3.0 and desktop OpenGL versions
  • Qt Print Support:
  • New QPA class QPlatformPrintDevice to abstract platform print device hardware, new implementations for Windows, Mac and Linux.
  • QPrinterInfo provides more details on the print device hardware
  • QPrinter uses QPageSize and QPageLayout to improve page layout handling
  • QPrinter has had the behaviour of most functions standardised across all platforms (as detailed below)
  • Mac can now have each painted page with a different orientation, and can set Collate Copies and Document Name.
  • Mac and Windows now support setting Document Creator and Duplex Mode
  • Mac and Linux now support using Windows Page ID (DMPAPER values)
  • Qt Quick:
  • Introduced QQuickWidget for easy and flexible integration of Quick views with QWidget-based UIs.
  • MultiPointTouchArea will either handle the mouse as a single touch point, or allow mouse events to pass through if mouseEnabled is false
  • Qt Quick Controls:
  • The Calendar control was added. Calendar allows selection of dates from a grid of days, similar to QCalendarWidget.
  • MenuStyle and MenuBarStyle introduced.
  • Qt Quick Dialogs:
  • The QML implementations are now built with QtQuick.Controls (and therefore the source is moved from qtdeclarative.git to qtquickcontrols.git), which enables adding some features such as folder shortcuts (both standard locations and bookmarked locations), and comboboxes for file filters and writing systems.
  • There is a new Dialog type which provides only the standard buttons, so that you can construct dialogs with arbitrary contents, such as various types of input dialogs and pickers.
  • Qt Network:
  • Support for the SPDY protocol (version 3.0) was added.
  • XCB/X11 platform plugin:
  • Support for XInput2 smooth scrolling. The plugin now listens for XInput2 scrolling events which means it will respond to high resolution smooth scrolling events on devices where they are supported. Currently this is mainly touch pads.
  • iOS platform plugin:
  • Support for input methods added.
  • Support for word completion and spell checking added.
  • Support for QClipboard added.
  • “Hide keyboard” gesture added.
  • Qt Multimedia:
  • A new QCameraInfo class was added. It allows to get static information about cameras such as physical position and sensor orientation. In addition, the class provides a way to list available cameras on the system and deprecates QCamera::availableDevices().
  • Qt WebKit:
  • Support for HTML5 Video Track. Subtitles and captions for HTML5 video.
  • Support for Indexed DB API. See http://www.w3.org/TR/IndexedDB/
  • Improved support for Mac HiDPI mode
  • Qt Positioning:
  • The module has been ported to Android and iOS. Android supports position and satellite updates while iOS supports position updates only.
  • Qt Bluetooth:
  • The module has been ported to Android.
  • Qt QML:
  • Profiling support for V4, using the same event types as the QML profiler.
  • Profile or debug multiple QML engines in one application with the new EngineControl debug service.
  • NEW MODULES:
  • Enginio A Backend-as-a-Service solution to ease the backend development for connected and data-driven applications.
  • Qt WebSockets An add-on module that implements the WebSocket standard (RFC 6455 – http://tools.ietf.org/html/rfc6455 ).
  • QT CREATOR 3.1:
  • Editors:
  • Better support of multiple editors/windows
  • C++:
  • Experimental new Clang based code model as opt-in
  • iOS:
  • Better support of multiple devices
  • QML:
  • Better Qbs support
  • Better defaulting/import resolving
  • Javascript profiler frontend (V4 only), integrated in QML profiler “events” and “timeline” views.
  • Debugger:
  • Improved LLDB support
  • Removed support for GDB builds without Python
  • Devices:
  • SSH parameters now available as QtC variables, e.g. for use in custom run configs
  • INSTALLATION:
  • New reference installers:
  • Qt for WinRT
  • Qt for Windows Phone
  • New target binaries:
  • Qt for MSVC 2013 (32 & 64 bit OpenGL and Angle)
  • DEPRECATED:
  • Mac OS 10.6 support is deprecated and scheduled for removal in Qt 5.4.

New in version 5.3 RC (May 8th, 2014)

  • NEW FEATURES:
  • Qt Core:
  • Logging: You can now configure logging rules (i.e. which message types for which categories are printed) on the filesystem, in QtProject/qtlogging.ini. You can also using qCDebug and friends in a printf-style way, in addition to the streaming operator syntax.
  • Qt GUI:
  • Qt’s iOS plugin now implements support for input methods, spell checking and word completion.
  • New classes QPageSize and QPageLayout to manage PDF and printed document page sizes and layout.
  • QPdfWriter uses QPageSize and QPageLayout, can now set page orientation and paint resolution.
  • EGL support is now able to cope with OpenGL ES 3.0 and desktop OpenGL versions
  • Qt Print Support
  • New QPA class QPlatformPrintDevice to abstract platform print device hardware, new implementations for Windows, Mac and Linux.
  • QPrinterInfo provides more details on the print device hardware
  • QPrinter uses QPageSize and QPageLayout to improve page layout handling
  • QPrinter has had the behaviour of most functions standardised across all platforms (as detailed below)
  • Mac can now have each painted page with a different orientation, and can set Collate Copies and Document Name.
  • Mac and Windows now support setting Document Creator and Duplex Mode
  • Mac and Linux now support using Windows Page ID (DMPAPER values)
  • Linux now requires CUPS 1.4 (RHEL 5 no longer supported)
  • Qt Quick:
  • Introduced QQuickWidget for easy and flexible integration of Quick views with QWidget-based UIs.
  • MultiPointTouchArea will either handle the mouse as a single touch point, or allow mouse events to pass through if mouseEnabled is false
  • Qt Quick Controls:
  • The Calendar control was added. Calendar allows selection of dates from a grid of days, similar to QCalendarWidget.
  • MenuStyle and MenuBarStyle introduced.
  • Qt Quick Dialogs:
  • The QML implementations are now built with QtQuick.Controls (and therefore the source is moved from qtdeclarative.git to qtquickcontrols.git), which enables adding some features such as folder shortcuts (both standard locations and bookmarked locations), and comboboxes for file filters and writing systems.
  • There is a new Dialog type which provides only the standard buttons, so that you can construct dialogs with arbitrary contents, such as various types of input dialogs and pickers.
  • Qt Network:
  • Support for the SPDY protocol (version 3.0) was added.
  • XCB/X11 platform plugin:
  • Support for XInput2 smooth scrolling. The plugin now listens for XInput2 scrolling events which means it will respond to high resolution smooth scrolling events on devices where they are supported. Currently this is mainly touch pads.
  • iOS platform plugin:
  • Support for input methods added.
  • Support for word completion and spell checking added.
  • Support for QClipboard added.
  • “Hide keyboard” gesture added.
  • Qt Multimedia:
  • A new QCameraInfo class was added. It allows to get static information about cameras such as physical position and sensor orientation. In addition, the class provides a way to list available cameras on the system and deprecates QCamera::availableDevices().
  • Qt WebKit:
  • Support for HTML5 Video Track. Subtitles and captions for HTML5 video.
  • Support for Indexed DB API. See http://www.w3.org/TR/IndexedDB/
  • Improved support for Mac HiDPI mode
  • Qt Positioning:
  • The module has been ported to Android and iOS. Android supports position and satellite updates while iOS supports position updates only.
  • Qt Bluetooth:
  • The module has been ported to Android.
  • Qt QML:
  • Profiling support for V4, using the same event types as the QML profiler.
  • Profile or debug multiple QML engines in one application with the new EngineControl debug service.
  • NEW MODULES:
  • Enginio A Backend-as-a-Service solution to ease the backend development for connected and data-driven applications.
  • Qt WebSockets An add-on module that implements the WebSocket standard (RFC 6455 – http://tools.ietf.org/html/rfc6455 ).
  • QT CREATOR 3.1:
  • Editors:
  • Better support of multiple editors/windows
  • C++:
  • Experimental new Clang based code model as opt-in
  • iOS:
  • Better support of multiple devices
  • QML:
  • Better Qbs support
  • Better defaulting/import resolving
  • Javascript profiler frontend (V4 only), integrated in QML profiler “events” and “timeline” views.
  • Debugger:
  • Improved LLDB support
  • Removed support for GDB builds without Python
  • Devices:
  • SSH parameters now available as QtC variables, e.g. for use in custom run configs
  • INSTALLATION:
  • New reference installers:
  • Qt for WinRT
  • Qt for Windows Phone
  • New target binaries:
  • Qt for MSVC 2013 (32 & 64 bit OpenGL and Angle)
  • DEPRECATED:
  • Mac OS 10.6 support is deprecated and scheduled for removal in Qt 5.4.

New in version 5.2.1 (February 5th, 2014)

  • IMPORTANT BEHAVIOR CHANGES:
  • [QTBUG-34345][QTBUG-26008][QTBUG-26430] QPrinter no longer allows you to set an invalid printer name.
  • [QTBUG-34141] Parsing of Qt::ISODate by QDate::fromString() and QDateTime()::fromString() is not as lenient as before, the date component separators are now required to be non-numeric. This means a string like "2000901901" will no longer be recognized as a valid ISO Date, but "2000/01/01" will still be even though it doesn't strictly meet the ISO format of "2000-01-01".
  • LIBRARY:
  • QtCore:
  • [QTBUG-35069] Fixed a bug that caused negative number input using '-' to be rejected because the current locale uses U+2212. QLocale::toString() as well as QIntValidator and QDoubleValidator now accept both '-' and U+2212, as well as the locale minus sign. QString also accepts '-' and U+2212.
  • Fixed sign conversion warnings in code using QMetaTypeId.
  • QTemporaryDir: Fixed a bug in QTemporaryDir name generator that dramatically reduced randomness of the name.
  • QThread: [QTBUG-34840] Fixed handle leaks on Windows.
  • QtGui:
  • [QTBUG-35421] Fixed crash when sending accessibility updates when the corresponding widget does not have a corresponding QAccessibleInterface. This showed on Mac for example with QStatusBar.
  • Qt's generic font database now adds OpenType fonts (.otf).
  • QKeySequence: [QTBUG-24406] return Qt::Key_unknown with invalid modifiers on OS X
  • Text: [QTBUG-35740] Fixed regression when shaping some strings containing characters from multiple fonts.
  • QtPrintSupport:
  • [QTBUG-34700][QTBUG-35500] Fixed bugs that caused QtPrintSupport not to report the correct the paper sizes on Windows and on OS X.
  • QtSql:
  • IBase support: [QTBUG-33345] Custom port numbers are now supported; [QTBUG-13435] Fixed the internal state of IBase driver after a failed open call.
  • MySQL / MariaDB support: [QTBUG-31124] Fixed handling of fractions of second.
  • Oracle support: [QTBUG-34794] Fixed the compilation
  • Sqlite support: [QTBUG-24200] Fixed handling of fractions of second; [QTBUG-35186] Fixed evaluation of driver options
  • QtTestLib:
  • [QTBUG-34630] The (default) plain text logger on Windows now logs to either the system debug log (in case no console is open), or stdout, not both.
  • QtWidgets:
  • QSpinBox: [QTBUG-20691] Entering positive values with the '+' prefix is now
  • allowed.
  • PLATFORM SPECIFIC CHANGES:
  • Android:
  • [QTBUG-34984] Added workarounds for OpenGL bugs on Samsung Galaxy Tab 3.
  • OS X:
  • [QTBUG-34411] Implemented QMainWindow::setUnifiedTitleAndToolBarOnMac.
  • X11 / XCB:
  • [QTBUG-32683] Fixed a bug that caused Qt applications to think the screen DPI had changed when it had not, after connecting or disconnecting monitors.
  • TOOLS:
  • Configure & build system:
  • [QTBUG-34949] EGL works with desktop OpenGL now
  • A build from source will not install the Qt DLLs into lib/ any more. The canonical location is bin/.
  • qmake:
  • [QTBUG-35530] Fixed the detection of multiple VS installations.
  • [QTBUG-35610] Fixed the generation of VS 2010 project files.
  • [QTBUG-32412] Numerous fixes to Windows PDB file handling.
  • [QTBUG-3883] Fixed make distclean not removing static library targets.
  • Added makespec for clang using libc++ on Linux.
  • qmake will not look for mkspecs/ directories in project trees any more. Use .qmake.conf and/or .qmake.cache to "anchor" project roots.

New in version 5.2 (December 12th, 2013)

  • Great Improvements for the Desktop:
  • Qt on desktop operating systems is the heart of Qt and has served as a stepping stone for the immense breadth of our operating system support throughout the years. That said a lot of improvements have happened with Qt 5.2 that are mainly targeting the desktop operating systems.
  • The Qt Quick Controls that were introduced for desktop in Qt 5.1 have received a lot of improvements and a couple of new control types.
  • Accessibility is now fully supported on all desktop platforms (and Android).
  • With Qt Windows Extras and Qt Mac Extras modules we are providing APIs to integrate better with native OS code.
  • Improved time zone and locale support with QTimeZone and QCollator
  • The Qt Widgets have also received multiple enhancements and a completely new class: QKeySequenceEdit
  • Bluetooth is now supported on Linux with the new Qt Bluetooth API
  • Qt on Mobile | Great Opportunities:
  • Qt 5.2 brings Qt to the largest mobile platforms, Android and iOS, and Qt applications can now run natively on all major desktop, embedded and mobile platforms. Qt 5.2 provides developers with great opportunities to be at the forefront of the global mobile markets.
  • Enterprise Mobility. Take your existing desktop or embedded application/services also to the largest mobile platforms by simply reusing your desktop/embedded code or re-scaling the UI to a small-screen layout. Eg. write a mobile client for your enterprise backend systems.
Bring Your Own Device (BYOD). Make an embedded device UI that can also be taken directly to your end users' phones or tablets. Automotive entertainment, remote controls, internet of things...
Cross-Platform Consumer Applications. Target the majority of devices out there with one code base using Qt. All major OSs and versions, phones, tablets. For mobile consumer app creation, we're specifically introducing a new, mobile-only tailored offering, Qt Mobile, with a flexible, subscription based license type.
Multiscreen applications. Qt applications can be designed to run everywhere: Desktop PCs, tablets, phones and separate embedded devices. With Qt Cloud Services you retain an un-interrupted user experience between the devices.
  • Most of the Qt APIs are supported in Qt 5.2 both on Android and iOS. Since these are new platforms, there are, however, some exceptions. Qt WebKit is not yet supported on these platforms (Qt WebKit can’t be brought to iOS due to App Store policies), but we are working on bringing an easy way to embed web content via Qt APIs to these mobile platforms in the future. In the meantime, we recommend the use of native web elements. For Android, there's a new Android extras module with a convenience API for Android JNI usage.
  • Enhanced Internals--More Power & Flexibility:
  • The former JavaScript engine, V8, which was used internally by Qt Quick, has been replaced with a completely new, Qt-specific engine. This new engine is now designed from scratch for the use case of QML and Qt Quick. It internally operates directly with Qt data types, avoiding many costly conversions. It has both a JIT and an interpreter which greatly extends the range of platforms and operating systems it can support. The interpreter also allows us to use the engine on iOS and comply with App Store policies.
  • New Scene Graph renderer. This new renderer improves the graphics performance of Qt Quick even further, freeing up more CPU time for the application and using the GPU in a much more efficient way. Read more from this blog post.
  • Continued Innovation, Enhanced APIs:
  • Qt Positioning API. Supported on all platforms using NMEA data, and using GeoClue on Linux
  • Qt Bluetooth API. Supported on Linux with Bluez 4.x and BlackBerry
  • Animations for QML that can not be blocked by high loads on the main thread
  • Additional mobile-specific controls for Qt Quick Controls
  • Qt WebKit has also received a major update now being based on a WebKit version from summer 2013. This includes many new features such CSS Blending, Geolocation, Web Notifications and a threaded garbage collector.

New in version 5.2 Beta 1 (October 25th, 2013)

  • Enhanced Internals — More Power and Flexibility:
  • Qt 5.2 introduces a new Scene Graph renderer. This new renderer improves the graphics performance of Qt Quick even further, freeing up more CPU time for the application and using the GPU in a much more efficient way.
  • The former JavaScript engine, V8, which was used internally by Qt Quick, has been replaced with a completely new, Qt-specific engine. This new engine is now designed from scratch for the use case of QML and Qt Quick. It internally operates directly with Qt data types, avoiding many costly conversions. It has both a JIT and an interpreter which greatly extends the range of platforms and operating systems it can support. The interpreter also allows us to use the engine on iOS and comply with iOS AppStore policies.
  • Some of the main new features of Qt 5.2 include:
  • Qt Bluetooth: supported on Linux with Bluez 4.x and Blackberry
  • Qt NFC: supported on Blackberry
  • Qt Positioning: supported on all platforms using NMEA data, and using GeoClue on Linux
  • Qt Windows Extras: Integrate with native code on Windows
  • Qt Mac Extras: Integrate with native code on Mac OS X
  • Qt Android Extras: Integrate with native code on Android
  • Improved time zone and locale support with QTimeZone and QCollator
  • Enhancements to multiple Qt Widgets and a new one, the QKeySequenceEdit class
  • Animations for QML that can not be blocked by high loads on the main thread
  • Some new features and mobile specific controls for Qt Quick Controls
  • Accessibility is now fully supported on all desktop platforms and basic support on Android.

New in version 5.2 Alpha (September 30th, 2013)

  • Android and iOS support:
  • Qt 5.2 is the first Qt release to fully support development of Qt applications for Android and iOS. A lot of work has gone into supporting these two platforms, and now make Qt a great solution for development of mobile applications.
  • With the exception of WebKit, all essential modules are supported in both Android and iOS. This includes all of Qt Core, Qt Network, Qt Gui, Qt Widgets, Qt Qml, Qt Quick and Qt Multimedia. From the Qt add-ons Qt Sensors, Qt Graphical Effects, Qt Positioning, Qt Script and Qt SVG are supported. On Android, Qt SerialPort and a special Qt Android Extras module are also supported.
  • New modules:
  • Qt Bluetooth is supported on Linux with Bluez 4.x and Blackberry
  • Qt NFC is supported on Blackberry
  • Qt Positioning is supported on all platforms using NMEA data, and using GeoClue on Linux
  • Qt Windows Extras Integrate with native code on Windows
  • Qt Mac Extras Integrate with native code on Mac OS X
  • Qt Android Extras Integrate with native code on Android
  • The last three add-ons contain platform specific additions, and complement the Qt X11 Extras module introduced with Qt 5.1.
  • Qt base modules:
  • Qt Core got some new functionality, most notably the new QTimezone and QCollator classes. QTimezone is integrated with QDatetime and now allows proper handling of timezones. QCollator allows for locale specific sorting of strings, a long outstanding feature in Qt. Qt Network has received some improvements in its SSL handling. Qt Widgets has gotten lots of smaller improvements and a new QKeySequenceEdit class. Our Accessibility support has been greatly improved, with support for Mac OS X, basic support on Android and a set of public APIs that allow implementing accessibility support for custom widgets.
  • Qt Qml and Qt Quick:
  • The QML engine has undergone some intensive work over the last 9 months, and the first results can be seen in Qt 5.2. Qt Qml is now using its own built-in Javascript engine and does not depend on V8 anymore. As such the QtJSBackend shared library has disappeared.
  • We are now using our own built-in engine instead of V8 for many reasons. One of the immediately visible benefits is that we are actually able to support Qt Quick 2 on iOS. In addition, the size of our Qml stack has decreased by around 5 MB and there’s one shared library less that needs to get deployed. Finally, it makes the whole stack a lot more maintainable and will thus allow us to improve the module at a faster pace in the future.
  • While the new engine is somewhat slower then V8 when it comes to pure Javascript performance, it allows us to optimise for the common use cases in QML and Qt Quick a lot better. Quite a lot of optimisation work is still ongoing now during the release cycle, and we expect to have comparable Javascript performance to Qt Script with 5.2.0. For QML bindings, we will see improvements for most use cases.
  • In addition, Qt Qml now supports File selectors to make it easier to customize your QML code depending on operating system and other variables.
  • Significant improvements also made it into Qt Quick. First and foremost, the module got a new scene graph renderer, that significantly reduces both CPU and GPU load for many use cases. The new Animator QML type offers animations that fully run on the rendering thread and won’t block or stutter even if your main thread has some long running calculations to perform.
  • The Qt Quick Controls have a couple of new Controls and features to offer. Switches and Busy Indicators got added, Table view now supports movable columns and extended selections. In addition, deployment has been greatly simplified.
  • Qt Creator:
  • Last but not least, we are planning to ship Qt 5.2 together with a new release of Qt Creator, Qt Creator 3.0. The new Creator will feature an improved Android support, initial iOS support, extensions for multiple screens, a cleanup in the Creator plugin APIs and initial support for lldb.

New in version 5.1.1 (September 3rd, 2013)

  • GENERAL:
  • Add support for Visual Studio 2013
  • Remove obsolete 'register' C keyword
  • Speed up font database loading with fontconfig
  • [QTBUG-32284] Fix incomplete override of QIODevice::open in QProcess and QLocalSocket
  • LIBRARY:
  • QtCore:
  • Add basic conversion functions from QVariant(QJsonValue)
  • Fix crash when re-creating QThreadData after initially destroying it
  • Fix the host_bins variable in the QtCore pkg-config file
  • QUrl stringprep: fix handling of U+0080: it's prohibited
  • QUrl stringprep: avoid recalculating the surrogates we already know
  • QUrl stringprep: fix handling of prohibited characters
  • QUrl stringprep: fix case folding from non-BMP to BMP
  • QUrl stringprep: recalculate the current position if the size changes
  • [QTBUG-24345] Prevent negative size in QBitArray, QVector and QVarLengthArray ctors
  • [QTBUG-25732] Mention QRect's int min/max constraints in detailed description
  • [QTBUG-29391] fix infinite loop in QProcessPrivate::drainOutputPipes
  • [QTBUG-29391] QWinOverlappedIoNotifier: fix race condition
  • [QTBUG-31341] Fix watch of files/folders with special characters
  • [QTBUG-31606] Fix dead lock in the Qt event handling
  • [QTBUG-31926] Fix the number precision in QJsonDocument.toJson() again
  • [QTBUG-32100] Remove default argument from declarations of qHash as friend
  • [QTBUG-32314] QDir::mkpath shouldn't fail if parent directory denies access
  • [QTBUG-32354] fix endless loop in QProcess/Win drainOutputPipes
  • [QTBUG-32500] Ensure that the user codecs are listed in QTextCodec::availableCodecs
  • QtDBus:
  • [QTBUG-27973] Fix disconnectFrom{Peer,Bus} when the connection failed
  • [QTBUG-31932] Don't crash if the relayed signal was emitted from the wrong thread
  • [QTBUG-32374] Fix QDBusAbstractInterface::isValid() for peer connections
  • QtGui:
  • Restore smooth-scaled drawing of 0.5x-2.0x scaled glyphs in the GL engine
  • QIcon: Avoid fetching twice the same pixmap
  • Fix FBO restoring in QOpenGLTextureGlyphCache
  • [QTBUG-28284] Set projection matrix for systems with OpenGL 3.1
  • [QTBUG-31443] QPdfWriter: Fix setting of paper size
  • [QTBUG-32193] REG: Fix crash when mixing projected/unprojected text painting
  • [QTBUG-32433] Detect popup window correctly in modal window blocked handling
  • QtNetwork:
  • Correct algorithm for digest auth when using the CONNECT verb
  • Add reconnect attempts in more cases in QHttpNetworkConnectionChannel
  • [QTBUG-32404] HTTP internals: do not access reply that was deleted already
  • [QTBUG-32534] QHttpMultiPart: fix data corruption in readData method
  • QtPrintSupport:
  • [QTBUG-31790] Initialize UI of widget-based dialog.
  • QtWidgets:
  • Display sizegrip on QMdiSubWindows, even on OS X 10.7 and later
  • Check if widget inherits from QTextEdit when drawing the frame
  • Fix QWidget::isActiveWindow for window containers
  • Hide placeholder text when QLineEdit has preedit text
  • [QTBUG-19036] Make *ItemBoundingRect modes work with custom shapes.
  • [QTBUG-29945] Fix dropshadow and blur graphics effects
  • [QTBUG-31044] QDockWidget: Keep position when undocking
  • [QTBUG-31569] If a QWidget is ignored for auto-quit, ignore its corresponding QWindow
  • [QTBUG-31664] Recognize separator item in QMenu
  • [QTBUG-31904] Fix rotation of text in vertical QDockWidget titlebars in QFusionStyle
  • [QTBUG-32054] Set correct cell when selecting custom color cell with arrow keys
  • [QTBUG-32061] Fix the cursor position of an empty QLineEdit with a placeholder text
  • [QTBUG-32177] Search toplevel when setting the active window from focus window
  • [QTBUG-32260] Consider virtual screen when determining dock widget visibility
  • PLATFORM SPECIFIC CHANGES:
  • Qt for Linux:
  • XCB: Don't use Xlib's XBell() function
  • XCB: Append 0-character to atom name string
  • Resolve modifier mask conflicts on X11
  • Fix system tray icon on X11
  • [QTBUG-31418] Fix for when we don't have XSettings
  • [QTBUG-32274] Fix handling of non-latin1 shortcuts
  • Qt for Mac:
  • Disable window restoration for the Mac font panel
  • Simplify qt_mac_cgimage_to_nsimage code
  • QMacStyle: fix auto-default button animation
  • Make the macx-xcode spec a wrapper around the default spec
  • Scope cached Mac SDK tool values by mkspec
  • Further followup to Q_OS_MACX changes
  • Fix QSpinBox clipping issue on Mac when frame=false
  • QMacStyle: enable scroll style changes for non-QScrollBars
  • Support Mac key equivalent Cmd+Period
  • Re-establish platform menu QObject hierarchy
  • [QTBUG-28336] Fixed broken prl files in debug-and-release framework builds of qt
  • [QTBUG-31477] Let Cocoa pick the right pixmap for menu item icons
  • [QTBUG-31532] Don't update the menubar when popups are shown
  • [QTBUG-31619] Cocoa save file dialog behavior fix
  • [QTBUG-31819] Fix shared color panel usage
  • [QTBUG-31562] Fix for OS X QFileDialog showing bundle as directory
  • [QTBUG-32440] Avoid a potential crash in unignoredChildren
  • [QTBUG-32831] Don't release the printer after using it to change a property
  • Qt for Windows:
  • Clear window under mouse in destruction of platform window
  • Prevent activation of windows with Qt::WindowDoesNotAcceptFocus
  • Better errorhandling for the fontengine on WINCE
  • Windows: Synthesize expose event for shrinking windows
  • Windows font database: Resolve aliases for extra fonts
  • Bugfix QDesktopServices on Windows
  • ActiveQt: Pass native parent handle property from widget to widget window
  • REG: Fix character size when exporting PDF on Windows
  • Fix crash caused by ~QWindowsWindow flushing the event queue
  • Show native file dialog on Windows XP Professional x64 Edition
  • Fix detection of synthesized mouse events for MSVC / 64bit
  • Display a message box if platform plugin cannot be found
  • Fix auto-enabling of windows style
  • Fixes QKeyEvent::count() on Windows
  • Qt for BlackBerry:
  • Disable xkbcommon when building for QNX from Windows
  • [QTBUG-32385] Handle Qt::WindowDoesNotAcceptFocus correctly
  • Qt for Android:
  • Get SSL root certificates from TrustManager
  • Adjust to new SDK layout on Windows
  • Make PCRE's JIT work on Android devices
  • Qt for iOS:
  • iOS: Make sure we're deleting framebuffers in the right context
  • TOOLS:
  • configure:
  • [QTBUG-5366] Complain about bad arguments to -make/-nomake
  • [QTBUG-21778] Catch accidental use of -no-make
  • [QTBUG-28763] Don't enable EGL support if OpenGL is disabled
  • cmake config files:
  • Use absolute path in the /usr move workaround if -libdir is specified
  • Always use forward slashes in paths passed to cmake
  • Make clients use the QT_NO_DEBUG flag when using QtCore in release mode
  • [QTBUG-32134] Add path to the headers in frameworks to the include dirs
  • [QTBUG-32466] Don't check for the existence of private include directories
  • qmake:
  • [QTBUG-5301] basic manifest tool support in vc(x)proj generator
  • [QTBUG-19352] Resolve output of .depend_command relative to $$OUT_PWD
  • [QTBUG-29826] Only add the res_file to the generated files if there is no rc_file
  • [QTBUG-29988] VPATH resolution: don't crash when $(FOO) expands to nothing
  • [QTBUG-30993] Changed project dependencies for solution files
  • [QTBUG-31877] Make $$list() more backwards-compatible regarding backslashes
  • [QTBUG-31975] MANIFEST:NO is not written to vcproj
  • [QTBUG-32326] Escape paths coming from prl files