aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/changes-5.11.0167
-rw-r--r--src/imports/imports.pro2
-rw-r--r--src/qml/compiler/qv4compilerscanfunctions.cpp6
-rw-r--r--src/qml/jsruntime/qv4dateobject.cpp2
-rw-r--r--src/quick/configure.json1
-rw-r--r--tools/tools.pro2
6 files changed, 177 insertions, 3 deletions
diff --git a/dist/changes-5.11.0 b/dist/changes-5.11.0
new file mode 100644
index 0000000000..f7afe87eb7
--- /dev/null
+++ b/dist/changes-5.11.0
@@ -0,0 +1,167 @@
+Qt 5.11 introduces many new features and improvements as well as bugfixes
+over the 5.10.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.11 series is binary compatible with the 5.10.x series.
+Applications compiled for 5.10 will continue to run with 5.11.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* Important Behavior Changes *
+****************************************************************************
+
+* QML module plugins used to be limited to type registrations in the
+ primary module namespace in the virtual registerTypes() function.
+ Module authors worked around this limitation by placing necessary
+ internal type registrations into initializeEngine() that may cause
+ memory leaks. Therefore this restriction has been moved and types in
+ any (non-protected) namespaces can be registered in the
+ registerTypes() function.
+
+* In Qt 5.11 and newer versions, QML plugin modules are available with
+ the same minor version as the Qt release minor version number. For
+ example it's possible to import QtQuick.Window 2.11 or import
+ QtQuick.Layouts 1.11 even though there haven't been any API changes in
+ these modules for Qt 5.11, and the maximum possible import version
+ will automatically increment in future Qt versions. This is intended
+ to reduce confusion.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QtQml
+-----
+
+ - Qt Qml uses a completely new compiler pipeline to compile Javascript (and QML) first
+ into bytecode and then JIT heavily used functions into assembly.
+ * Lots of cleanups and performance improvement to the way function calls and Javascript
+ scopes are being handled.
+ * Improved performance of JS property lookups.
+ * A new bytecode format that is very compact, saving memory in many cases.
+ * significantly faster bytecode interpreter than in earlier versions of Qt, in many cases
+ reaching almost the performance of the old JIT.
+ * A new JIT that works on top of the bytecode interpreter and only compiles hot functions
+ into assembly.
+ * Overall test results show almost a doubling of the JS performance on platforms where we
+ can't use a JIT (iOS and WinRT) compared to 5.10.
+ * With the new JIT, JS performance is usually around 10-40% faster than in older Qt versions
+ (depending on the use case).
+
+ - The commercial only Qt Quick Compiler has been removed and replaced with a common solution
+ that works in both the open source and commercial version of Qt. No code changes are needed
+ for users of the old compiler.
+
+ - Fix qmlplugindump to work correctly with shadow builds.
+
+ - Fixed creation of QWidgets in QML.
+
+ - Various fixes to the debugging bridge.
+
+ - ListModel
+ * Support assignment of function declarations in ListElement, to allow for
+ models with actions.
+
+QtQuick
+-------
+
+ - QQuickWindow:
+ * [QTBUG-66329] We no longer synthesize redundant mouse events based on
+ touch events that come from a trackpad which can generate mouse events.
+
+ - Item:
+ * [QTBUG-20524] Added a containmentMask property. This allows any
+ QObject which defines Q_INVOKABLE bool contains(const QPointF &point)
+ (including a Shape) to mask the area of an Item that will be
+ sensitive to mouse and touch events.
+
+ - AnimatedSprite:
+ * [QTBUG-36341] AnimatedSprite's implicitWidth and implicitHeight are
+ now based on frameWidth and frameHeight, respectively. This means it
+ is no longer necessary to explicitly size AnimatedSprite.
+
+ - Image:
+ * [QTBUG-66127] Support detection of suitable file extension.
+ * Add support for ktx files containing compressed textures.
+ * Add experimental automatic atlasing of ETC-compressed
+ textures (can be enabled with QSG_ENABLE_COMPRESSED_ATLAS=1).
+ * [QTBUG-67019] SVG images are now scaled up if the source size is larger
+ than the original size.
+ * [QTBUG-65789] SVG images are rendered with the correct aspect ratio
+ when width or height is set to zero.
+
+ - AnimatedImage:
+ * Added a speed property. It's also OK to set it to 0 to pause
+ the animation.
+ * There is now an example to demonstrate usage of AnimatedImage.
+ * [QTBUG-62913] frameCount now has a NOTIFY signal to avoid binding warnings.
+
+ - Path:
+ * [QTBUG-62684] Add new PathAngleArc type.
+
+ - Shape:
+ * A containsMode property is added. If it is set to FillContains, then
+ Shape.contains() returns true only within the visible bounds, so its
+ Pointer Handlers also respond only within those bounds.
+
+ - ShapePath:
+ * Improved performance for complex paths.
+
+ - Text:
+ * [QTBUG-60328][QTBUG-67145] Fixed Text with ElideRight not being rendered
+ when reparented.
+ * [QTBUG-67007] Fixed non-integer scale factors with Text native rendering.
+
+ - Pointer Handlers:
+ * Added singleTapped and doubleTapped convenience signals to TapHandler.
+ * PointerHandlers implement QQmlParserStatus, so that subclasses can
+ have custom initialization in componentComplete() (just as Items can).
+ * [QTBUG-65651] Restore 5.9 behavior: if an Item has no PointerHandlers,
+ childMouseEventFilter() will not be called during post-delivery of
+ an unhandled event.
+ * TapHandler.gesturePolicy is now DragThreshold by default.
+ * DragHandler with target: null no longer crashes.
+ * [QTBUG-64852] DragHandler enforces its axis constraints even when
+ the parent coordinate system changes during the drag. For example
+ the knob of a DragHandler-based slider inside a Flickable doesn't
+ come out of its "groove" if you manage to drag the slider and the
+ Flickable at the same time.
+
+ - Loader:
+ * [QTBUG-63729] Avoid evaluating bindings during destruction, to
+ avoid some spurious errors.
+ * [QTBUG-66822] When deactivating a loader, do not immediately clear
+ its context.
+
+ - Software renderer
+ * [QTBUG-63185][QTBUG-65975] QSGLayer::grab now works correctly.
+ * [QTBUG-66381] Fixed a crash when a Window has a QObject parent
+ (such as Loader).
+ * [QTBUG-65934] Fixed renering of rounded rectangles with floating point
+ pixel device ratios.
+
+ - Platform Specific Changes:
+ * [QTBUG-67460] Fixed a problem with jumping back to the highlight
+ while slowly scrolling a ListView on macOS.
+
+QtQuickTest
+-----------
+
+ - [QTBUG-50064] Added QUICK_TEST_MAIN_WITH_SETUP macro to allow executing
+ C++ before a QML test (such as registering context properties).
+
+QQuickWidget
+------------
+
+ - [QTBUG-45641] Tab presses are now passed on to the root item to be
+ handled first. When not handled by the root item, it will be handled
+ like a standard QWidget.
diff --git a/src/imports/imports.pro b/src/imports/imports.pro
index ad33312891..80f493da85 100644
--- a/src/imports/imports.pro
+++ b/src/imports/imports.pro
@@ -25,7 +25,7 @@ qtHaveModule(quick) {
qtConfig(quick-particles): \
SUBDIRS += particles
- SUBDIRS += shapes
+ qtConfig(quick-path): SUBDIRS += shapes
}
qtHaveModule(xmlpatterns) : SUBDIRS += xmllistmodel
diff --git a/src/qml/compiler/qv4compilerscanfunctions.cpp b/src/qml/compiler/qv4compilerscanfunctions.cpp
index 372e240700..eeb051046b 100644
--- a/src/qml/compiler/qv4compilerscanfunctions.cpp
+++ b/src/qml/compiler/qv4compilerscanfunctions.cpp
@@ -587,6 +587,12 @@ void ScanFunctions::calcEscapingVariables()
auto m = c->members.find(c->caughtVariable);
m->canEscape = true;
}
+ const QLatin1String exprForOn("expression for on");
+ if (c->contextType == ContextType::Binding && c->name.length() > exprForOn.size() &&
+ c->name.startsWith(exprForOn) && c->name.at(exprForOn.size()).isUpper())
+ // we don't really need this for bindings, but we do for signal handlers, and in this case,
+ // we don't know if the code is a signal handler or not.
+ c->requiresExecutionContext = true;
if (allVarsEscape) {
for (auto &m : c->members)
m.canEscape = true;
diff --git a/src/qml/jsruntime/qv4dateobject.cpp b/src/qml/jsruntime/qv4dateobject.cpp
index 8ad4ee8116..e9a2056a61 100644
--- a/src/qml/jsruntime/qv4dateobject.cpp
+++ b/src/qml/jsruntime/qv4dateobject.cpp
@@ -55,7 +55,7 @@
#include <wtf/MathExtras.h>
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) && QT_CONFIG(timezone)
/*
See QTBUG-56899. Although we don't (yet) have a proper way to reset the
system zone, the code below, that uses QTimeZone::systemTimeZone(), works
diff --git a/src/quick/configure.json b/src/quick/configure.json
index 01617c5395..ab356be557 100644
--- a/src/quick/configure.json
+++ b/src/quick/configure.json
@@ -129,6 +129,7 @@
"label": "Path support",
"purpose": "Provides Path elements.",
"section": "Qt Quick",
+ "condition": "features.quick-shadereffect",
"output": [
"privateFeature"
]
diff --git a/tools/tools.pro b/tools/tools.pro
index 23d5cb5299..d35605b5ae 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -6,7 +6,7 @@ qtConfig(qml-devtools) {
qmlmin \
qmlimportscanner
- qtConfig(commandlineparser): SUBDIRS += qmlcachegen
+ qtConfig(commandlineparser):qtConfig(xmlstreamwriter): SUBDIRS += qmlcachegen
}
!android|android_app {