Improve DevicesPage and DevicesModel

- Split the list into sections for "this devices", "verified devices", "unverified devices", and "devices without encryption support"
- Sort the lists by last activity
This commit is contained in:
Tobias Fella
2023-03-17 23:59:55 +01:00
parent 7587a1a418
commit 8db2526153
13 changed files with 390 additions and 172 deletions

View File

@@ -0,0 +1,56 @@
// SPDX-FileCopyrightText: 2020 - 2023 Tobias Fella <tobias.fella@kde.org>
// SPDX-FileCopyrightText: 2022 James Graham <james.h.graham@protonmail.com>
// SPDX-License-Identifier: GPL-2.0-or-later
import QtQuick 2.15
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts 1.15
import org.kde.kirigami 2.19 as Kirigami
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import org.kde.neochat 1.0
ColumnLayout {
id: root
required property string title
required property var type
required property bool showVerifyButton
visible: deviceRepeater.count > 0
MobileForm.FormHeader {
title: root.title
Layout.fillWidth: true
}
MobileForm.FormCard {
id: devicesCard
Layout.fillWidth: true
contentItem: ColumnLayout {
spacing: 0
Repeater {
id: deviceRepeater
model: DevicesProxyModel {
sourceModel: devicesModel
type: root.type
}
Kirigami.LoadingPlaceholder {
visible: deviceModel.count === 0 // We can assume 0 means loading since there is at least one device
anchors.centerIn: parent
}
delegate: DeviceDelegate {
showVerifyButton: root.showVerifyButton
}
}
}
}
}