diff options
author | Tomi Korpipää <tomi.korpipaa@qt.io> | 2016-06-07 10:15:10 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@qt.io> | 2016-06-07 08:25:03 +0000 |
commit | 0d02d607b3d72cbe3a4560840f5dcbd435cc5433 (patch) | |
tree | 1e75f410e62af275eff6320dfc54e6a16693b81a /editorlib/src/editorscene.cpp | |
parent | 0c85e4bb7158e53ed518eb2216e0a4b44192cfe0 (diff) |
Support for copy, cut and paste in 3D view
Change-Id: Ifb8ef79820aa5d25c25354ddcf6c3056777753f3
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Titta Heikkala <titta.heikkala@qt.io>
Diffstat (limited to 'editorlib/src/editorscene.cpp')
-rw-r--r-- | editorlib/src/editorscene.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/editorlib/src/editorscene.cpp b/editorlib/src/editorscene.cpp index a5b09c2..fd42b42 100644 --- a/editorlib/src/editorscene.cpp +++ b/editorlib/src/editorscene.cpp @@ -119,6 +119,7 @@ EditorScene::EditorScene(QObject *parent) , m_previousDuplicate(nullptr) , m_multiSelect(false) , m_previousSelectedEntity(nullptr) + , m_clipboardOperation(ClipboardNone) { retranslateUi(); createRootEntity(); @@ -209,6 +210,9 @@ void EditorScene::removeEntity(Qt3DCore::QEntity *entity) if (entity == nullptr || entity == m_rootEntity) return; + if (entity->objectName() == m_clipboardEntityName) + setClipboardOperation(ClipboardNone); + if (entity == m_sceneEntity) { m_sceneEntity = nullptr; m_sceneEntityItem = nullptr; @@ -1815,6 +1819,26 @@ void EditorScene::addToMultiSelection(const QString &name) } } +void EditorScene::setClipboardOperation(ClipboardOperation operation) +{ + if (operation != m_clipboardOperation) { + m_clipboardOperation = operation; + emit clipboardOperationChanged(operation); + if (operation == ClipboardNone) { + m_clipboardEntityName.clear(); + emit clipboardContentChanged(m_clipboardEntityName); + } + } +} + +void EditorScene::setClipboardContent(const QString &entityName) +{ + if (entityName != m_clipboardEntityName) { + m_clipboardEntityName = entityName; + emit clipboardContentChanged(entityName); + } +} + void EditorScene::setActiveSceneCameraIndex(int index) { int previousIndex = m_activeSceneCameraIndex; |