summaryrefslogtreecommitdiffstats
path: root/editorlib/qml/main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'editorlib/qml/main.qml')
-rw-r--r--editorlib/qml/main.qml44
1 files changed, 17 insertions, 27 deletions
diff --git a/editorlib/qml/main.qml b/editorlib/qml/main.qml
index 3d78a8d..85115a4 100644
--- a/editorlib/qml/main.qml
+++ b/editorlib/qml/main.qml
@@ -123,8 +123,6 @@ ApplicationWindow {
property real qlcControlHeight: 28
- property var selectionList: []
-
property string systemLanguage: editorScene.language
toolBar: EditorToolbar {}
@@ -250,7 +248,7 @@ ApplicationWindow {
sequence: StandardKey.Copy
onActivated: {
// Prevent copying multiselection (for now, at least)
- if (!selectionList.length)
+ if (!editorScene.multiSelection)
mainwindow.copyEntity(selectedEntityName)
}
}
@@ -276,7 +274,7 @@ ApplicationWindow {
sequence: StandardKey.Cut
onActivated: {
// Prevent cutting multiselection (for now, at least)
- if (!selectionList.length)
+ if (!editorScene.multiSelection)
mainwindow.cutEntity(selectedEntityName, selectedEntity)
}
}
@@ -329,29 +327,11 @@ ApplicationWindow {
freeView: true
onSelectionChanged: {
- if (multiSelection.length >= 1) {
- entityTree.multiSelect = true
- } else {
- selectionList.length = 0
- entityTree.multiSelect = false
- }
restoreSelection(selection)
}
- onMultiSelectionChanged: {
- selectionList = multiSelection
- entityTree.multiSelectedCamera = false
- // Deselect old ones
- entityTree.view.selection.clear()
- // Dig indexes of all selected entities and pass the selections to entitytree
- for (var i = 0; i < multiSelection.length; ++i) {
- var index = editorScene.sceneModel.getModelIndexByName(multiSelection[i])
- entityTree.view.selection.select(index, ItemSelectionModel.Select)
- if (editorScene.sceneModel.editorSceneItemFromIndex(index).itemType()
- === EditorSceneItem.Camera) {
- entityTree.multiSelectedCamera = true
- }
- }
+ onMultiSelectionListChanged: {
+ restoreMultiSelection(editorScene.multiSelectionList)
}
onErrorChanged: {
@@ -374,18 +354,28 @@ ApplicationWindow {
selectIndex(index)
}
+ function restoreMultiSelection(selectionList) {
+ // Deselect old ones
+ entityTree.view.selection.clear()
+ // Dig indexes of all selected entities and pass the selections to entitytree
+ for (var i = 0; i < selectionList.length; ++i) {
+ var index = editorScene.sceneModel.getModelIndexByName(multiSelectionList[i])
+ entityTree.view.selection.select(index, ItemSelectionModel.Select)
+ expandTo(index)
+ }
+ }
+
function selectIndex(index) {
expandTo(index)
entityTree.view.forceActiveFocus()
- if (!entityTree.multiSelect)
- entityTree.view.selection.setCurrentIndex(index, ItemSelectionModel.ClearAndSelect)
+ entityTree.view.selection.setCurrentIndex(index, ItemSelectionModel.ClearAndSelect)
}
function expandTo(index) {
var target = index
do {
- target = target.parent
entityTree.view.expand(target)
+ target = target.parent
} while (target.valid)
}
}