summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp')
-rw-r--r--src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp b/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
index e8883a86..4606e146 100644
--- a/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
+++ b/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
@@ -3268,16 +3268,20 @@ public:
// Creates a new group object and moves the specified objects as its children
void groupObjects(const TInstanceHandleList &inInstances) override
{
- TInstanceHandleList sortedList(ToGraphOrdering(inInstances));
-
- // Create a new group next to the topmost item in the graph
- TInstanceHandle sibling = sortedList.front();
- Qt3DSDMSlideHandle slide = GetActiveSlide(sibling);
- TInstanceHandle group = CreateSceneGraphInstance(ComposerObjectTypes::Group, sibling, slide,
- DocumentEditorInsertType::PreviousSibling,
- CPt(), PRIMITIVETYPE_UNKNOWN, -1);
- // Move items into the group
- RearrangeObjects(sortedList, group, DocumentEditorInsertType::LastChild, true);
+ if (inInstances.size() > 0) {
+ TInstanceHandleList sortedList(ToGraphOrdering(inInstances));
+ // Create a new group next to the topmost item in the graph
+ TInstanceHandle sibling = sortedList.front();
+ Qt3DSDMSlideHandle slide = GetActiveSlide(sibling);
+ if (m_Bridge.IsMaster(sibling))
+ slide = m_SlideSystem.GetMasterSlide(slide);
+ TInstanceHandle group = CreateSceneGraphInstance(
+ ComposerObjectTypes::Group, sibling, slide,
+ DocumentEditorInsertType::PreviousSibling, CPt(),
+ PRIMITIVETYPE_UNKNOWN, -1);
+ // Move items into the group
+ RearrangeObjects(sortedList, group, DocumentEditorInsertType::LastChild, true);
+ }
}
Qt3DSDMInstanceHandle MakeComponent(const qt3dsdm::TInstanceHandleList &inInstances) override