From d2d0866310998b65ea8cf656c3d35d6fb803fbab Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 28 Jun 2018 17:03:55 +0300 Subject: Add support for grouping and ungrouping selected items MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ää Reviewed-by: Mahmoud Badri Reviewed-by: Miikka Heikkinen --- .../Bindings/Qt3DSDMTimelineItemBinding.cpp | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/Authoring/Studio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp') 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; } -- cgit v1.2.3