summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2017-12-15 11:53:56 +0200
committerJanne Kangas <janne.kangas@qt.io>2018-01-19 10:20:50 +0000
commite3c6e9d38a5b6f729093fc0349784fa475af8f62 (patch)
tree310509fe958f7722139041f26e59de4480d98b2c
parent337aaa465ac78ac72ca748f0c2d4c3b6257829b8 (diff)
[DataInput] Update datainput control list when target is renamed
Update datainput control list when a controlled element changes name. Change-Id: I2c072aafd0850410ab71b4c81bc8e9774e4f5f20 Task-Id: QT3DS-337 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp6
-rw-r--r--src/Authoring/Client/Code/Core/Doc/IDocumentEditor.h2
-rw-r--r--src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp13
3 files changed, 16 insertions, 5 deletions
diff --git a/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp b/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
index 3ac72680..3b5c2455 100644
--- a/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
+++ b/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
@@ -2628,10 +2628,12 @@ public:
}
}
- // Called when controlled instance is moved inside scene graph and
+ // Called when controlled instance is renamed or moved inside scene graph and
// controlling datanode must update the instance path
- void UpdateDataInputTarget(TInstanceHandle instance, CString oldPath)
+ void UpdateDataInputTarget(TInstanceHandle instance, CString oldPath) override
{
+ if (!IsControlled(instance))
+ return;
SComposerObjectDefinitions &objDefinitions(m_Bridge.GetObjectDefinitions());
// TODO: Text-element specific code
Option<SValue> currentControlledProperty = GetInstancePropertyValue(
diff --git a/src/Authoring/Client/Code/Core/Doc/IDocumentEditor.h b/src/Authoring/Client/Code/Core/Doc/IDocumentEditor.h
index 500bf2a2..3c35ea16 100644
--- a/src/Authoring/Client/Code/Core/Doc/IDocumentEditor.h
+++ b/src/Authoring/Client/Code/Core/Doc/IDocumentEditor.h
@@ -282,7 +282,7 @@ public:
theInstances.push_back(inInstance);
RearrangeObjects(theInstances, inDest, inInsertType);
}
-
+ virtual void UpdateDataInputTarget(TInstanceHandle instance, CString oldPath) = 0;
// Returns the new component.
virtual TInstanceHandle MakeComponent(const qt3dsdm::TInstanceHandleList &inInstances) = 0;
diff --git a/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp b/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
index 609fb1d3..c9334798 100644
--- a/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
+++ b/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
@@ -346,6 +346,7 @@ void Qt3DSDMTimelineItemBinding::SetName(const Q3DStudio::CString &inName)
return;
}
+ Q3DStudio::CString oldPath = GetObjectPath();
CClientDataModelBridge *theBridge = m_StudioSystem->GetClientDataModelBridge();
if (!theBridge->CheckNameUnique(m_DataHandle, inName)) {
QString theTitle = QObject::tr("Rename Object Error");
@@ -355,8 +356,12 @@ void Qt3DSDMTimelineItemBinding::SetName(const Q3DStudio::CString &inName)
theTitle, theString, Qt3DSMessageBox::ICON_WARNING);
if (theUserChoice == QMessageBox::Yes) {
// Set with the unique name
- Q3DStudio::SCOPED_DOCUMENT_EDITOR(*m_TransMgr->GetDoc(), QObject::tr("Set Name"))
- ->SetName(m_DataHandle, inName, true);
+ Q3DStudio::SCOPED_DOCUMENT_EDITOR(
+ *m_TransMgr->GetDoc(), QObject::tr("Set Name"))
+ ->SetName(m_DataHandle, inName, true);
+ Q3DStudio::SCOPED_DOCUMENT_EDITOR(
+ *m_TransMgr->GetDoc(), QObject::tr("Update DataInput target path"))
+ ->UpdateDataInputTarget(m_DataHandle, oldPath);
return;
}
}
@@ -364,9 +369,13 @@ void Qt3DSDMTimelineItemBinding::SetName(const Q3DStudio::CString &inName)
Qt3DSDMPropertyHandle theNamePropHandle =
m_StudioSystem->GetPropertySystem()->GetAggregateInstancePropertyByName(m_DataHandle,
L"name");
+
Q3DStudio::SCOPED_DOCUMENT_EDITOR(*m_TransMgr->GetDoc(), QObject::tr("Set Name"))
->SetInstancePropertyValue(m_DataHandle, theNamePropHandle,
std::make_shared<CDataStr>(inName));
+ Q3DStudio::SCOPED_DOCUMENT_EDITOR(*m_TransMgr->GetDoc(),
+ QObject::tr("Update DataInput target path"))
+ ->UpdateDataInputTarget(m_DataHandle, oldPath);
}
ITimelineItem *Qt3DSDMTimelineItemBinding::GetTimelineItem()