From 8e2b06a8e5d59935fadb0ebd2b79a7fbbbb46e56 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 10 Mar 2016 18:32:18 -0800 Subject: [PATCH] use an explicit selection model for treeview --- interface/resources/qml/AssetServer.qml | 18 ++++++++++-------- interface/resources/qml/controls-uit/Tree.qml | 4 ++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/interface/resources/qml/AssetServer.qml b/interface/resources/qml/AssetServer.qml index e5e3d95a81..1a6247ced9 100644 --- a/interface/resources/qml/AssetServer.qml +++ b/interface/resources/qml/AssetServer.qml @@ -138,7 +138,7 @@ Window { function addToWorld(url) { if (!url) { - url = assetProxyModel.data(treeView.currentIndex, 0x103); + url = assetProxyModel.data(treeView.selection.currentIndex, 0x103); } if (!url || !canAddToWorld(url)) { @@ -153,10 +153,10 @@ Window { function copyURLToClipboard(index) { if (!index) { - index = treeView.currentIndex; + index = treeView.selection.currentIndex; } - var url = assetProxyModel.data(treeView.currentIndex, 0x103); + var url = assetProxyModel.data(treeView.selection.currentIndex, 0x103); if (!url) { return; } @@ -165,9 +165,11 @@ Window { function renameFile(index) { if (!index) { - index = treeView.currentIndex; + index = treeView.selection.currentIndex; } + console.log("THE CURRENT INDEX IS " + treeView.selection.currentIndex); var path = assetProxyModel.data(index, 0x100); + console.log("THE PATH IS " + path); if (!path) { return; } @@ -194,14 +196,14 @@ Window { } function deleteFile(index) { if (!index) { - index = treeView.currentIndex; + index = treeView.selection.currentIndex; } var path = assetProxyModel.data(index, 0x100); if (!path) { return; } - var isFolder = assetProxyModel.data(treeView.currentIndex, 0x101); + var isFolder = assetProxyModel.data(treeView.selection.currentIndex, 0x101); var typeString = isFolder ? 'folder' : 'file'; var object = desktop.messageBox({ @@ -239,7 +241,7 @@ Window { var fileUrl = fileUrlTextField.text var shouldAddToWorld = addToWorldCheckBox.checked - var path = assetProxyModel.data(treeView.currentIndex, 0x100); + var path = assetProxyModel.data(treeView.selection.currentIndex, 0x100); var directory = path ? path.slice(0, path.lastIndexOf('/') + 1) : "/"; var filename = fileUrl.slice(fileUrl.lastIndexOf('/') + 1); @@ -302,7 +304,7 @@ Window { height: 26 width: 120 - enabled: canAddToWorld(assetProxyModel.data(treeView.currentIndex, 0x100)) + enabled: canAddToWorld(assetProxyModel.data(treeView.selection.currentIndex, 0x100)) onClicked: root.addToWorld() } diff --git a/interface/resources/qml/controls-uit/Tree.qml b/interface/resources/qml/controls-uit/Tree.qml index 18741d6420..a2572a2f5c 100644 --- a/interface/resources/qml/controls-uit/Tree.qml +++ b/interface/resources/qml/controls-uit/Tree.qml @@ -8,6 +8,7 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // +import QtQml.Models 2.2 import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 @@ -22,6 +23,9 @@ TreeView { readonly property bool isLightColorScheme: colorScheme == hifi.colorSchemes.light model: treeModel + selection: ItemSelectionModel { + model: treeModel + } TableViewColumn { role: "display";