diff options
authorAntti Kokko <antti.kokko@qt.io>2019-11-18 13:01:24 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2019-11-28 10:27:28 +0100
commit5a2e7087cbb11fce1f0f510ae7eb08b1e70e9989 (patch)
parentb3de744dba87fd8d5c2bdb9ed4c56a3e5455188b (diff)
Add changes file for Qt 5.14.0
Change-Id: I10bcc4794f8f09ae8c0042737b6da2e5b810d7af Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
1 files changed, 372 insertions, 0 deletions
diff --git a/dist/changes-5.14.0 b/dist/changes-5.14.0
new file mode 100644
index 0000000000..85f693b4ac
--- /dev/null
+++ b/dist/changes-5.14.0
@@ -0,0 +1,372 @@
+Qt 5.14 introduces many new features and improvements as well as bugfixes
+over the 5.13.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+The Qt version 5.14 series is binary compatible with the 5.13.x series.
+Applications compiled for 5.13 will continue to run with 5.14.
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+* QtQml *
+ - On Android, QML plugins are loaded directly from the APK libs dir and
+ use qrc:/android_rcc_bundle/qml to search for QML files.
+ - [QTBUG-38913] Added ability to import static qml plugins with CMake
+ builds using the new QT5_IMPORT_QML_PLUGINS function.
+ - The NaN obtained by Math.pow(+/-1, +/-infinity) and
+ (+/-1)**(+/-infinity) is now quiet rather than signalling.
+ - It is now possible to specify types for method parameters and their
+ return value in QML (basic and object types), using TypeScript-like
+ syntax with a colon separator. The syntax for QML declared signals
+ supports the same style.
+ - QML Binding elements now support restoring previous values
+ of the bound property when the binding is disabled. This will be the
+ default behavior in Qt 6.0. Reliance on the old behavior of only
+ restoring binding, not literal values will results in a warning beginning
+ with Qt 5.15.
+ - The regular expression engine was updated, causing somewhat better
+ compliance with the ECMAScript specification.
+ - [QTBUG-74190] Fixed a crash due to combination of aggressive GC with logging.
+ Also, the qt.qml.gc.* logging rules don't produce false warnings about huge
+ amounts of lost memory anymore.
+ - [QTBUG-75007] Usage of singletons from QML engines in different threads
+ does not cause race conditions anymore.
+ - The JIT compiler is now a configurable feature. You can pass
+ -no-feature-qml-jit to configure in order to skip it, or -feature-qml-jit
+ in order to build it for platforms where it's disabled by default, e.g.
+ iOS and tvOS.
+ - [QTBUG-49080][QTBUG-78955] You can now interrupt a QJSEngine running a
+ JavaScript program by setting its isInterrupted flag from a different thread.
+ - qmlscene will not run into an infinite loop anymore if you pass a QML
+ document without any executable code.
+ - You can configure the maximum sizes of the JavaScript and the garbage
+ collector stacks now, using the QV4_JS_MAX_STACK_SIZE and
+ QV4_GC_MAX_STACK_SIZE environment variables.
+ - [QTBUG-76346] Context properties carrying QObjects are automatically
+ reset when the objects are destroyed now.
+ - [QTBUG-40487] You can now use Component properties in Binding elements.
+ - [QTBUG-76932] Changing sourceComponent in a Loader does not delete
+ C++-owned objects anymore.
+ - qmllint can now check for unqualified access to to properties of the
+ root object and undeclared signal parameters.
+ - [QTBUG-77096] You can use generator functions in QML components now.
+ - You can and should use plain JavaScript functions as signal handlers in
+ Connections elements now. This avoids the overhead of the custom parser
+ that otherwise needs to run for each Connections element, and forces you
+ to specify the signal parameters you are going to use.
+ - You can pass a set of initial properties to QQmlApplicationEngine,
+ QQmlComponent, and QQuickView now. Those will be used as defaults in any
+ subsequent instantiation of top-level QML objects.
+ - Anonymous types should be registered via the new qmlRegisterAnonymousType()
+ function now, rather than via the parameter-less qmlRegisterType(). That
+ is, you should specify a URI and a major version for your type.
+ - [QTBUG-74087] The QML parser can parse more complex JavaScript code now
+ without overflowing the stack. This allows for deeper list nesting in QML.
+ - [QTBUG-76021] instanceof does not confuse derived types with no additional
+ properties with their parent types anymore.
+ - [QTBUG-78943] Binding elements will not randomly convert strings to other
+ types anymore.
+ - [QTBUG-48150] You can use aliases of "depth" 2 now. That is, something like
+ "property alias topMargin: myItem.anchors.topMargin" works now.
+ - [QTBUG-78325] The "color" type has a property "valid" now.
+ - [QTBUG-78044] The qmlprofiler command line tool's interactive mode is more
+ stable now.
+ - [QTBUG-48809] Fixed a warning about non-relative paths in qmldir files.
+ We now permit the use of resource urls in qmldir files to allow a plugin
+ to include its .qml files in resources, optionally compiled ahead of time.
+ - [QTBUG-79614] QQmlProperty now handles reads of QQmlPropertyMap correctly.
+ - [QTBUG-79443] In the debugger, we now avoid loading cache files, so that
+ JavaScript breakpoints keep working after the first run.
+ - [QTBUG-55259] qmlimportscanner now scans resources in qrc files.
+ - [QTBUG-78486] Calling a function with 14 arguments no longer crashes.
+ - [QTBUG-78721] Fixed handling of properties with interface type in bindings.
+ - [QTBUG-71078] Increased the QML loader thread's stack size to avoid problems
+ parsing deeply nested QML/JS files on some platforms.
+ - [QTBUG-72442] Fixed float value binding to an integer (including NaN values).
+ - [QTBUG-78566] A warning is emitted when overriding a declared Binding from
+ elsewhere. The Binding stays active and updates the target property again
+ on the next change.
+ - [QTBUG-77027] Fixed nullptr handling in Binding.
+ - [QTBUG-78859] Fixed a property cache memory leak.
+ - [QTBUG-78865] Fixed a memory leak due to declaring unused scripts in
+ qmldir files.
+ - [QTBUG-78706] Fixed inconsistent daylight saving time behavior by
+ converting QTime to V4 Date on a date with no DST in force.
+ - [QTBUG-78098] QQmlTypeLoader now prevents more trivial cycles.
+ - [QTBUG-77751] Fixed the translation context in Qt.include()d JS files.
+ - [QTBUG-76514] Avoid duplicate singleton creation.
+ - [QTBUG-77237] Using an enum in a switch statement performs much better.
+ - [QTBUG-76866] Fixed a crash due to inconsistency between
+ isValueType() and valueType()'s return value.
+ - [QTBUG-77954] Semicolon is always allowed after property declaration.
+ - [QTBUG-73512] Fixed a bug with use of resource paths in
+ QQmlEngine::setImportPathList().
+ - [QTBUG-76303] When converting from number to string, we now keep
+ double precision if the number of significant digits exceeds six, so that
+ precision isn't lost if the string is converted back to a number.
+ - [QTBUG-76838] Binding.when is stored as boolean to support primitive values.
+ - [QTBUG-76033] Fixed several bugs in frozen(), sealed(), nonExtensible()
+ and propertiesFrozen().
+ - [QTBUG-75983] Fixed a crash in XMLHttpRequest::open().
+ - [QTBUG-49975] Warn rather than crashing in case of invalid top-level
+ parallel states.
+ - [QTBUG-73786] We now filter out duplicate entries in Object.keys().
+ - [QTBUG-73491] Added QQmlInstanceModel::variantValue() to enable ComboBox.valueRole.
+ - [QTBUG-74348] Fixed memory leaks due to value type provider deletion order.
+ - There are two new functions to register singleton types and help you to
+ get rid of context properties:
+ * qmlRegisterSingletonType() has an overload taking a std::function now,
+ instead of a bare function pointer. Therefore, you can capture context
+ now when creating singletons.
+ * qmlRegisterSingletonInstance() directly passes a single instance of the
+ type to be used in all QML engines. No QML engine assumes ownership of
+ such a singleton and any concurrent access has to be handled by the
+ object itself.
+ - qml Runtime tool:
+ * [QTBUG-53557] The QML Runtime tool now accepts command-line arguments
+ in double-dash GNU style as well as the old single-dash style.
+ * [QTBUG-53557] The QML Runtime tool now has default behavior matching
+ qmlscene when the root QML object is an Item: it will be wrapped in a
+ Window which will resize the Item when the Window is resized. But you
+ can alternatively use the --config resizeToItem option, resulting in
+ the same behavior as qmlscene --resizeToRoot: resizing the root Item
+ programmatically causes the wrapping Window to be resized. Behavior
+ can still be customized in other ways using the --config option with
+ an external QML configuration file.
+ * The QML Runtime tool --quiet option now disables categorized logging
+ in addition to qDebug, qInfo, qWarning and qFatal, except for some
+ early QPA-level categorized logging that occurs during application
+ construction. You can still override specific categories by setting
+ * [QTBUG-78828] Fixed a crash at exit when the qmldebugger channel is
+ connected.
+ - qmlplugindump:
+ * [QTBUG-78745] If given a "--strict" argument, qmlplugindump will check
+ the URI as exact match; whereas by default it will ignore the given
+ major version, as before.
+ * [QTBUG-78744] qmlplugindump no longer ignores base classes of QML files
+ registered as components.
+ - Important Behavior Changes:
+ * QRegularExpression is now supported the same way QRegExp was in QML.
+ QJSValue::toVariant() creates a QRegularExpression variant rather than
+ a QRegExp one from a JavaScript regular expression now.
+ * The accidentally exported function qmlRegisterBaseTypes() was removed.
+ * QJSEngine::toScriptValue will now return correct JavaScript objects in
+ more cases, for example, for gadget types like QPointF.
+ * QJSEngine::toScriptValue now uses the same behavior as the rest of the
+ engine when building JavaScript values, which will cause the types of
+ some returned JavaScript objects to change. For instance, string lists
+ are now returned as sequence objects, not array objects, and QChar now
+ constructs a JavaScript string.
+ * [QTBUG-75176] Attached properties are internally not identified by
+ integer IDs anymore, but rather by the functions used to produce them.
+ Using the integer indexes is a bad idea because the same metatype can
+ be registered as several different QML types and the integer IDs refer
+ to the QML types. Therefore, qmlAttachedPropertiesObjectById() and the
+ overload of qmlAttachedPropertiesObject() taking an integer ID are
+ deprecated.
+ * We expect QMetaObject revisions and import minor versions to be equal.
+ That is, when registering a revision X of a metaobject as QML type for
+ a version Y.Z of your module, X should equal Z. This is not enforced,
+ yet, but future versions of Qt will build on this assumption.
+* QtQuick *
+ - Qt Quick is now able to render via Vulkan, Metal, and Direct 3D 11. The
+ new rendering path is currently a preview feature and has to be opted-in
+ to explicitly.
+ - Drag and Drop:
+ * [QTBUG-30305] When DropAreas intersect, the higher z-order item now
+ steals the drop.
+ * [QTBUG-72045] Fixed a crash when using an image provider url with Drag.
+ - DelegateModel:
+ * [QTBUG-63477] DelegateModel.delegate is now a notifying property,
+ and an Item View with model: DelegateModel { } is now refilled when
+ the delegate is changed.
+ - Event Handlers:
+ * Added WheelHandler, which handles mouse wheel rotation by modifying
+ arbitrary Item properties.
+ * [QTBUG-75661] Added DragHandler.snapMode which can be used to configure
+ conditions under which the dragged item is snapped to the cursor. The
+ default mode is SnapAuto. The old behavior can be obtained through the
+ SnapIfPressedOutsideTarget mode.
+ - Image:
+ * [QTBUG-77506] Image and BorderImage now have currentFrame and
+ frameCount properties which can be used to step through the frames of
+ multi-page image formats such as TIFF, WEBP and ICO (and PDF in the
+ future).
+ * [QTBUG-55027] Any URL interceptor is applied to the source binding.
+ * [QTBUG-76527] ImageProvider is kept alive while in use.
+ - FolderListModel:
+ * update the values of some properties when setting new values to them
+ - Layouts:
+ * [QTBUG-67204] GridLayout now warns rather than asserting when an
+ invalid row or column is specified.
+ * [QTBUG-79359] GridLayout now emits appropriate signals for
+ layoutDirection, columnSpacing, and rowSpacing changes.
+ - ListModel:
+ * [QTBUG-63569] We now emit a warning if an object with an undefined or
+ null member is added.
+ * [QTBUG-79083] JSON.stringify(model.get(i)) now works correctly when the
+ row contains a nested list model.
+ - Loader:
+ * [QTBUG-79435] Loader now clears all initial properties when changing source.
+ - MouseArea:
+ * [QTBUG-75993] mouseX and mouseY will now be synchronized after dragging
+ the target item.
+ * [QTBUG-77983] The containsMouse property will not become true when an
+ invisible mousearea become visible, if the enabled property is false or
+ its parent item is not enabled.
+ - MultiPointTouchArea:
+ * [QTBUG-77142] When a stationary touchpoint contains some "interesting"
+ property change (pressure or velocity, so far), it is delivered normally,
+ and MultiPointTouchArea will react to that.
+ - Particles:
+ * [QTBUG-54673] Fixed image particle flickering due to dynamic creation
+ of Emitter objects.
+ - Path and Shapes:
+ * Added Path.scale property to scale a path prior to rendering via
+ Shape or to scale the movement in PathView. The width and height
+ can be different, to achieve anisotropic scaling.
+ * Added PathPolyline, to render an array, list or vector of QPointF,
+ or a single QPolygonF.
+ * Added PathMultiLine, to render an array, list or vector of
+ polylines or QPolygonF.
+ * Exposed QQuickPath::pointAtPercent as invokable in QML.
+ * [QTBUG-77332] Fixed incorrect colors when shapes change scene.
+ - PathView:
+ * [QTBUG-77173] When the mouse is pressed while PathView is already moving,
+ PathView now grabs rather than allowing the delegate to handle it. The
+ position will then snap to the nearest delegate on release, as usual.
+ * [QTBUG-77173] If the user drags quickly, pauses, and then releases,
+ the calculated velocity is reduced according to a linear decay model
+ up to 50ms (and zero after that), to prevent excessive movement when
+ the user intended the pause to stop the movement.
+ - TableView:
+ * [QTBUG-79395] forceLayout() now rebuilds the table if the size of the
+ model has changed, to avoid a crash.
+ - Text:
+ * Markdown (GitHub dialect by default) is now a supported format, when
+ textFormat: Text.MarkdownText is declared. All features such as
+ hyperlinks, images, tables, lists, checklists, etc. are supported.
+ - TextEdit:
+ * Markdown (GitHub dialect by default) is now a supported format, when
+ textFormat: TextEdit.MarkdownText is declared. If it contains checkboxes,
+ the user can click on them to toggle the states.
+ * [QTBUG-14769][QTBUG-50482] The mouse cursor is now IBeamCursor by default,
+ or PointingHandCursor when the mouse is hovering over a checkbox or a
+ hyperlink. However this can be overridden in C++.
+ * [QTBUG-74745] Fixed overlapping text after line deletion.
+ - TextInput:
+ * [QTBUG-77814] Fixed text selection logic after insert() and remove().
+ - [QTBUG-79573] Fixed application deadlock when an item is reparented
+ to contentItem in a user-defined windowChanged handler, e.g. on exit.
+ - [QTBUG-78304] A ShortCutOverride event is now sent even when receiving a
+ non-spontaneous key press (e.g. from sendEvent()), so that Shortcut reacts.
+ - [QTBUG-76749] Fixed a crash when using an animation while destroying an item.
+* Qt Labs Animation *
+ - Added the BoundaryRule QML type, a PropertyValueInterceptor that
+ restricts the range of values a numeric property can have, applies
+ "resistance" when the value is overshooting, and provides the ability to
+ animate it back within range. This is especially useful in combination
+ with WheelHandler to limit its range of motion or adjustment.
+* Qt Labs QML Models *
+ - Added the TableModel QML type, a JavaScript-based model for the new
+ TableView.