2013-08-22 02:21:08 +01:00
/ * *
2020-08-17 10:48:10 +01:00
* SPDX - FileCopyrightText: 2013 Albert Vaca < albertvaka @ gmail . com >
2024-06-30 23:03:57 +01:00
* SPDX - FileCopyrightText: 2024 ivan tkachenko < me @ ratijas . tk >
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
* /
2024-06-30 23:59:11 +01:00
pragma ComponentBehavior: Bound
2023-11-30 23:41:36 +00:00
import QtQuick
2024-06-30 23:03:57 +01:00
import QtQuick . Controls as QQC2
2023-11-30 23:41:36 +00:00
import QtQuick . Layouts
2024-06-30 23:03:57 +01:00
2023-11-30 23:41:36 +00:00
import org . kde . config as KConfig
2024-06-30 23:03:57 +01:00
import org . kde . kcmutils as KCMUtils
import org . kde . kdeconnect as KDEConnect
import org . kde . kirigami as Kirigami
import org . kde . plasma . components as PlasmaComponents3
import org . kde . plasma . extras as PlasmaExtras
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
2024-06-30 23:03:57 +01:00
2015-03-12 23:56:25 +00:00
property alias devicesModel: devicesView . model
2024-06-30 23:03:57 +01:00
2022-01-04 22:24:28 +00:00
collapseMarginsHint: true
2013-08-22 02:21:08 +01:00
2024-06-30 23:03:57 +01:00
KDEConnect . DevicesModel {
2019-09-20 00:29:23 +01:00
id: allDevicesModel
}
2024-06-30 23:03:57 +01:00
KDEConnect . DevicesModel {
2020-03-04 17:21:06 +00:00
id: pairedDevicesModel
2024-06-30 23:03:57 +01:00
displayFilter: KDEConnect . DevicesModel . Paired
2020-03-04 17:21:06 +00:00
}
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
anchors.fill: parent
2022-01-04 22:24:28 +00:00
contentItem: ListView {
2013-08-22 02:21:08 +01:00
id: devicesView
2024-06-30 23:03:57 +01:00
2023-11-30 23:41:36 +00:00
spacing: Kirigami . Units . smallSpacing
2022-01-04 22:24:28 +00:00
2024-06-30 23:09:59 +01:00
clip: true
2023-11-30 23:41:36 +00:00
delegate: DeviceDelegate {
2024-06-30 23:34:43 +01:00
width: ListView . view . width - ListView . view . leftMargin - ListView . view . rightMargin
2023-11-30 23:41:36 +00:00
}
2020-04-22 22:46:09 +01:00
2021-03-09 18:20:05 +00:00
PlasmaExtras . PlaceholderMessage {
2023-11-30 23:41:36 +00:00
width: parent . width - Kirigami . 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 ) {
2024-06-30 23:03:57 +01:00
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 ) {
2020-04-22 22:46:09 +01:00
return i18n ( "Install KDE Connect on your Android device to integrate it with Plasma!" )
}
}
2024-06-30 23:03:57 +01:00
helpfulAction: QQC2 . Action {
2024-06-30 20:47:26 +01:00
text: i18n ( "Pair a Device…" )
2022-01-14 23:08:39 +00:00
icon.name: "list-add"
2023-11-30 23:41:36 +00:00
onTriggered: KCMUtils . KCMLauncher . openSystemSettings ( "kcm_kdeconnect" )
2024-06-30 23:03:57 +01:00
enabled: pairedDevicesModel . count === 0 && KConfig . KAuthorized . authorizeControlModule ( "kcm_kdeconnect" )
2020-04-22 22:46:09 +01:00
}
2022-01-04 22:24:28 +00:00
PlasmaComponents3 . Button {
2023-11-30 23:41:36 +00:00
Layout.leftMargin: Kirigami . Units . gridUnit * 3
Layout.rightMargin: Kirigami . Units . gridUnit * 3
2020-04-22 22:46:09 +01:00
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 {
2023-11-30 23:41:36 +00:00
Layout.leftMargin: Kirigami . Units . gridUnit * 3
Layout.rightMargin: Kirigami . Units . gridUnit * 3
2020-04-22 22:46:09 +01:00
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
}
}
}