summaryrefslogtreecommitdiffstats
path: root/src/runtime/Qt3DSQmlEngine.cpp
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2019-07-26 14:49:10 +0300
committerJanne Kangas <janne.kangas@qt.io>2019-09-11 09:06:10 +0300
commit025beb76e9abfba594870ee480448a1fa0a3ca09 (patch)
tree65b853dd156ab33000d6bfba1373760730011b40 /src/runtime/Qt3DSQmlEngine.cpp
parent5665b3264179f97eabe92e77afbd7a3eaaf743f0 (diff)
Make visibility setting for elements in master slide persistent
Make datainput-driven visibility setting persistent over slide changes, for elements that are on master slide. This prevents slide initial value from overriding the user set visibility. Override takes place at first DI-driven visibility change. Change-Id: I799872ebd9834df9e74dd1e5e53a59c57e02255f Task-id: QT3DS-3925 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/runtime/Qt3DSQmlEngine.cpp')
-rw-r--r--src/runtime/Qt3DSQmlEngine.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/runtime/Qt3DSQmlEngine.cpp b/src/runtime/Qt3DSQmlEngine.cpp
index 3ef4b11..0bfddba 100644
--- a/src/runtime/Qt3DSQmlEngine.cpp
+++ b/src/runtime/Qt3DSQmlEngine.cpp
@@ -921,10 +921,21 @@ void CQmlEngineImpl::SetDataInputValue(
<< diDef.type;
break;
}
-
SetAttribute(ctrlElem.elementPath.constData(),
ctrlElem.attributeName.first().constData(),
reinterpret_cast<const char *>(&valueBool));
+
+ // Special case for eyeball (visibility) controller that targets elements
+ // on master slide, and whose visibility setting must be persistent over
+ // slide changes.
+ TElement *element = getTarget(ctrlElem.elementPath.constData());
+ auto hash = CHash::HashAttribute(ctrlElem.attributeName.first().constData());
+
+ if (hash == Q3DStudio::ATTRIBUTE_EYEBALL && element->m_OnMaster) {
+ element->GetActivityZone().setControlled(*element);
+ element->SetControlledActive(valueBool);
+ }
+
break;
}
case ATTRIBUTETYPE_STRING: {