diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index eab3dd46d..d499474a1 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -35,7 +35,6 @@ ecm_target_qml_sources(kdeconnect-app SOURCES qml/presentationRemote.qml qml/PluginItem.qml qml/DevicePage.qml - qml/FindDevicesPage.qml qml/runcommand.qml qml/volume.qml qml/MprisSlider.qml diff --git a/app/qml/FindDevicesPage.qml b/app/qml/FindDevicesPage.qml deleted file mode 100644 index 8c7745bb2..000000000 --- a/app/qml/FindDevicesPage.qml +++ /dev/null @@ -1,88 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2016 Aleix Pol Gonzalez - * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL - */ - -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import org.kde.kirigami as Kirigami -import org.kde.kdeconnect - -Kirigami.ScrollablePage -{ - id: root - - Component { - id: deviceComp - DevicePage {} - } - - objectName: "FindDevices" - title: i18ndc("kdeconnect-app", "Title of the page listing the devices", "Devices") - supportsRefreshing: true - - onRefreshingChanged: { - DaemonDbusInterface.forceOnNetworkChange() - refreshResetTimer.start() - } - - Timer { - id: refreshResetTimer - interval: 1000 - onTriggered: root.refreshing = false - } - - ListView { - id: devices - section { - property: "status" - delegate: Kirigami.ListSectionHeader { - - width: ListView.view.width - - text: switch (parseInt(section)) - { - case DevicesModel.Paired: - return i18nd("kdeconnect-app", "Remembered") - case DevicesModel.Reachable: - return i18nd("kdeconnect-app", "Available") - case (DevicesModel.Reachable | DevicesModel.Paired): - return i18nd("kdeconnect-app", "Connected") - } - } - } - Kirigami.PlaceholderMessage { - text: i18nd("kdeconnect-app", "No devices found") - icon.name: 'edit-none-symbolic' - anchors.centerIn: parent - width: parent.width - (Kirigami.Units.largeSpacing * 4) - visible: devices.count === 0 - } - - model: DevicesSortProxyModel { - sourceModel: DevicesModel {} - } - delegate: ItemDelegate { - id: delegate - icon.name: iconName - text: model.name - width: ListView.view.width - highlighted: false - - contentItem: Kirigami.IconTitleSubtitle { - title: delegate.text - subtitle: toolTip - icon: icon.fromControlsIcon(delegate.icon) - } - - onClicked: { - pageStack.push( - deviceComp, - {currentDevice: device} - ); - } - } - } -} diff --git a/app/qml/Main.qml b/app/qml/Main.qml index 9a195bcf9..02833b628 100644 --- a/app/qml/Main.qml +++ b/app/qml/Main.qml @@ -24,6 +24,11 @@ Kirigami.ApplicationWindow { configGroupName: "MainWindow" } + Component { + id: deviceComp + DevicePage {} + } + globalDrawer: Kirigami.OverlayDrawer { id: drawer edge: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.RightEdge : Qt.LeftEdge @@ -50,7 +55,6 @@ Kirigami.ApplicationWindow { contentItem: ColumnLayout { spacing: 0 - QQC2.ToolBar { Layout.fillWidth: true Layout.preferredHeight: pageStack.globalToolBar.preferredHeight @@ -72,57 +76,78 @@ Kirigami.ApplicationWindow { } } } - - QQC2.ItemDelegate { - id: findDevicesAction - text: i18nd("kdeconnect-app", "Find devices...") - icon.name: "list-add" - checked: pageStack.currentItem && pageStack.currentItem.objectName == "FindDevices" + QQC2.ScrollView { Layout.fillWidth: true - - onClicked: { - root.pageStack.clear() - root.pageStack.push(Qt.resolvedUrl("FindDevicesPage.qml")); - } - } - - Kirigami.Separator { - Layout.fillWidth: true - } - - Repeater { - model: DevicesSortProxyModel { - sourceModel: DevicesModel { - displayFilter: DevicesModel.Paired | DevicesModel.Reachable - } - } - - QQC2.ItemDelegate { + ListView { + id: devices Layout.fillWidth: true - contentItem: Kirigami.IconTitleSubtitle { - icon.name: model.iconName - icon.width: Kirigami.Units.iconSizes.smallMedium - title: model.name - subtitle: model.toolTip - } - enabled: status & DevicesModel.Reachable - checked: pageStack.currentItem && pageStack.currentItem.currentDevice == device - onClicked: { - root.pageStack.pop(0) - root.pageStack.push( - Qt.resolvedUrl("DevicePage.qml"), - {currentDevice: device} - ); + section { + property: "status" + delegate: Kirigami.ListSectionHeader { + width: ListView.view.width + text: switch (parseInt(section)) { + case DevicesModel.Paired: + return i18nd("kdeconnect-app", "Remembered") + case DevicesModel.Reachable: + return i18nd("kdeconnect-app", "Available") + case (DevicesModel.Reachable | DevicesModel.Paired): + return i18nd("kdeconnect-app", "Connected") + } + } + } + Kirigami.PlaceholderMessage { + text: i18nd("kdeconnect-app", "No devices found") + icon.name: 'edit-none-symbolic' + anchors.centerIn: parent + width: parent.width - (Kirigami.Units.largeSpacing * 4) + visible: devices.count === 0 + } + model: DevicesSortProxyModel { + sourceModel: DevicesModel {} + } + delegate: QQC2.ItemDelegate { + id: delegate + icon.name: iconName + text: model.name + width: ListView.view.width + highlighted: false + + contentItem: Kirigami.IconTitleSubtitle { + title: delegate.text + subtitle: toolTip + icon: icon.fromControlsIcon(delegate.icon) + } + + onClicked: { + pageStack.clear() + pageStack.push( + deviceComp, + {currentDevice: device} + ); + } } } } + Item { Layout.fillHeight: true Layout.fillWidth: true } + QQC2.Button { + text: i18nc("@action:intoolbar", "Refresh") + icon.name: 'view-refresh-symbolic' + Layout.fillWidth: true + Layout.leftMargin: Kirigami.Units.largeSpacing + Layout.rightMargin: Kirigami.Units.largeSpacing + + onClicked: { + refresh + } + } + QQC2.ItemDelegate { text: i18n("Settings") icon.name: "settings-configure" @@ -139,4 +164,8 @@ Kirigami.ApplicationWindow { } pageStack.initialPage: Qt.resolvedUrl("NoDeviceSelected.qml") + + function refresh() { + DaemonDbusInterface.forceOnNetworkChange() + } }