2015-06-13 00:30:38 +01:00
|
|
|
/*
|
2020-08-17 10:48:10 +01:00
|
|
|
* SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@kde.org>
|
2015-06-13 00:30:38 +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
|
2015-06-13 00:30:38 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
import QtQuick 2.2
|
2018-06-08 00:58:50 +01:00
|
|
|
import QtQuick.Controls 2.1
|
2015-06-13 00:30:38 +01:00
|
|
|
import QtQuick.Layouts 1.1
|
2017-05-09 10:41:55 +01:00
|
|
|
import org.kde.kirigami 2.0 as Kirigami
|
2015-06-13 00:30:38 +01:00
|
|
|
import org.kde.kdeconnect 1.0
|
|
|
|
|
2016-06-05 21:42:19 +01:00
|
|
|
Kirigami.ApplicationWindow
|
2015-06-13 00:30:38 +01:00
|
|
|
{
|
|
|
|
id: root
|
|
|
|
visible: true
|
2017-05-09 10:41:55 +01:00
|
|
|
width: 900
|
2015-06-13 00:30:38 +01:00
|
|
|
height: 500
|
|
|
|
|
2016-08-21 16:55:13 +01:00
|
|
|
Kirigami.Action {
|
|
|
|
id: findDevicesAction
|
2019-12-21 07:59:36 +00:00
|
|
|
text: i18nd("kdeconnect-app", "Find devices...")
|
2016-08-21 16:55:13 +01:00
|
|
|
iconName: "list-add"
|
2017-05-09 10:41:55 +01:00
|
|
|
checked: pageStack.currentItem && pageStack.currentItem.objectName == "FindDevices"
|
2016-08-21 17:45:49 +01:00
|
|
|
|
2016-08-21 16:55:13 +01:00
|
|
|
onTriggered: {
|
|
|
|
root.pageStack.clear()
|
2019-10-15 19:06:04 +01:00
|
|
|
root.pageStack.push(Qt.resolvedUrl("FindDevicesPage.qml"));
|
2016-08-21 16:55:13 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-06-08 17:37:57 +01:00
|
|
|
globalDrawer: Kirigami.GlobalDrawer {
|
2016-08-21 16:55:13 +01:00
|
|
|
id: drawer
|
2015-06-19 06:14:02 +01:00
|
|
|
|
2018-10-10 23:34:22 +01:00
|
|
|
modal: !root.wideScreen
|
|
|
|
handleVisible: !root.wideScreen
|
|
|
|
|
2020-09-19 13:51:11 +01:00
|
|
|
header: Kirigami.AbstractApplicationHeader {
|
|
|
|
topPadding: Kirigami.Units.smallSpacing / 2 // HACK: not dividing by two makes the header to big and not adding the spacing make it to small
|
|
|
|
bottomPadding: Kirigami.Units.smallSpacing
|
|
|
|
leftPadding: Kirigami.Units.smallSpacing
|
|
|
|
rightPadding: Kirigami.Units.smallSpacing
|
|
|
|
contentItem: RowLayout {
|
|
|
|
anchors.fill: parent
|
|
|
|
spacing: Kirigami.Units.smallSpacing
|
2016-08-21 18:38:15 +01:00
|
|
|
|
2020-09-19 13:51:11 +01:00
|
|
|
DBusProperty {
|
|
|
|
id: announcedNameProperty
|
|
|
|
object: DaemonDbusInterface
|
|
|
|
read: "announcedName"
|
|
|
|
defaultValue: ""
|
2018-11-05 00:41:04 +00:00
|
|
|
}
|
|
|
|
|
2020-09-19 13:51:11 +01:00
|
|
|
TextField {
|
|
|
|
id: nameField
|
|
|
|
visible: false
|
|
|
|
Layout.fillWidth: true
|
|
|
|
text: announcedNameProperty.value
|
|
|
|
onAccepted: {
|
|
|
|
DaemonDbusInterface.setAnnouncedName(text)
|
|
|
|
text = Qt.binding(function() {return announcedNameProperty.value})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Kirigami.Heading {
|
|
|
|
level: 2
|
|
|
|
text: announcedNameProperty.value
|
|
|
|
Layout.fillWidth: true
|
|
|
|
visible: !nameField.visible
|
|
|
|
elide: Qt.ElideRight
|
|
|
|
font.pointSize: 18
|
|
|
|
}
|
2018-11-05 00:41:04 +00:00
|
|
|
|
2020-09-19 13:51:11 +01:00
|
|
|
Button {
|
|
|
|
icon.name: nameField.visible ? "dialog-ok-apply" : "entry-edit"
|
|
|
|
onClicked: {
|
|
|
|
nameField.visible = !nameField.visible
|
|
|
|
nameField.accepted()
|
|
|
|
}
|
2016-08-21 18:38:15 +01:00
|
|
|
}
|
|
|
|
}
|
2019-07-21 19:40:16 +01:00
|
|
|
}
|
2019-10-15 19:13:17 +01:00
|
|
|
|
2016-08-21 16:55:13 +01:00
|
|
|
property var objects: [findDevicesAction]
|
|
|
|
Instantiator {
|
2016-06-08 17:37:57 +01:00
|
|
|
model: DevicesSortProxyModel {
|
2018-11-26 21:08:42 +00:00
|
|
|
sourceModel: DevicesModel { displayFilter: DevicesModel.Paired | DevicesModel.Reachable }
|
2016-06-08 17:37:57 +01:00
|
|
|
}
|
2016-08-21 16:55:13 +01:00
|
|
|
delegate: Kirigami.Action {
|
2019-02-08 23:17:07 +00:00
|
|
|
icon.name: model.iconName
|
|
|
|
icon.color: "transparent"
|
2018-11-26 14:51:28 +00:00
|
|
|
text: display + "\n" + toolTip
|
2018-11-26 21:08:42 +00:00
|
|
|
visible: status & DevicesModel.Reachable
|
2017-05-09 10:41:55 +01:00
|
|
|
checked: pageStack.currentItem && pageStack.currentItem.currentDevice == device
|
2016-08-21 16:55:13 +01:00
|
|
|
onTriggered: {
|
2016-06-08 17:37:57 +01:00
|
|
|
root.pageStack.clear()
|
|
|
|
root.pageStack.push(
|
2019-10-15 19:06:04 +01:00
|
|
|
Qt.resolvedUrl("DevicePage.qml"),
|
2016-06-08 17:37:57 +01:00
|
|
|
{currentDevice: device}
|
|
|
|
);
|
2015-06-13 00:30:38 +01:00
|
|
|
}
|
|
|
|
}
|
2016-08-21 16:55:13 +01:00
|
|
|
|
|
|
|
onObjectAdded: {
|
|
|
|
drawer.objects.push(object)
|
|
|
|
drawer.objects = drawer.objects
|
|
|
|
}
|
|
|
|
onObjectRemoved: {
|
|
|
|
var idx = drawer.objects.indexOf(object);
|
|
|
|
if (idx>=0) {
|
|
|
|
var removed = drawer.objects.splice(idx, 1)
|
|
|
|
drawer.objects = drawer.objects
|
|
|
|
}
|
|
|
|
}
|
2015-06-13 00:30:38 +01:00
|
|
|
}
|
2016-08-21 16:55:13 +01:00
|
|
|
actions: objects
|
2015-06-13 00:30:38 +01:00
|
|
|
}
|
2016-06-08 17:37:57 +01:00
|
|
|
|
2016-06-08 17:38:48 +01:00
|
|
|
contextDrawer: Kirigami.ContextDrawer {
|
|
|
|
id: contextDrawer
|
|
|
|
}
|
|
|
|
|
2019-10-15 19:06:04 +01:00
|
|
|
pageStack.initialPage: Qt.resolvedUrl("FindDevicesPage.qml")
|
2015-06-13 00:30:38 +01:00
|
|
|
}
|