diff options
author | Janne Kangas <janne.kangas@qt.io> | 2018-06-25 13:46:40 +0300 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2018-08-01 11:11:21 +0000 |
commit | 77febee1bafe2d2eeb90af299dc4eb98345f6390 (patch) | |
tree | de4880065dc863bda96820f7b201b2ab5fc12048 /src/Authoring/Studio/Palettes/Timeline/Bindings | |
parent | ca9f8a82868dd32f51f1e9795762a0a4ceba2dc4 (diff) |
Implement "Add Layer" selection in timeline tree context menu
Context menu for Scene element allows adding layer (in addition to
button at the timeline widget bottom.
Task-ID: QT3DS-1992
Change-Id: Iaf3f02cc346dffee741c306162295768aa947719
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Diffstat (limited to 'src/Authoring/Studio/Palettes/Timeline/Bindings')
-rw-r--r-- | src/Authoring/Studio/Palettes/Timeline/Bindings/ITimelineItemBinding.h | 1 | ||||
-rw-r--r-- | src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/Authoring/Studio/Palettes/Timeline/Bindings/ITimelineItemBinding.h b/src/Authoring/Studio/Palettes/Timeline/Bindings/ITimelineItemBinding.h index 0ee1a0de..02979934 100644 --- a/src/Authoring/Studio/Palettes/Timeline/Bindings/ITimelineItemBinding.h +++ b/src/Authoring/Studio/Palettes/Timeline/Bindings/ITimelineItemBinding.h @@ -73,6 +73,7 @@ public: EUserTransaction_EditComponent, EUserTransaction_Group, EUserTransaction_Ungroup, + EUserTransaction_AddLayer, }; public: diff --git a/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp b/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp index c3c2e5f3..c02b798b 100644 --- a/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp +++ b/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp @@ -598,6 +598,9 @@ bool Qt3DSDMTimelineItemBinding::IsValidTransaction(EUserTransaction inTransacti case EUserTransaction_Ungroup: return g_StudioApp.canUngroupSelectedObjects(); + case EUserTransaction_AddLayer: + return (GetObjectType() == OBJTYPE_SCENE); + default: // not handled break; } @@ -634,6 +637,17 @@ inline void DoUngroupObjects(CDoc &inDoc, const qt3dsdm::TInstanceHandleList &in g_StudioApp.ungroupSelectedObjects(); } +inline void doAddLayer(CDoc &inDoc, const qt3dsdm::TInstanceHandleList &inInstances) +{ + qt3dsdm::Qt3DSDMSlideHandle slide = inDoc.GetActiveSlide(); + qt3dsdm::Qt3DSDMInstanceHandle parent = inDoc.GetActiveLayer(); + + SCOPED_DOCUMENT_EDITOR(inDoc, QObject::tr("Add Layer")) + ->CreateSceneGraphInstance(qt3dsdm::ComposerObjectTypes::Layer, parent, slide, + DocumentEditorInsertType::PreviousSibling, + CPt(), PRIMITIVETYPE_UNKNOWN, -1); +} + void Qt3DSDMTimelineItemBinding::PerformTransaction(EUserTransaction inTransaction) { CDoc *theDoc = m_TransMgr->GetDoc(); @@ -679,6 +693,10 @@ void Qt3DSDMTimelineItemBinding::PerformTransaction(EUserTransaction inTransacti theDispatch.FireOnAsynchronousCommand( std::bind(DoUngroupObjects, std::ref(*theDoc), theInstances)); } break; + case EUserTransaction_AddLayer: { + theDispatch.FireOnAsynchronousCommand( + std::bind(doAddLayer, std::ref(*theDoc), theInstances)); + } break; default: // not handled break; } |