FullRepresentation.qml 3.39 KB
Newer Older
1
/**
2
 * SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com>
3
 *
4
 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5
6
 */

7
8
import QtQuick 2.4
import QtQuick.Controls 2.4
9
10
11
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
12
import org.kde.kdeconnect 1.0 as KdeConnect
13
import QtQuick.Layouts 1.9
14
import org.kde.kquickcontrolsaddons 2.0
15

16
17
Item {
    id: kdeconnect
18
    property alias devicesModel: devicesView.model
19

20
21
22
    KdeConnect.DevicesModel {
        id: allDevicesModel
    }
23
24
25
26
    KdeConnect.DevicesModel {
        id: pairedDevicesModel
        displayFilter: KdeConnect.DevicesModel.Paired
    }
27

28
29
30
31
32
33
34
35
36
    /*
    //Startup arguments
    PlasmaComponents.Label {
        visible: (startupArguments.length > 0)
        text: (""+startupArguments)
        anchors.fill: parent
    }
    */

37
38
39
40
    PlasmaExtras.ScrollArea {
        id: dialogItem
        anchors.fill: parent

Aleix Pol Gonzalez's avatar
Aleix Pol Gonzalez committed
41
        ListView {
42
43
44
            id: devicesView
            anchors.fill: parent
            delegate: DeviceDelegate { }
45

46
            PlasmaExtras.PlaceholderMessage {
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
                // For optimal label and button sizing
                width: units.gridUnit * 20
                anchors.centerIn: parent
                anchors.left: parent.left
                anchors.right: parent.right
                anchors.margins: units.largeSpacing

                visible: devicesView.count == 0

                text: {
                    if (pairedDevicesModel.count >= 0) {
                        return pairedDevicesModel.count == 0 ? i18n("No paired devices") : i18np("Paired device is unavailable", "All paired devices are unavailable", pairedDevicesModel.count)
                    } else if (allDevicesModel.count == 0) {
                        return i18n("Install KDE Connect on your Android device to integrate it with Plasma!")
                    }
                }
                helpfulAction: Action {
                    text: pairedDevicesModel.count == 0 ? i18n("Pair a Device...") : i18n("Configure...")
                    icon.name: pairedDevicesModel.count == 0 ? "list-add" : "configure"
66
                    onTriggered: KdeConnect.DaemonDbusInterface.openConfiguration()
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
                    enabled: KCMShell.authorize("kcm_kdeconnect.desktop").length > 0
                }

                PlasmaComponents.Button {
                    Layout.leftMargin: units.largeSpacing * 3
                    Layout.rightMargin: units.largeSpacing * 3
                    Layout.alignment: Qt.AlignHCenter
                    Layout.fillWidth: true
                    visible: allDevicesModel.count === 0
                    text: i18n("Install from Google Play")
                    onClicked: Qt.openUrlExternally("https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp")
                }

                PlasmaComponents.Button {
                    Layout.leftMargin: units.largeSpacing * 3
                    Layout.rightMargin: units.largeSpacing * 3
                    Layout.alignment: Qt.AlignHCenter
                    Layout.fillWidth: true
                    visible: allDevicesModel.count === 0
                    text: i18n("Install from F-Droid")
                    onClicked: Qt.openUrlExternally("https://f-droid.org/en/packages/org.kde.kdeconnect_tp/")
                }
            }
90
91
92
        }
    }
}