aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlbinding/WithBindableProperties.h
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2021-01-21 20:02:17 +0100
committerFabian Kosmale <fabian.kosmale@qt.io>2021-02-03 09:28:40 +0100
commit0deb3961e6b0a1f15a491f7a19085df3a7a506b1 (patch)
tree28c9db4fd4bd0a334a1848d852f6394f83bc97d9 /tests/auto/qml/qqmlbinding/WithBindableProperties.h
parentb322a971f06823a4356f2b3aa331501aa4d0dc7f (diff)
QmlBind: support bindable properties
This patch ensures that the QML Binding element can also save and restore C++ bindings. Should QQuickItem's x and y property be ported to the new property system, we'd need new test cases to verify that "old-style" bindings are still handled correctly. This task is however left for the change porting the properties. Task-number: QTBUG-90493 Change-Id: I506ffa1060ff32a7d722214e5ccd469bdaa61ff8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests/auto/qml/qqmlbinding/WithBindableProperties.h')
-rw-r--r--tests/auto/qml/qqmlbinding/WithBindableProperties.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlbinding/WithBindableProperties.h b/tests/auto/qml/qqmlbinding/WithBindableProperties.h
new file mode 100644
index 0000000000..562b445df7
--- /dev/null
+++ b/tests/auto/qml/qqmlbinding/WithBindableProperties.h
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 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$
+**
+****************************************************************************/
+#ifndef WithBindableProperties_H
+#define WithBindableProperties_H
+
+#include <QObject>
+#include <qqml.h>
+
+
+class WithBindableProperties : public QObject
+{
+ Q_OBJECT
+ QML_ELEMENT
+
+ Q_PROPERTY(int a READ a WRITE setA BINDABLE bindableA)
+ Q_PROPERTY(int b READ b WRITE setB BINDABLE bindableB)
+
+public:
+ QProperty<int> m_a;
+ QProperty<int> m_b;
+ int a() {return m_a;}
+ int b() {return m_b;}
+ void setA(int val) {m_a = val;}
+ void setB(int val) {m_b = val;}
+ QBindable<int> bindableA() {return QBindable<int>(&m_a); }
+ QBindable<int> bindableB() {return QBindable<int>(&m_b); }
+};
+
+#endif
+