summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2018-06-28 17:03:55 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2018-06-29 12:04:24 +0000
commitd2d0866310998b65ea8cf656c3d35d6fb803fbab (patch)
treef3cd8cc5fb15cd51af1f868fd95a5836c3a6ccf1 /src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
parent43fa674645ed9ebf5414ec2598858554b4c76c50 (diff)
Add support for grouping and ungrouping selected items
Ctrl-G will group 2 or more selected items under a newly created group item. Same shortcut when an single group is selected will move the group's children up one level and delete the group. Task-number: QT3DS-1283 Change-Id: Ife0fa6f0c35a4d37f7e76c7233e79c9f38d98a02 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp')
-rw-r--r--src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp b/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
index 8a106d1a..5956c78d 100644
--- a/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
+++ b/src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp
@@ -576,6 +576,12 @@ bool Qt3DSDMTimelineItemBinding::IsValidTransaction(EUserTransaction inTransacti
case EUserTransaction_EditComponent:
return (GetObjectType() == OBJTYPE_COMPONENT);
+ case EUserTransaction_Group:
+ return g_StudioApp.canGroupSelectedObjects();
+
+ case EUserTransaction_Ungroup:
+ return g_StudioApp.canUngroupSelectedObjects();
+
default: // not handled
break;
}
@@ -602,6 +608,16 @@ inline void DoMakeComponent(CDoc &inDoc, const qt3dsdm::TInstanceHandleList &inI
SCOPED_DOCUMENT_EDITOR(inDoc, QObject::tr("Make Component"))->MakeComponent(inInstances);
}
+inline void DoGroupObjects(CDoc &inDoc, const qt3dsdm::TInstanceHandleList &inInstances)
+{
+ g_StudioApp.groupSelectedObjects();
+}
+
+inline void DoUngroupObjects(CDoc &inDoc, const qt3dsdm::TInstanceHandleList &inInstances)
+{
+ g_StudioApp.ungroupSelectedObjects();
+}
+
void Qt3DSDMTimelineItemBinding::PerformTransaction(EUserTransaction inTransaction)
{
CDoc *theDoc = m_TransMgr->GetDoc();
@@ -638,7 +654,15 @@ void Qt3DSDMTimelineItemBinding::PerformTransaction(EUserTransaction inTransacti
case EUserTransaction_MakeComponent: {
theDispatch.FireOnAsynchronousCommand(
std::bind(DoMakeComponent, std::ref(*theDoc), theInstances));
- }
+ } break;
+ case EUserTransaction_Group: {
+ theDispatch.FireOnAsynchronousCommand(
+ std::bind(DoGroupObjects, std::ref(*theDoc), theInstances));
+ } break;
+ case EUserTransaction_Ungroup: {
+ theDispatch.FireOnAsynchronousCommand(
+ std::bind(DoUngroupObjects, std::ref(*theDoc), theInstances));
+ } break;
default: // not handled
break;
}