kdeconnect-kde/app/qml/FindDevicesPage.qml

89 lines
2.4 KiB
QML
Raw Normal View History

/*
* SPDX-FileCopyrightText: 2016 Aleix Pol Gonzalez <aleixpol@kde.org>
*
* 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 {}
}
2016-08-21 17:45:49 +01:00
objectName: "FindDevices"
2023-07-22 18:58:18 +01:00
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"
2020-02-06 15:43:44 +00:00
delegate: Kirigami.ListSectionHeader {
2023-12-23 16:42:50 +00:00
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
2024-10-06 22:40:39 +01:00
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}
);
}
}
}
}