summaryrefslogtreecommitdiffstats
path: root/src/dialogs/DefaultFileDialog.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogs/DefaultFileDialog.qml')
-rw-r--r--src/dialogs/DefaultFileDialog.qml39
1 files changed, 24 insertions, 15 deletions
diff --git a/src/dialogs/DefaultFileDialog.qml b/src/dialogs/DefaultFileDialog.qml
index 4521859d0..900168607 100644
--- a/src/dialogs/DefaultFileDialog.qml
+++ b/src/dialogs/DefaultFileDialog.qml
@@ -56,18 +56,12 @@ AbstractFileDialog {
view.selection.clear()
}
}
- onFolderChanged: {
- var str = new String(folder)
- if (str.indexOf("qrc:") === 0)
- folder = "file:" + str.slice(4)
- if (view.model.folder != folder)
- view.model.folder = folder
- }
Component.onCompleted: {
view.model.nameFilters = root.selectedNameFilterExtensions
filterField.currentIndex = root.selectedNameFilterIndex
root.favoriteFolders = settings.favoriteFolders
+ root.folder = view.model.folder
}
Component.onDestruction: {
@@ -88,12 +82,13 @@ AbstractFileDialog {
property var favoriteFolders: []
function dirDown(path) {
- view.model.folder = "file://" + path
view.selection.clear()
+ root.folder = path
}
function dirUp() {
- view.model.folder = view.model.parentFolder
view.selection.clear()
+ if (view.model.parentFolder != "")
+ root.folder = view.model.parentFolder
}
function acceptSelection() {
// transfer the view's selections to QQuickFileDialog
@@ -118,7 +113,7 @@ AbstractFileDialog {
text: "&Up"
shortcut: "Ctrl+U"
iconSource: "images/up.png"
- onTriggered: if (view.model.parentFolder != "") dirUp()
+ onTriggered: dirUp()
tooltip: "Go up to the folder containing this one"
}
@@ -129,6 +124,22 @@ AbstractFileDialog {
id: window
color: root.palette.window
+ Binding {
+ target: root
+ property: "folder"
+ value: view.model.folder
+ }
+ Binding {
+ target: view.model
+ property: "folder"
+ value: root.folder
+ }
+ Binding {
+ target: currentPathField
+ property: "text"
+ value: root.urlToPath(root.folder)
+ }
+
SplitView {
id: splitter
x: 0
@@ -230,7 +241,7 @@ AbstractFileDialog {
hoverEnabled: true
onClicked: {
if (mouse.button == Qt.LeftButton)
- view.model.folder = root.favoriteFolders[index]
+ root.folder = root.favoriteFolders[index]
else if (mouse.button == Qt.RightButton)
favoriteCtxMenu.popup()
}
@@ -256,7 +267,7 @@ AbstractFileDialog {
text: "+"
width: height
onClicked: {
- root.favoriteFolders.push(view.model.folder)
+ root.favoriteFolders.push(root.folder)
favorites.model = root.favoriteFolders
}
}
@@ -279,7 +290,6 @@ AbstractFileDialog {
model: FolderListModel {
showFiles: !root.selectFolder
nameFilters: root.selectedNameFilterExtensions
- onFolderChanged: root.folder = folder
sortField: (view.sortIndicatorColumn === 0 ? FolderListModel.Name :
(view.sortIndicatorColumn === 1 ? FolderListModel.Type :
(view.sortIndicatorColumn === 2 ? FolderListModel.Size : FolderListModel.LastModified)))
@@ -368,14 +378,13 @@ AbstractFileDialog {
}
TextField {
id: currentPathField
- text: root.urlToPath(view.model.folder)
Layout.fillWidth: true
onAccepted: {
root.clearSelection()
if (root.addSelection(root.pathToUrl(text)))
root.accept()
else
- view.model.folder = root.pathFolder(text)
+ root.folder = root.pathFolder(text)
}
}
}