summaryrefslogtreecommitdiff
path: root/widgets/filedialog/FolderContents.qml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-07-19 23:04:32 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-07-19 23:04:32 +1000
commit2c8f76ba09c92f1703ecfd813efe6ef1340850b2 (patch)
tree26c6ebd85ee2cbf4aab10472809c05766833f0dd /widgets/filedialog/FolderContents.qml
parentinternal: file dialog part 1 (diff)
downloadcaelestia-shell-2c8f76ba09c92f1703ecfd813efe6ef1340850b2.tar.gz
caelestia-shell-2c8f76ba09c92f1703ecfd813efe6ef1340850b2.tar.bz2
caelestia-shell-2c8f76ba09c92f1703ecfd813efe6ef1340850b2.zip
filedialog: navigation
Diffstat (limited to '')
-rw-r--r--widgets/filedialog/FolderContents.qml18
1 files changed, 13 insertions, 5 deletions
diff --git a/widgets/filedialog/FolderContents.qml b/widgets/filedialog/FolderContents.qml
index c59d87f..f8e10d9 100644
--- a/widgets/filedialog/FolderContents.qml
+++ b/widgets/filedialog/FolderContents.qml
@@ -13,7 +13,7 @@ import Qt.labs.folderlistmodel
GridView {
id: root
- required property list<string> cwd
+ required property var dialog
property var mimes: ({})
@@ -24,12 +24,13 @@ GridView {
model: FolderListModel {
folder: {
let url = "file://";
- if (root.cwd[0] === "Home")
- url += `${Paths.strip(Paths.home)}/${root.cwd.slice(1).join("/")}`;
+ if (root.dialog.cwd[0] === "Home")
+ url += `${Paths.strip(Paths.home)}/${root.dialog.cwd.slice(1).join("/")}`;
else
- url += root.cwd.join("/");
+ url += root.dialog.cwd.join("/");
return url;
}
+ onFolderChanged: root.currentIndex = -1
}
delegate: StyledRect {
@@ -37,6 +38,7 @@ GridView {
required property int index
required property string fileName
+ required property string filePath
required property url fileUrl
required property string fileSuffix
required property bool fileIsDir
@@ -53,7 +55,13 @@ GridView {
StateLayer {
color: root.currentItem === item ? Colours.palette.m3onPrimary : Colours.palette.m3onSurface
- onDoubleClicked: console.log("double clicked", item)
+
+ onDoubleClicked: {
+ if (item.fileIsDir)
+ root.dialog.cwd.push(item.fileName);
+ else
+ root.dialog.accepted(item.filePath);
+ }
function onClicked(): void {
root.currentIndex = item.index;