summaryrefslogtreecommitdiff
path: root/rockwork/InstalledAppDelegate.qml
blob: 89f6ba87e0b40e2bb2ca3c60fdb23d51b3eba5c9 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import QtQuick 2.4
import QtQuick.Layouts 1.1
import Ubuntu.Components 1.3
import RockWork 1.0

ListItem {
    id: root

    property string uuid: ""
    property string name: ""
    property string iconSource: ""
    property string vendor: ""
    property bool hasSettings: false
    property alias hasGrip: grip.visible
    property bool isSystemApp: false

    signal deleteApp();
    signal configureApp();

    leadingActions: ListItemActions {
        actions: [
            Action {
                visible: !root.isSystemApp
                iconName: "delete"
                onTriggered: {
                    root.deleteApp();
                }
            }
        ]
    }

    trailingActions: ListItemActions {
        actions: [
            Action {
                visible: root.hasSettings
                iconName: "settings"
                onTriggered: {
                    print("settings triggered")
                    root.configureApp();
                }
            }
        ]
    }

    RowLayout {
        anchors {
            fill: parent
            margins: units.gu(1)
        }
        spacing: units.gu(1)

        SystemAppIcon {
            Layout.fillHeight: true
            Layout.preferredWidth: height
            isSystemApp: root.isSystemApp
            uuid: root.uuid
            iconSource: root.iconSource
        }

        ColumnLayout {
            Layout.fillWidth: true
            Label {
                text: root.name
                Layout.fillWidth: true
            }

            Label {
                text: root.vendor
                Layout.fillWidth: true
                fontSize: "small"
            }
        }

        Item {
            id: grip
            Layout.fillHeight: true
            Layout.preferredWidth: height
            opacity: (root.contentMoving || root.swiped || root.dragging) ? 0 : 1
            Behavior on opacity { UbuntuNumberAnimation {} }
            Icon {
                width: units.gu(3)
                height: width
                anchors.centerIn: parent
                name: "grip-large"
            }
        }
    }
}