aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/appearance/IconsModule.qml
blob: 94132dbf80f0907af683a9071c090c9002db2357 (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
// Copyright (C) 2026 Danilo M. <danix@danix.xyz>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

import QtQuick
import "../.."

// The icon and cursor theme, and the pointer size.
Module {
    name: "icons"
    label: "Icons & cursor"
    // nf-fa-mouse_pointer, present in Inconsolata Nerd Font.
    icon: "\uf245"
    settings: true
    dirty: Icons.pendingCursor !== ""
    group: "Appearance"
    keywords: ["cursor", "pointer", "size", "gtk", "qt", "theme"]
    searchItems: Icons.iconThemes.map(n => ({ text: "icons: " + n, key: "icon:" + n }))
        .concat(Icons.cursorThemes.map(n => ({ text: "cursor: " + n, key: "cursor:" + n })))

    function refresh() { Icons.refresh(); }

    page: Component {
        Page {
            title: "Icons & cursor"
            // The staged cursor theme; an icon theme applies on click.
            actions: Component {
                SaveBar { saveText: "Apply"; discardText: "Reset"; dirty: Icons.pendingCursor !== ""
                          onSave: { Icons.applyCursor(Icons.pendingCursor); Icons.pendingCursor = ""; }
                          onDiscard: Icons.pendingCursor = "" }
            }
            IconsTab { width: parent.width }
        }
    }
}