kdeconnect-kde/kcm/list.qml
2024-10-06 21:40:39 +00:00

81 lines
2.1 KiB
QML

/*
* 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
ScrollView {
id: root
focus: true
signal clicked(string device)
property string currentDeviceId
property alias model: devices.model
Component.onCompleted: {
if (background) {
background.visible = true
}
}
ListView {
id: devices
focus: true
section {
property: "status"
delegate: Kirigami.ListSectionHeader {
width: ListView.view.width
text: switch (parseInt(section))
{
case DevicesModel.Paired:
return i18nd("kdeconnect-kcm", "Remembered")
case DevicesModel.Reachable:
return i18nd("kdeconnect-kcm", "Available")
case (DevicesModel.Reachable | DevicesModel.Paired):
return i18nd("kdeconnect-kcm", "Connected")
}
}
}
Kirigami.PlaceholderMessage {
text: i18nd("kdeconnect-kcm", "No devices found")
icon.name: 'edit-none-symbolic'
anchors.centerIn: parent
width: parent.width - (Kirigami.Units.largeSpacing * 4)
visible: devices.count === 0
}
delegate: ItemDelegate {
id: delegate
icon.name: iconName
text: model.name
width: ListView.view.width
highlighted: root.currentDeviceId === deviceId
focus: true
contentItem: Kirigami.IconTitleSubtitle {
title: delegate.text
subtitle: toolTip
icon: icon.fromControlsIcon(delegate.icon)
}
onClicked: {
root.currentDeviceId = deviceId
root.clicked(deviceId)
}
}
}
}