[SCM] qtdeclarative packaging branch, ubuntu-lts, updated. debian/5.6.1-11-117-gda12070
Timo Jyrinki
timo at moszumanska.debian.org
Tue Feb 28 11:34:48 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtdeclarative.git;a=commitdiff;h=83ab909
The following commit has been merged in the ubuntu-lts branch:
commit 83ab90943c0248491b8bc689d3ec497b4ec21829
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date: Wed Jan 4 09:03:55 2017 +0000
debian/patches/Fix-SignalSpy-with-QQmlPropertyMap-signals.patch:
* debian/patches/Fix-SignalSpy-with-QQmlPropertyMap-signals.patch:
- Backport from 5.8 (LP: #1624251)
---
debian/changelog | 2 +
...ix-SignalSpy-with-QQmlPropertyMap-signals.patch | 349 +++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 352 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 3e4dfc2..f94733b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,8 @@ qtdeclarative-opensource-src (5.6.2-0ubuntu1) UNRELEASED; urgency=medium
- Flickable-fix-minXExtent-minYExtent-when-content-is-.patch
- QQuickWindow-Fill-out-timestamps-in-QHoverEvents-sen.patch
- Revert-Remove-this-piece-of-code.patch
+ * debian/patches/Fix-SignalSpy-with-QQmlPropertyMap-signals.patch:
+ - Backport from 5.8 (LP: #1624251)
-- Timo Jyrinki <timo-jyrinki at ubuntu.com> Thu, 06 Oct 2016 14:39:07 +0000
diff --git a/debian/patches/Fix-SignalSpy-with-QQmlPropertyMap-signals.patch b/debian/patches/Fix-SignalSpy-with-QQmlPropertyMap-signals.patch
new file mode 100644
index 0000000..53b59bf
--- /dev/null
+++ b/debian/patches/Fix-SignalSpy-with-QQmlPropertyMap-signals.patch
@@ -0,0 +1,349 @@
+From b19ebe1d23e1f2fd334cef4ec2731ab5cc69dbd7 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <albert.astals at canonical.com>
+Date: Tue, 22 Nov 2016 12:26:54 +0100
+Subject: [PATCH] Fix SignalSpy with QQmlPropertyMap signals
+
+2e7d4ecdc59942b484159ca827f5d5dbc8787a1b caused the regression.
+To fix the regression I try accessing the signal name first
+and if it is not a function try accessing the handler name.
+
+Comes with a unit test to test both cases.
+
+Change-Id: I3897f344df9c6219636c70259eed503d9b76f09e
+Reviewed-by: Qt CI Bot <qt_ci_bot at qt-project.org>
+Reviewed-by: Simon Hausmann <simon.hausmann at qt.io>
+---
+ src/imports/testlib/SignalSpy.qml | 10 ++-
+ tests/auto/auto.pro | 1 +
+ tests/auto/quicktest/quicktest.pro | 3 +
+ tests/auto/quicktest/signalspy/data/signalspy.qml | 60 ++++++++++++++
+ tests/auto/quicktest/signalspy/mypropertymap.cpp | 38 +++++++++
+ tests/auto/quicktest/signalspy/mypropertymap.h | 41 ++++++++++
+ tests/auto/quicktest/signalspy/signalspy.pro | 9 +++
+ tests/auto/quicktest/signalspy/tst_signalspy.cpp | 95 +++++++++++++++++++++++
+ 8 files changed, 255 insertions(+), 2 deletions(-)
+ create mode 100644 tests/auto/quicktest/quicktest.pro
+ create mode 100644 tests/auto/quicktest/signalspy/data/signalspy.qml
+ create mode 100644 tests/auto/quicktest/signalspy/mypropertymap.cpp
+ create mode 100644 tests/auto/quicktest/signalspy/mypropertymap.h
+ create mode 100644 tests/auto/quicktest/signalspy/signalspy.pro
+ create mode 100644 tests/auto/quicktest/signalspy/tst_signalspy.cpp
+
+diff --git a/src/imports/testlib/SignalSpy.qml b/src/imports/testlib/SignalSpy.qml
+index 200fc72..8a8e844 100644
+--- a/src/imports/testlib/SignalSpy.qml
++++ b/src/imports/testlib/SignalSpy.qml
+@@ -230,8 +230,14 @@ Item {
+ qtest_prevSignalName = ""
+ }
+ if (target != null && signalName != "") {
+- var handlerName = qtest_signalHandlerName(signalName)
+- var func = target[handlerName]
++ // Look for the signal name in the object
++ var func = target[signalName]
++ if (typeof func !== "function") {
++ // If it is not a function, try looking for signal handler
++ // i.e. (onSignal) this is needed for cases where there is a property
++ // and a signal with the same name, e.g. Mousearea.pressed
++ func = target[qtest_signalHandlerName(signalName)]
++ }
+ if (func === undefined) {
+ spy.qtest_valid = false
+ console.log("Signal '" + signalName + "' not found")
+diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
+index 556f5dd..f25742f 100644
+--- a/tests/auto/auto.pro
++++ b/tests/auto/auto.pro
+@@ -2,6 +2,7 @@ TEMPLATE=subdirs
+ SUBDIRS=\
+ qml \
+ quick \
++ quicktest \
+ particles \
+ qmltest \
+ qmldevtools \
+diff --git a/tests/auto/quicktest/quicktest.pro b/tests/auto/quicktest/quicktest.pro
+new file mode 100644
+index 0000000..3b4ec23
+--- /dev/null
++++ b/tests/auto/quicktest/quicktest.pro
+@@ -0,0 +1,3 @@
++TEMPLATE = subdirs
++SUBDIRS = \
++ signalspy
+diff --git a/tests/auto/quicktest/signalspy/data/signalspy.qml b/tests/auto/quicktest/signalspy/data/signalspy.qml
+new file mode 100644
+index 0000000..6c365e2
+--- /dev/null
++++ b/tests/auto/quicktest/signalspy/data/signalspy.qml
+@@ -0,0 +1,60 @@
++/****************************************************************************
++**
++** Copyright (C) 2016 The Qt Company Ltd.
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the test suite of the Qt Toolkit.
++**
++** $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.
++**
++** 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$
++**
++****************************************************************************/
++
++import QtQuick 2.0
++import QtTest 1.1
++import MyImport 1.0
++
++Rectangle {
++ id:rect
++ width: 200
++ height: 200
++ color:"red"
++
++ MouseArea {
++ id: mouseArea
++ anchors.fill: parent
++ }
++
++ MyPropertyMap {
++ id: propertyMap
++ objectName: "propertyMap"
++ }
++
++ SignalSpy {
++ objectName: "mouseSpy"
++ target: mouseArea
++ signalName: "pressed"
++ }
++
++ SignalSpy {
++ objectName: "propertyMapSpy"
++ target: propertyMap
++ signalName: "mySignal"
++ }
++}
+diff --git a/tests/auto/quicktest/signalspy/mypropertymap.cpp b/tests/auto/quicktest/signalspy/mypropertymap.cpp
+new file mode 100644
+index 0000000..91bd93d
+--- /dev/null
++++ b/tests/auto/quicktest/signalspy/mypropertymap.cpp
+@@ -0,0 +1,38 @@
++/****************************************************************************
++**
++** Copyright (C) 2016 The Qt Company Ltd.
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the test suite of the Qt Toolkit.
++**
++** $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.
++**
++** 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$
++**
++****************************************************************************/
++
++#include "mypropertymap.h"
++
++MyPropertyMap::MyPropertyMap(QObject *parent): QQmlPropertyMap(this, parent)
++{
++}
++
++MyPropertyMap::~MyPropertyMap()
++{
++}
++
+diff --git a/tests/auto/quicktest/signalspy/mypropertymap.h b/tests/auto/quicktest/signalspy/mypropertymap.h
+new file mode 100644
+index 0000000..d69548f
+--- /dev/null
++++ b/tests/auto/quicktest/signalspy/mypropertymap.h
+@@ -0,0 +1,41 @@
++/****************************************************************************
++**
++** Copyright (C) 2016 The Qt Company Ltd.
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the test suite of the Qt Toolkit.
++**
++** $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.
++**
++** 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$
++**
++****************************************************************************/
++
++#include <QQmlPropertyMap>
++
++class MyPropertyMap : public QQmlPropertyMap
++{
++ Q_OBJECT
++
++public:
++ MyPropertyMap(QObject *parent = nullptr);
++ ~MyPropertyMap();
++
++Q_SIGNALS:
++ void mySignal();
++};
+diff --git a/tests/auto/quicktest/signalspy/signalspy.pro b/tests/auto/quicktest/signalspy/signalspy.pro
+new file mode 100644
+index 0000000..c8f9be1
+--- /dev/null
++++ b/tests/auto/quicktest/signalspy/signalspy.pro
+@@ -0,0 +1,9 @@
++CONFIG += testcase
++TARGET = tst_signalspy
++macos:CONFIG -= app_bundle
++
++SOURCES += tst_signalspy.cpp mypropertymap.cpp
++HEADERS += mypropertymap.h
++QT += quick testlib
++
++include (../../shared/util.pri)
+diff --git a/tests/auto/quicktest/signalspy/tst_signalspy.cpp b/tests/auto/quicktest/signalspy/tst_signalspy.cpp
+new file mode 100644
+index 0000000..f54da78
+--- /dev/null
++++ b/tests/auto/quicktest/signalspy/tst_signalspy.cpp
+@@ -0,0 +1,95 @@
++/****************************************************************************
++**
++** Copyright (C) 2016 The Qt Company Ltd.
++** Contact: https://www.qt.io/licensing/
++**
++** This file is part of the test suite of the Qt Toolkit.
++**
++** $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.
++**
++** 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$
++**
++****************************************************************************/
++
++#include <qtest.h>
++
++#include <qqmlengine.h>
++#include <qquickitem.h>
++#include <qquickview.h>
++
++#include "../../shared/util.h"
++#include "mypropertymap.h"
++
++class tst_SignalSpy : public QQmlDataTest
++{
++ Q_OBJECT
++public:
++ tst_SignalSpy();
++
++private slots:
++ void testValid();
++ void testCount();
++
++private:
++ QQmlEngine engine;
++};
++
++tst_SignalSpy::tst_SignalSpy()
++{
++ qmlRegisterType<MyPropertyMap>("MyImport", 1, 0, "MyPropertyMap");
++}
++
++void tst_SignalSpy::testValid()
++{
++ QQuickView window;
++ window.setSource(testFileUrl("signalspy.qml"));
++ QVERIFY(window.rootObject() != 0);
++
++ QObject *mouseSpy = window.rootObject()->findChild<QObject*>("mouseSpy");
++ QVERIFY(mouseSpy->property("valid").toBool());
++
++ QObject *propertyMapSpy = window.rootObject()->findChild<QObject*>("propertyMapSpy");
++ QVERIFY(propertyMapSpy->property("valid").toBool());
++}
++
++void tst_SignalSpy::testCount()
++{
++ QQuickView window;
++ window.resize(200, 200);
++ window.setSource(testFileUrl("signalspy.qml"));
++ window.show();
++ QTest::qWaitForWindowActive(&window);
++ QVERIFY(window.rootObject() != 0);
++
++ QObject *mouseSpy = window.rootObject()->findChild<QObject*>("mouseSpy");
++ QCOMPARE(mouseSpy->property("count").toInt(), 0);
++
++ QObject *propertyMapSpy = window.rootObject()->findChild<QObject*>("propertyMapSpy");
++ QCOMPARE(propertyMapSpy->property("count").toInt(), 0);
++
++ QTest::mouseClick(&window, Qt::LeftButton, Qt::KeyboardModifiers(), QPoint(100, 100));
++ QTRY_COMPARE(mouseSpy->property("count").toInt(), 1);
++
++ MyPropertyMap *propertyMap = static_cast<MyPropertyMap *>(window.rootObject()->findChild<QObject*>("propertyMap"));
++ Q_EMIT propertyMap->mySignal();
++ QCOMPARE(propertyMapSpy->property("count").toInt(), 1);
++}
++
++QTEST_MAIN(tst_SignalSpy)
++
++#include "tst_signalspy.moc"
+--
+2.10.2
+
diff --git a/debian/patches/series b/debian/patches/series
index a8df99a..732d52e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,6 +5,7 @@ QQuickItemView-forceLayout-Also-call-layout-when-d-f.patch
fix-V4-on-big-endian.patch
Fix-visibility-of-properties-in-value-types.patch
#V4-Fix-usage-of-QV4-Value-tags-types.patch
+Fix-SignalSpy-with-QQmlPropertyMap-signals.patch
# Debian patches
check_system_double-conversion.patch
--
qtdeclarative packaging
More information about the pkg-kde-commits
mailing list