summaryrefslogtreecommitdiff
path: root/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modals/FileBrowser/FileBrowserSidebar.qml
blob: bc02b3e3ad5e3ddf8d8b35a9ece460c1dd9f5ed0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import QtQuick
import qs.Common
import qs.Widgets

StyledRect {
    id: sidebar

    property var quickAccessLocations: []
    property string currentPath: ""
    signal locationSelected(string path)

    width: 200
    color: Theme.surface
    clip: true

    Column {
        anchors.fill: parent
        anchors.margins: Theme.spacingS
        spacing: 4

        StyledText {
            text: I18n.tr("Quick Access")
            font.pixelSize: Theme.fontSizeSmall
            color: Theme.surfaceTextMedium
            font.weight: Font.Medium
            leftPadding: Theme.spacingS
            bottomPadding: Theme.spacingXS
        }

        Repeater {
            model: quickAccessLocations

            StyledRect {
                width: parent?.width ?? 0
                height: 38
                radius: Theme.cornerRadius
                color: quickAccessMouseArea.containsMouse ? Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency) : (currentPath === modelData?.path ? Theme.surfacePressed : "transparent")

                Row {
                    anchors.fill: parent
                    anchors.leftMargin: Theme.spacingM
                    spacing: Theme.spacingS

                    DankIcon {
                        name: modelData?.icon ?? ""
                        size: Theme.iconSize - 2
                        color: currentPath === modelData?.path ? Theme.primary : Theme.surfaceText
                        anchors.verticalCenter: parent.verticalCenter
                    }

                    StyledText {
                        text: modelData?.name ?? ""
                        font.pixelSize: Theme.fontSizeMedium
                        color: currentPath === modelData?.path ? Theme.primary : Theme.surfaceText
                        font.weight: currentPath === modelData?.path ? Font.Medium : Font.Normal
                        anchors.verticalCenter: parent.verticalCenter
                    }
                }

                MouseArea {
                    id: quickAccessMouseArea
                    anchors.fill: parent
                    hoverEnabled: true
                    cursorShape: Qt.PointingHandCursor
                    onClicked: locationSelected(modelData?.path ?? "")
                }
            }
        }
    }
}