aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlproperty
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-02-21 17:11:50 +0100
committerUlf Hermann <ulf.hermann@qt.io>2024-02-26 14:50:06 +0100
commite3f593da8e97fd28c887d4e26d22f9417f82a13e (patch)
treefce6c6e1ead6c26dcf91b7a80b728915d4bf259f /tests/auto/qml/qqmlproperty
parent3d4c61f0759605069db1d946668ef696dfb7eb98 (diff)
QtQml: Re-allow change signals in QQmlProperty
Amends commit a1ce0596e517e84913b14ab23422137c95b8c785. Pick-to: 6.7 Task-number: QTBUG-109548 Change-Id: I476c1798bb9a125264375e6fb0829e1357d99770 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'tests/auto/qml/qqmlproperty')
-rw-r--r--tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
index 05802a88d5..23f198bb78 100644
--- a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
+++ b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
@@ -30,8 +30,15 @@ class MyQmlObject : public QObject
{
Q_OBJECT
Q_PROPERTY(QPoint pointProperty MEMBER m_point)
+ Q_PROPERTY(QString a READ objectName NOTIFY somethingHappened)
+ Q_PROPERTY(QString b READ objectName NOTIFY somethingHappened)
public:
- MyQmlObject(QObject *parent = nullptr) : QObject(parent) {}
+ MyQmlObject(QObject *parent = nullptr) : QObject(parent) {
+ connect(this, &QObject::objectNameChanged, this, &MyQmlObject::somethingHappened);
+ }
+
+signals:
+ void somethingHappened();
private:
QPoint m_point;
@@ -2424,9 +2431,13 @@ void tst_qqmlproperty::initFlags_data()
const QString names[] = {
QStringLiteral("foo"),
+ QStringLiteral("aChanged"),
QStringLiteral("self.foo"),
+ QStringLiteral("self.aChanged"),
QStringLiteral("onFoo"),
+ QStringLiteral("onAChanged"),
QStringLiteral("self.onFoo"),
+ QStringLiteral("self.onAChanged"),
QStringLiteral("bar"),
QStringLiteral("self.bar"),
QStringLiteral("abar"),
@@ -2461,15 +2472,15 @@ void tst_qqmlproperty::initFlags()
QQmlEngine engine;
QQmlComponent c(&engine);
c.setData(R"(
- import QtQml
- QtObject {
+ import Test
+ MyQmlObject {
id: self
signal foo()
property int bar: 12
property alias abar: self.bar
}
)", QUrl());
- QVERIFY(c.isReady());
+ QVERIFY2(c.isReady(), qPrintable(c.errorString()));
QScopedPointer<QObject> o(c.create());
QVERIFY(!o.isNull());
@@ -2479,7 +2490,9 @@ void tst_qqmlproperty::initFlags()
passObject ? o.data() : nullptr, name, context, flags);
const bool usesId = name.startsWith(QStringLiteral("self."));
- const bool hasSignal = name.endsWith(QStringLiteral("foo"));
+ const bool hasSignal = name.endsWith(QStringLiteral("foo"))
+ || name.endsWith(QStringLiteral("aChanged"));
+
if (!passObject && !usesId) {
QVERIFY(!property.isValid());
} else if (passObject && usesId) {
@@ -2494,10 +2507,14 @@ void tst_qqmlproperty::initFlags()
QVERIFY(property.isProperty());
QCOMPARE(property.name(), usesId ? name.mid(strlen("self.")) : name);
QCOMPARE(property.propertyMetaType(), QMetaType::fromType<int>());
- } else {
+ } else if (name.endsWith(QStringLiteral("oo"))) { // 'onFoo' or 'foo'
QVERIFY(property.isSignalProperty());
QCOMPARE(property.name(), QStringLiteral("onFoo"));
QVERIFY(!property.propertyMetaType().isValid());
+ } else {
+ QVERIFY(property.isSignalProperty());
+ QCOMPARE(property.name(), QStringLiteral("onSomethingHappened"));
+ QVERIFY(!property.propertyMetaType().isValid());
}
}