diff options
author | Janne Kangas <janne.kangas@qt.io> | 2019-07-26 14:49:10 +0300 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2019-09-11 09:06:10 +0300 |
commit | 025beb76e9abfba594870ee480448a1fa0a3ca09 (patch) | |
tree | 65b853dd156ab33000d6bfba1373760730011b40 /src/runtime/Qt3DSQmlEngine.cpp | |
parent | 5665b3264179f97eabe92e77afbd7a3eaaf743f0 (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.cpp | 13 |
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: { |