aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-10-25 15:03:03 +0200
committerLiang Qi <liang.qi@qt.io>2017-10-25 15:03:03 +0200
commit3e20d1059a612ba5a6d3c049fe93f780f3ba3e58 (patch)
treeee20524e6bf4cfb41ea5b3bf867bc546abf9edd9
parent1aa91f8b0b140c417c6e97dfd22fa498d31bceb6 (diff)
parent2416b9d6cc2950395151c18a7f7bfceb4b7fc693 (diff)
Merge remote-tracking branch 'origin/5.9' into 5.10v5.10.0-beta3
-rw-r--r--src/qml/qml/qqmlengine.cpp1
-rw-r--r--src/qml/qml/qqmlplatform.cpp2
-rw-r--r--src/quick/items/qquickitem.cpp1
-rw-r--r--src/quick/items/qquicktranslate.cpp1
-rw-r--r--src/quick/util/qquickanimatorjob.cpp6
-rwxr-xr-xtests/auto/qml/ecmascripttests/test262.py46
-rw-r--r--tests/auto/quick/qquickanimations/tst_qquickanimations.cpp18
-rw-r--r--tests/auto/quick/qquickwindow/tst_qquickwindow.cpp13
8 files changed, 54 insertions, 34 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index 3ce50132c3..8f3c8ea8dd 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -445,6 +445,7 @@ The following functions are also on the Qt object.
\li \c "tvos" - tvOS
\li \c "linux" - Linux
\li \c "osx" - \macos
+ \li \c "qnx" - QNX (since Qt 5.9.3)
\li \c "unix" - Other Unix-based OS
\li \c "windows" - Windows
\li \c "winrt" - WinRT / UWP
diff --git a/src/qml/qml/qqmlplatform.cpp b/src/qml/qml/qqmlplatform.cpp
index a8c402af2e..0acf20bbb4 100644
--- a/src/qml/qml/qqmlplatform.cpp
+++ b/src/qml/qml/qqmlplatform.cpp
@@ -72,6 +72,8 @@ QString QQmlPlatform::os()
return QStringLiteral("windows");
#elif defined(Q_OS_LINUX)
return QStringLiteral("linux");
+#elif defined(Q_OS_QNX)
+ return QStringLiteral("qnx");
#elif defined(Q_OS_UNIX)
return QStringLiteral("unix");
#else
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index bfe67a0dd4..ccc4e90abf 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -122,6 +122,7 @@ void debugFocusTree(QQuickItem *item, QQuickItem *scope = 0, int depth = 1)
\li \l Rotation
\li \l Scale
\li \l Translate
+ \li \l Matrix4x4
\endlist
The Transform types let you create and control advanced transformations that can be configured
diff --git a/src/quick/items/qquicktranslate.cpp b/src/quick/items/qquicktranslate.cpp
index 9937c692a5..1c8dd02b92 100644
--- a/src/quick/items/qquicktranslate.cpp
+++ b/src/quick/items/qquicktranslate.cpp
@@ -467,6 +467,7 @@ public:
\instantiates QQuickMatrix4x4
\inqmlmodule QtQuick
\ingroup qtquick-visual-transforms
+ \since 5.3
\brief Provides a way to apply a 4x4 tranformation matrix to an \l Item
The Matrix4x4 type provides a way to apply a transformation to an
diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp
index a7950e2b33..43c8eb302a 100644
--- a/src/quick/util/qquickanimatorjob.cpp
+++ b/src/quick/util/qquickanimatorjob.cpp
@@ -197,8 +197,12 @@ void QQuickAnimatorProxyJob::windowChanged(QQuickWindow *window)
void QQuickAnimatorProxyJob::setWindow(QQuickWindow *window)
{
if (!window) {
- if (m_job && m_controller)
+ if (m_job && m_controller) {
+ disconnect(m_controller->window(), &QQuickWindow::sceneGraphInitialized,
+ this, &QQuickAnimatorProxyJob::sceneGraphInitialized);
m_controller->cancel(m_job);
+ }
+
m_controller = nullptr;
stop();
diff --git a/tests/auto/qml/ecmascripttests/test262.py b/tests/auto/qml/ecmascripttests/test262.py
index 9f0a7c1dee..437cd1b27d 100755
--- a/tests/auto/qml/ecmascripttests/test262.py
+++ b/tests/auto/qml/ecmascripttests/test262.py
@@ -1,39 +1,27 @@
#!/usr/bin/env python
#############################################################################
##
-## Copyright (C) 2015 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
+## Copyright (C) 2017 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
##
## This file is part of the test suite module of the Qt Toolkit.
##
-## $QT_BEGIN_LICENSE:BSD$
-## You may use this file under the terms of the BSD license as follows:
+## $QT_BEGIN_LICENSE:GPL-EXCEPT$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
##
-## "Redistribution and use in source and binary forms, with or without
-## modification, are permitted provided that the following conditions are
-## met:
-## * Redistributions of source code must retain the above copyright
-## notice, this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright
-## notice, this list of conditions and the following disclaimer in
-## the documentation and/or other materials provided with the
-## distribution.
-## * Neither the name of The Qt Company Ltd nor the names of its
-## contributors may be used to endorse or promote products derived
-## from this software without specific prior written permission.
-##
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 as published by the Free Software
+## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
##
## $QT_END_LICENSE$
##
diff --git a/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp b/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp
index fbd6c9c97e..4a7a77416a 100644
--- a/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp
+++ b/tests/auto/quick/qquickanimations/tst_qquickanimations.cpp
@@ -35,6 +35,7 @@
#include <QtQuick/private/qquickitemanimation_p_p.h>
#include <QtQuick/private/qquicktransition_p.h>
#include <QtQuick/private/qquickanimation_p.h>
+#include <QtQuick/private/qquickanimatorjob_p.h>
#include <QtQuick/private/qquickpathinterpolator_p.h>
#include <QtQuick/private/qquickitem_p.h>
#include <QEasingCurve>
@@ -103,6 +104,7 @@ private slots:
void defaultPropertyWarning();
void pathSvgAnimation();
void pathLineUnspecifiedXYBug();
+ void unsetAnimatorProxyJobWindow();
};
#define QTIMED_COMPARE(lhs, rhs) do { \
@@ -1567,6 +1569,22 @@ void tst_qquickanimations::pathLineUnspecifiedXYBug()
QCOMPARE(redRect->y(), qreal(0));
}
+void tst_qquickanimations::unsetAnimatorProxyJobWindow()
+{
+ QQuickWindow window;
+ QQuickItem item(window.contentItem());
+ QQuickAbstractAnimation animation(&item);
+ QAbstractAnimationJob *job = new QAbstractAnimationJob;
+ QQuickAnimatorProxyJob proxy(job, &animation);
+ QQuickItem dummy;
+ item.setParentItem(&dummy);
+ QSignalSpy spy(&window, SIGNAL(sceneGraphInitialized()));
+ window.show();
+ if (spy.count() < 1)
+ spy.wait();
+ QCOMPARE(proxy.job().data(), job);
+}
+
QTEST_MAIN(tst_qquickanimations)
#include "tst_qquickanimations.moc"
diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
index 2d03849981..c95d9b311e 100644
--- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
+++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
@@ -1936,10 +1936,15 @@ void tst_qquickwindow::testWindowVisibilityOrder()
QWindowList windows = QGuiApplication::topLevelWindows();
QTRY_COMPARE(windows.size(), 5);
- QCOMPARE(window3, QGuiApplication::focusWindow());
- QVERIFY(window1->isActive());
- QVERIFY(window2->isActive());
- QVERIFY(window3->isActive());
+ if (qgetenv("XDG_CURRENT_DESKTOP") == "Unity" && QGuiApplication::focusWindow() != window3) {
+ qDebug() << "Unity (flaky QTBUG-62604): expected window3 to have focus; actual focusWindow:"
+ << QGuiApplication::focusWindow();
+ } else {
+ QCOMPARE(window3, QGuiApplication::focusWindow());
+ QVERIFY(window1->isActive());
+ QVERIFY(window2->isActive());
+ QVERIFY(window3->isActive());
+ }
//Test if window4 is shown 2 seconds after the application startup
//with window4 visible window5 (transient child) should also become visible