kdeconnect-kde/app/qml/FindDevicesPage.qml
Aleix Pol 79246f2b1a app: Put the Placeholder inside the view
If there's more than one main item in the ScrollablePage, QtQuick gets
confused and the placeholder does not get displayed.

(cherry picked from commit e0a64f4a30)
2024-03-07 19:51:43 +01:00

87 lines
2.3 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
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")
anchors.centerIn: parent
visible: devices.count === 0
}
model: DevicesSortProxyModel {
sourceModel: DevicesModel {}
}
delegate: ItemDelegate {
id: delegate
icon.name: iconName
icon.color: "transparent"
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}
);
}
}
}
}