summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2018-02-07 14:14:36 +0200
committerJanne Kangas <janne.kangas@qt.io>2018-02-14 11:50:35 +0000
commitc4764bd2c8cd06d9ee407fa089c1ec7cb6eb777b (patch)
tree78dcc1e5c98237da3258ddb56005a43ed092c440
parentc8053565074b90fd383fef1f4b10aa23e7e09052 (diff)
Allow component to have datainput controlling slide transitions
Task-ID: QT3DS-1053 Change-Id: I4b729feeeb738ae1117c4d81c8554ccb9df95f02 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/Authoring/Studio/Palettes/Slide/SlideView.cpp31
1 files changed, 24 insertions, 7 deletions
diff --git a/src/Authoring/Studio/Palettes/Slide/SlideView.cpp b/src/Authoring/Studio/Palettes/Slide/SlideView.cpp
index 7cb74be4..00617c52 100644
--- a/src/Authoring/Studio/Palettes/Slide/SlideView.cpp
+++ b/src/Authoring/Studio/Palettes/Slide/SlideView.cpp
@@ -252,7 +252,7 @@ void SlideView::onDataInputChange(const QString &dataInputName)
CDoc *doc = g_StudioApp.GetCore()->GetDoc();
CClientDataModelBridge *bridge = doc->GetStudioSystem()->GetClientDataModelBridge();
- qt3dsdm::Qt3DSDMInstanceHandle slideRoot = doc->GetSceneInstance();
+ qt3dsdm::Qt3DSDMInstanceHandle slideRoot = doc->GetActiveRootInstance();
QString fullSlideControlStr;
if (dataInputName != tr("[No control]")) {
@@ -265,9 +265,16 @@ void SlideView::onDataInputChange(const QString &dataInputName)
m_currentController.clear();
m_toolTip = tr("No controller");
}
+ qt3dsdm::Qt3DSDMPropertyHandle ctrldProp;
+ if (bridge->GetObjectType(slideRoot) == EStudioObjectType::OBJTYPE_SCENE) {
+ ctrldProp = bridge->GetObjectDefinitions().m_Scene.m_ControlledProperty;
+ } else if (bridge->GetObjectType(slideRoot) ==
+ EStudioObjectType::OBJTYPE_COMPONENT) {
+ ctrldProp = bridge->GetObjectDefinitions().m_Component.m_ControlledProperty;
+ } else {
+ Q_ASSERT(false);
+ }
- qt3dsdm::Qt3DSDMPropertyHandle ctrldProp
- = bridge->GetObjectDefinitions().m_Scene.m_ControlledProperty;
qt3dsdm::Option<qt3dsdm::SValue> controlledPropertyVal
= Q3DStudio::SCOPED_DOCUMENT_EDITOR(
*doc,
@@ -308,15 +315,24 @@ void SlideView::onDataInputChange(const QString &dataInputName)
Q_EMIT controlledChanged();
}
-// Set the state of slide control based on scene
+// Set the state of slide control based on scene or component
// controlledproperty
void SlideView::updateDataInputStatus(bool isViaDispatch)
{
CDoc *doc = g_StudioApp.GetCore()->GetDoc();
CClientDataModelBridge *bridge = doc->GetStudioSystem()->GetClientDataModelBridge();
- qt3dsdm::Qt3DSDMInstanceHandle slideRoot = doc->GetSceneInstance();
- qt3dsdm::Qt3DSDMPropertyHandle ctrldProp
- = bridge->GetObjectDefinitions().m_Scene.m_ControlledProperty;
+ qt3dsdm::Qt3DSDMInstanceHandle slideRoot = doc->GetActiveRootInstance();
+
+ qt3dsdm::Qt3DSDMPropertyHandle ctrldProp;
+ if (bridge->GetObjectType(slideRoot) == EStudioObjectType::OBJTYPE_SCENE) {
+ ctrldProp = bridge->GetObjectDefinitions().m_Scene.m_ControlledProperty;
+ } else if (bridge->GetObjectType(slideRoot) ==
+ EStudioObjectType::OBJTYPE_COMPONENT) {
+ ctrldProp = bridge->GetObjectDefinitions().m_Component.m_ControlledProperty;
+ } else {
+ Q_ASSERT(false);
+ }
+
qt3dsdm::Option<qt3dsdm::SValue> controlledPropertyVal
= Q3DStudio::SCOPED_DOCUMENT_EDITOR(
*doc,
@@ -428,6 +444,7 @@ void SlideView::rebuildSlideList(const qt3dsdm::Qt3DSDMSlideHandle &inActiveSlid
row++;
}
}
+ updateDataInputStatus(true);
}
CDoc *SlideView::GetDoc()