summaryrefslogtreecommitdiffstats
path: root/editorlib/src/editorscene.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@qt.io>2016-06-07 10:15:10 +0300
committerTomi Korpipää <tomi.korpipaa@qt.io>2016-06-07 08:25:03 +0000
commit0d02d607b3d72cbe3a4560840f5dcbd435cc5433 (patch)
tree1e75f410e62af275eff6320dfc54e6a16693b81a /editorlib/src/editorscene.cpp
parent0c85e4bb7158e53ed518eb2216e0a4b44192cfe0 (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.cpp24
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;