Qt 5.1 introduces many new features and improvements as well as bugfixes over the 5.0.x series. For more details, refer to the online documentation included in this distribution. The documentation is also available online: http://qt-project.org/doc/qt-5.1 The Qt version 5.1 series is binary compatible with the 5.0.x series. Applications compiled for 5.0 will continue to run with 5.1. Some of the changes listed in this file include issue tracking numbers corresponding to tasks in the Qt Bug Tracker: http://bugreports.qt-project.org/ Each of these identifiers can be entered in the bug tracker to obtain more information about a particular change. **************************************************************************** * General * **************************************************************************** General Improvements -------------------- - The Qt.application object in QML has gained the following new members * arguments property, containing any command line arguments of the application * name property, containing the string of the application name * version property, containing the string of the application version * aboutToQuit() signal, allowing last-minute cleanup - New Qt.platform.os property exposes the current platform. Third party components ---------------------- **************************************************************************** * Important Behavior Changes * **************************************************************************** - A Window declared nested inside another Item or Window automatically becomes transient for (centered upon) its parent's window, if x and y were not explicitly specified - The resources property of Item is now its own property independent of QObject. It no longer returns all QObject children, or explicitly sets QObject parent. The resources property now behaves as documented. - As part of a fix for QTBUG-30555, ListView and GridView properties, such as count, which are based off of the data model will no longer update immediately if queried. Updates are batched to happen once per frame (or when properties are being set). You may manually update using the forceLayout() method, new in QtQuick 2.1. - For QML tests, tryCompare now correctly fails when it only gets two parameters - If a QObject has a property and a slot (or invokable method) with the same name, in QML the previous behavior was to let the property obscure the method; from Qt 5.1 things work in the opposite way, that is a property can never obscure a method having the same name. This is especially important for objects having dynamic properties, such as QQmlPropertyMap. This change was a consequence of the fix for QTBUG-29836. - The 'with' statement has been deprecated in the QML language. Using this statement now produces a deprecation warning, and future versions of the QML engine may not recognize it. - The implicit import is now only loaded for QML files if there are unresolved types after loading all explicit imports. Applications where the implicit import triggered code other than the registration of types will now need to add import "." to their QML files. **************************************************************************** * Library * **************************************************************************** QtQml ------ - New QML import version QtQml.Models 2.1 contains generic versions of the VisualModel types. These new generic versions work with any QObject based delegate, not just QQuickItem based delegates. - New module version QtQml 2.1 provides the new Instantiator type, which is a generic version of Repeater which works with any QObject based delegate, not just QQuickItem based delegates. - New convenience class QQmlApplicationEngine automatically provides functionality common in the C++ shell of a primarily QML application. - New qmlClearTypeRegistrations() function in qqml.h. This function drops all static data generated by previous qmlRegisterType calls. - New qmlRegisteredType function in qqml.h, allowing the registration of composite types from C++. - New baseUrl() accessor in QQmlExtensionPlugin, in case a plugin needs to load QML or other assets from the same directory. QtQuick ------ - New QML import version QtQuick 2.1 contains no new types, but adds new properties, methods and signals to existing types. See the release notes in the QtQuick documentation for details. - QTBUG-30837: The Flickable type no longer fixes up the content area on startup to move it inside the viewport. - QTBUG-28086: Remote image URLs now work as a source for AnimatedSprite **************************************************************************** * Database Drivers * **************************************************************************** **************************************************************************** * Platform Specific Changes * **************************************************************************** - New threaded render loop for Mac and Linux should lead to improved graphical performance of QtQuick 2 on those platforms. - New render loop on Windows should lead to smoother animations. - assets: scheme supported on Android for urls inside QML - Mac: "@2x" images are now loaded on "retina" systems. **************************************************************************** * Compiler Specific Changes * **************************************************************************** **************************************************************************** * Tools * **************************************************************************** - qmlplugindump gains a -relocatable flag. **************************************************************************** * Plugins * **************************************************************************** - New QML import QtQuick.Dialogs 1.0 contains types for more easily adding dialogs to an application. Initially comes with FileDialog and ColorDialog - New QML import version QtQuick.Window 2.1 adds many new properties to both the Screen and Window types. See the release notes in the QtQuick documentation for further details. - QTBUG-30915: Animating emitRate on Emitter no longer fails for specific animation timings. As a side effect, when emitting infinite particles changing the particle count will no longer have an effect after initial emission (previously it no longer had an effect after a certain point into the animation).