summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Palettes/Timeline/Bindings
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2018-06-25 13:46:40 +0300
committerJanne Kangas <janne.kangas@qt.io>2018-08-01 11:11:21 +0000
commit77febee1bafe2d2eeb90af299dc4eb98345f6390 (patch)
treede4880065dc863bda96820f7b201b2ab5fc12048 /src/Authoring/Studio/Palettes/Timeline/Bindings
parentca9f8a82868dd32f51f1e9795762a0a4ceba2dc4 (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.h1
-rw-r--r--src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp18
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;
}