[applet] Port to Kirigami.PlaceholderMessage

This new Kirigami component was just introduced with
https://phabricator.kde.org/D29057.

ref T13021
This commit is contained in:
Nate Graham 2020-04-22 15:46:09 -06:00 committed by Nicolas Fella
parent 02b38f56f6
commit a9d0cb64b7
3 changed files with 50 additions and 69 deletions

View file

@ -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")

View file

@ -18,7 +18,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
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/")
}
}
}
}
}

View file

@ -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