1060c1a81a
We have a few places that open the KCM, with different arguments. Centralize the implementation in one place. This makes it easier to switch to invoking systemsettings5 in the future (once https://invent.kde.org/plasma/systemsettings/-/merge_requests/11 is in). It also makes sure the relevant device is selected when clicking on a pairing notification. The function is exposed to DBus for the Plasmoid and potential third-party users. CCBUG: 425660
93 lines
3.4 KiB
QML
93 lines
3.4 KiB
QML
/**
|
|
* SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
|
*/
|
|
|
|
import QtQuick 2.4
|
|
import QtQuick.Controls 2.4
|
|
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
|
|
import org.kde.kdeconnect 1.0 as KdeConnect
|
|
import QtQuick.Layouts 1.9
|
|
import org.kde.kquickcontrolsaddons 2.0
|
|
import org.kde.kirigami 2.12 as Kirigami
|
|
|
|
Item {
|
|
id: kdeconnect
|
|
property alias devicesModel: devicesView.model
|
|
|
|
KdeConnect.DevicesModel {
|
|
id: allDevicesModel
|
|
}
|
|
KdeConnect.DevicesModel {
|
|
id: pairedDevicesModel
|
|
displayFilter: KdeConnect.DevicesModel.Paired
|
|
}
|
|
|
|
/*
|
|
//Startup arguments
|
|
PlasmaComponents.Label {
|
|
visible: (startupArguments.length > 0)
|
|
text: (""+startupArguments)
|
|
anchors.fill: parent
|
|
}
|
|
*/
|
|
|
|
PlasmaExtras.ScrollArea {
|
|
id: dialogItem
|
|
anchors.fill: parent
|
|
|
|
ListView {
|
|
id: devicesView
|
|
anchors.fill: parent
|
|
delegate: DeviceDelegate { }
|
|
|
|
Kirigami.PlaceholderMessage {
|
|
// 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"
|
|
onTriggered: KdeConnect.DaemonDbusInterface.openConfiguration()
|
|
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/")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|