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
import org . kde . plasma . components 2.0 as PlasmaComponents
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
import org . kde . kirigami 2.12 as Kirigami
2013-08-22 02:21:08 +01:00
Item {
id: kdeconnect
2015-03-12 23:56:25 +00:00
property alias devicesModel: devicesView . model
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
2013-11-15 16:41:33 +00:00
/ *
//Startup arguments
PlasmaComponents . Label {
visible: ( startupArguments . length > 0 )
text: ( "" + startupArguments )
anchors.fill: parent
}
* /
2013-08-22 02:21:08 +01:00
PlasmaExtras . ScrollArea {
id: dialogItem
anchors.fill: parent
2014-06-27 14:29:53 +01:00
ListView {
2013-08-22 02:21:08 +01:00
id: devicesView
anchors.fill: parent
delegate: DeviceDelegate { }
2020-04-22 22:46:09 +01:00
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"
2020-08-22 15:12:46 +01:00
onTriggered: KdeConnect . DaemonDbusInterface . openConfiguration ( )
2020-04-22 22:46:09 +01:00
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/" )
}
}
2013-08-22 02:21:08 +01:00
}
}
}