summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/dms/Modals/FileBrowser/FileBrowserSurfaceModal.qml
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Modals/FileBrowser/FileBrowserSurfaceModal.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/dms/Modals/FileBrowser/FileBrowserSurfaceModal.qml66
1 files changed, 66 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Modals/FileBrowser/FileBrowserSurfaceModal.qml b/raveos-hyprland-theme/theme-data/dms/Modals/FileBrowser/FileBrowserSurfaceModal.qml
new file mode 100644
index 0000000..25b8d5a
--- /dev/null
+++ b/raveos-hyprland-theme/theme-data/dms/Modals/FileBrowser/FileBrowserSurfaceModal.qml
@@ -0,0 +1,66 @@
+import QtQuick
+import Quickshell.Wayland
+import qs.Common
+import qs.Modals.Common
+
+DankModal {
+ id: fileBrowserSurfaceModal
+
+ property string browserTitle: "Select File"
+ property string browserIcon: "folder_open"
+ property string browserType: "generic"
+ property var fileExtensions: ["*.*"]
+ property alias filterExtensions: fileBrowserSurfaceModal.fileExtensions
+ property bool showHiddenFiles: false
+ property bool saveMode: false
+ property string defaultFileName: ""
+ property var parentPopout: null
+
+ signal fileSelected(string path)
+
+ layerNamespace: "dms:filebrowser"
+ modalWidth: 800
+ modalHeight: 600
+ backgroundColor: Theme.withAlpha(Theme.surfaceContainer, Theme.popupTransparency)
+ closeOnEscapeKey: true
+ closeOnBackgroundClick: true
+ allowStacking: true
+ keepPopoutsOpen: true
+
+ onBackgroundClicked: close()
+
+ onOpened: {
+ if (parentPopout) {
+ parentPopout.customKeyboardFocus = WlrKeyboardFocus.None;
+ }
+ Qt.callLater(() => {
+ if (contentLoader.item) {
+ contentLoader.item.reset();
+ contentLoader.item.forceActiveFocus();
+ }
+ });
+ }
+
+ onDialogClosed: {
+ if (parentPopout) {
+ parentPopout.customKeyboardFocus = null;
+ }
+ }
+
+ content: FileBrowserContent {
+ focus: true
+
+ browserTitle: fileBrowserSurfaceModal.browserTitle
+ browserIcon: fileBrowserSurfaceModal.browserIcon
+ browserType: fileBrowserSurfaceModal.browserType
+ fileExtensions: fileBrowserSurfaceModal.fileExtensions
+ showHiddenFiles: fileBrowserSurfaceModal.showHiddenFiles
+ saveMode: fileBrowserSurfaceModal.saveMode
+ defaultFileName: fileBrowserSurfaceModal.defaultFileName
+
+ Component.onCompleted: initialize()
+
+ onFileSelected: path => fileBrowserSurfaceModal.fileSelected(path)
+ onCloseRequested: fileBrowserSurfaceModal.close()
+ }
+}