From f17b826a72d77379288aa84a933b9231c279cbad Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 22 Sep 2017 15:01:27 +0200 Subject: Fix behaviors not working when sub-types declare properties Since commit 81867dfbf9c16d4300727a08eed9b5c6c979e0ba we have an optimization in place to avoid the virtual meta-call when writing properties that cannot be intercepted. Unfortunately that check did not take parent VME meta-objects into account, which triggered the bug. Test case by Harald Hvaal Task-number: QTBUG-63365 Change-Id: I66cb2967da2c09ca5e38cebd9db2ee6e3ee78f5f Reviewed-by: Erik Verbruggen --- .../quick/qquickbehaviors/data/ItemWithInnerBehavior.qml | 10 ++++++++++ .../quick/qquickbehaviors/data/overwrittenbehavior.qml | 14 ++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 tests/auto/quick/qquickbehaviors/data/ItemWithInnerBehavior.qml create mode 100644 tests/auto/quick/qquickbehaviors/data/overwrittenbehavior.qml (limited to 'tests/auto/quick/qquickbehaviors/data') diff --git a/tests/auto/quick/qquickbehaviors/data/ItemWithInnerBehavior.qml b/tests/auto/quick/qquickbehaviors/data/ItemWithInnerBehavior.qml new file mode 100644 index 0000000000..09983645ef --- /dev/null +++ b/tests/auto/quick/qquickbehaviors/data/ItemWithInnerBehavior.qml @@ -0,0 +1,10 @@ +import QtQuick 2.4 + +Item { + id: root + + property bool someValue + Behavior on someValue { + ScriptAction { script: { parent.behaviorTriggered = true }} + } +} diff --git a/tests/auto/quick/qquickbehaviors/data/overwrittenbehavior.qml b/tests/auto/quick/qquickbehaviors/data/overwrittenbehavior.qml new file mode 100644 index 0000000000..e627c45782 --- /dev/null +++ b/tests/auto/quick/qquickbehaviors/data/overwrittenbehavior.qml @@ -0,0 +1,14 @@ +import QtQuick 2.4 + +Item { + property bool behaviorTriggered + property bool someProperty + + ItemWithInnerBehavior { + //the existence of this property triggers the bug + property bool iDoAbsolutelyNothing + + Component.onCompleted: parent.someProperty = true + someValue: parent.someProperty + } +} -- cgit v1.2.3