From a36ae5b5e04278d4227e6770e540250d676e5ac3 Mon Sep 17 00:00:00 2001 From: Roman Chornii Date: Thu, 13 Jun 2024 20:21:04 +0300 Subject: [PATCH] fix(MembersTabPanel): Sorted Community members list alphabetically (#15163) --- .../Communities/panels/MembersTabPanel.qml | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/ui/app/AppLayouts/Communities/panels/MembersTabPanel.qml b/ui/app/AppLayouts/Communities/panels/MembersTabPanel.qml index 772f199b2a..a462b63f9d 100644 --- a/ui/app/AppLayouts/Communities/panels/MembersTabPanel.qml +++ b/ui/app/AppLayouts/Communities/panels/MembersTabPanel.qml @@ -2,6 +2,7 @@ import QtQuick 2.14 import QtQuick.Layouts 1.14 import QtQuick.Controls 2.14 +import StatusQ 0.1 import StatusQ.Core 0.1 import StatusQ.Core.Theme 0.1 import StatusQ.Controls 0.1 @@ -15,6 +16,8 @@ import shared.controls 1.0 import AppLayouts.Communities.layouts 1.0 +import SortFilterProxyModel 0.2 + Item { id: root @@ -62,7 +65,28 @@ Item { Layout.fillWidth: true Layout.fillHeight: true - model: root.model + model: SortFilterProxyModel { + + sourceModel: root.model + + proxyRoles: FastExpressionRole { + function displayNameProxy(localNickname, ensName, displayName, aliasName) { + return ProfileUtils.displayName(localNickname, ensName, displayName, aliasName); + } + + name: "preferredDisplayName" + expectedRoles: ["localNickname", "displayName", "ensName", "alias"] + expression: displayNameProxy(model.localNickname, model.ensName, model.displayName, model.alias); + } + + + sorters : [ + StringSorter { + roleName: "preferredDisplayName" + caseSensitivity: Qt.CaseInsensitive + } + ] + } spacing: 0 delegate: StatusMemberListItem {