2013-08-22 02:21:08 +01:00
/ * *
2020-08-17 10:48:10 +01:00
* SPDX - FileCopyrightText: 2013 Albert Vaca < albertvaka @ gmail . com >
2013-08-22 02:21:08 +01:00
*
2020-08-17 10:48:10 +01:00
* SPDX - License - Identifier: GPL - 2.0 - only OR GPL - 3.0 - only OR LicenseRef - KDE - Accepted - GPL
2013-08-22 02:21:08 +01:00
* /
2020-04-22 22:46:09 +01:00
import QtQuick 2.4
import QtQuick . Controls 2.4
2014-06-18 01:35:48 +01:00
import org . kde . plasma . core 2.0 as PlasmaCore
2022-01-04 22:24:28 +00:00
import org . kde . plasma . components 3.0 as PlasmaComponents3
2014-06-18 01:35:48 +01:00
import org . kde . plasma . extras 2.0 as PlasmaExtras
2013-08-22 02:21:08 +01:00
import org . kde . kdeconnect 1.0 as KdeConnect
2019-06-22 11:12:48 +01:00
import QtQuick . Layouts 1.9
2019-09-19 17:46:21 +01:00
import org . kde . kquickcontrolsaddons 2.0
2020-04-22 22:46:09 +01:00
2022-01-04 22:24:28 +00:00
PlasmaExtras . Representation {
2013-08-22 02:21:08 +01:00
id: kdeconnect
2015-03-12 23:56:25 +00:00
property alias devicesModel: devicesView . model
2022-01-04 22:24:28 +00:00
collapseMarginsHint: true
2013-08-22 02:21:08 +01:00
2019-09-20 00:29:23 +01:00
KdeConnect . DevicesModel {
id: allDevicesModel
}
2020-03-04 17:21:06 +00:00
KdeConnect . DevicesModel {
id: pairedDevicesModel
displayFilter: KdeConnect . DevicesModel . Paired
}
2019-09-20 00:29:23 +01:00
2022-01-04 22:24:28 +00:00
PlasmaComponents3 . ScrollView {
2013-08-22 02:21:08 +01:00
id: dialogItem
anchors.fill: parent
2022-01-04 22:24:28 +00:00
contentItem: ListView {
2013-08-22 02:21:08 +01:00
id: devicesView
2022-01-04 22:24:28 +00:00
spacing: PlasmaCore . Units . smallSpacing
2013-08-22 02:21:08 +01:00
delegate: DeviceDelegate { }
2020-04-22 22:46:09 +01:00
2021-03-09 18:20:05 +00:00
PlasmaExtras . PlaceholderMessage {
2022-01-04 22:24:28 +00:00
width: parent . width - PlasmaCore . Units . gridUnit * 2
2020-04-22 22:46:09 +01:00
anchors.centerIn: parent
2022-01-04 22:24:28 +00:00
visible: devicesView . count === 0
2020-04-22 22:46:09 +01:00
2022-05-07 09:04:16 +01:00
iconName: {
if ( pairedDevicesModel . count >= 0 ) {
return pairedDevicesModel . count === 0 ? "edit-none" : "network-disconnect" ;
}
return "kdeconnect" ;
}
2020-04-22 22:46:09 +01:00
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 {
2022-01-14 23:08:39 +00:00
text: i18n ( "Pair a Device..." )
icon.name: "list-add"
2023-01-18 15:29:25 +00:00
onTriggered: KdeConnect . OpenConfig . openConfiguration ( )
2022-01-14 23:08:39 +00:00
enabled: pairedDevicesModel . count == 0 && KCMShell . authorize ( "kcm_kdeconnect.desktop" ) . length > 0
2020-04-22 22:46:09 +01:00
}
2022-01-04 22:24:28 +00:00
PlasmaComponents3 . Button {
2020-04-22 22:46:09 +01:00
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" )
}
2022-01-04 22:24:28 +00:00
PlasmaComponents3 . Button {
2020-04-22 22:46:09 +01:00
Layout.leftMargin: units . largeSpacing * 3
Layout.rightMargin: units . l argeSpacing * 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/" )
}
}
2013-08-22 02:21:08 +01:00
}
}
}