From e236faa75f446aa3378fb013cce6598c9e076ccb Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Fri, 4 Dec 2020 09:11:50 +0100 Subject: QBindable: Disallow mutation if read-only If a QBindable is created from a computed property, it is not possible to actually set a value or a binding. If we try to do it anyway, we'd get a crash. Thus we now check whether the function pointer is null before invoking it. Pick-to: 6.0 Task-number: QTBUG-87153 Change-Id: I5bedb9080ccf79d9b8166b80d5733d095ed76f8d Reviewed-by: Lars Knoll --- tests/auto/corelib/kernel/qproperty/tst_qproperty.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests/auto/corelib/kernel') diff --git a/tests/auto/corelib/kernel/qproperty/tst_qproperty.cpp b/tests/auto/corelib/kernel/qproperty/tst_qproperty.cpp index 8145b066da..3cc7bd6f9c 100644 --- a/tests/auto/corelib/kernel/qproperty/tst_qproperty.cpp +++ b/tests/auto/corelib/kernel/qproperty/tst_qproperty.cpp @@ -1114,6 +1114,11 @@ void tst_QProperty::testNewStuff() object.readData.setValue(111); QCOMPARE(object.computed(), 111); + object.bindableComputed().setBinding(object.bindableBar().makeBinding()); + QCOMPARE(object.computed(), 111); + object.bindableComputed().setValue(10); + QCOMPARE(object.computed(), 111); + QCOMPARE(object.bindableFoo().value(), 111); object.bindableFoo().setValue(24); QCOMPARE(object.foo(), 24); -- cgit v1.2.3