From a9d0cb64b7c0fadf2d5bbaf63c91398269c3e946 Mon Sep 17 00:00:00 2001 From: Nate Graham Date: Wed, 22 Apr 2020 15:46:09 -0600 Subject: [PATCH] [applet] Port to Kirigami.PlaceholderMessage This new Kirigami component was just introduced with https://phabricator.kde.org/D29057. ref T13021 --- CMakeLists.txt | 2 +- .../contents/ui/FullRepresentation.qml | 114 ++++++++---------- plasmoid/package/contents/ui/main.qml | 3 - 3 files changed, 50 insertions(+), 69 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e988a1f1..32b53f0d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ if (SAILFISHOS) set(KF5_MIN_VERSION "5.36.0") set(QT_MIN_VERSION "5.6.0") else() - set(KF5_MIN_VERSION "5.64.0") + set(KF5_MIN_VERSION "5.70.0") set(QT_MIN_VERSION "5.10.0") endif() set(QCA_MIN_VERSION "2.1.0") diff --git a/plasmoid/package/contents/ui/FullRepresentation.qml b/plasmoid/package/contents/ui/FullRepresentation.qml index 506ff117e..58a9ad659 100644 --- a/plasmoid/package/contents/ui/FullRepresentation.qml +++ b/plasmoid/package/contents/ui/FullRepresentation.qml @@ -18,7 +18,8 @@ * along with this program. If not, see . */ -import QtQuick 2.1 +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 @@ -26,6 +27,8 @@ 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 @@ -38,69 +41,6 @@ Item { displayFilter: KdeConnect.DevicesModel.Paired } - ColumnLayout { - spacing: units.smallSpacing - visible: devicesView.count == 0 - anchors.fill: parent - - Item { - Layout.fillHeight: true - } - - PlasmaExtras.Heading { - id: heading - Layout.fillWidth: true - visible: pairedDevicesModel.count >= 0 - level: 3 - enabled: false - text: pairedDevicesModel.count == 0 ? i18n("No paired devices") : i18np("Paired device is unavailable", "All paired devices are unavailable", pairedDevicesModel.count) - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - } - - PlasmaExtras.Heading { - Layout.fillWidth: true - visible: allDevicesModel.count == 0 - level: 3 - text: i18n("Install KDE Connect on your Android device to integrate it with Plasma!") - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - } - - PlasmaComponents.Button { - Layout.leftMargin: units.largeSpacing - Layout.rightMargin: units.largeSpacing - 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 - Layout.rightMargin: units.largeSpacing - 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/") - } - - PlasmaComponents.Button { - Layout.alignment: Qt.AlignHCenter - text: pairedDevicesModel.count == 0 ? i18n("Pair a Device...") : i18n("Configure...") - iconName: pairedDevicesModel.count == 0 ? "list-add" : "configure" - onClicked: KCMShell.open("kcm_kdeconnect") - visible: KCMShell.authorize("kcm_kdeconnect.desktop").length > 0 - } - - - Item { - Layout.fillHeight: true - } - } - /* //Startup arguments PlasmaComponents.Label { @@ -113,12 +53,56 @@ Item { PlasmaExtras.ScrollArea { id: dialogItem anchors.fill: parent - visible: devicesView.count > 0 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: KCMShell.open("kcm_kdeconnect") + 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/") + } + } } } } diff --git a/plasmoid/package/contents/ui/main.qml b/plasmoid/package/contents/ui/main.qml index 5235f0002..c12dbbb99 100644 --- a/plasmoid/package/contents/ui/main.qml +++ b/plasmoid/package/contents/ui/main.qml @@ -26,9 +26,6 @@ import org.kde.kdeconnect 1.0 Item { - width: units.gridUnit * 20 - height: units.gridUnit * 32 - DevicesModel { id: connectDeviceModel displayFilter: DevicesModel.Paired | DevicesModel.Reachable