Cleanup name handling in RoomListModel

Replace NameRole with DisplayNameRole entirely.
This commit is contained in:
Tobias Fella
2023-05-15 00:14:38 +02:00
parent dee064a758
commit 4d2e64cb80
8 changed files with 17 additions and 21 deletions

View File

@@ -158,7 +158,7 @@ void RoomListModel::doAddRoom(Room *r)
void RoomListModel::connectRoomSignals(NeoChatRoom *room)
{
connect(room, &Room::displaynameChanged, this, [this, room] {
refresh(room, {DisplayNameRole, NameRole});
refresh(room, {DisplayNameRole});
});
connect(room, &Room::unreadMessagesChanged, this, [this, room] {
refresh(room, {NotificationCountRole, HighlightCountRole});
@@ -333,9 +333,6 @@ QVariant RoomListModel::data(const QModelIndex &index, int role) const
return QVariant();
}
NeoChatRoom *room = m_rooms.at(index.row());
if (role == NameRole) {
return !room->name().isEmpty() ? room->name() : room->displayName();
}
if (role == DisplayNameRole) {
return room->displayName();
}
@@ -434,7 +431,6 @@ void RoomListModel::refresh(NeoChatRoom *room, const QVector<int> &roles)
QHash<int, QByteArray> RoomListModel::roleNames() const
{
QHash<int, QByteArray> roles;
roles[NameRole] = "name";
roles[DisplayNameRole] = "displayName";
roles[AvatarRole] = "avatar";
roles[CanonicalAliasRole] = "canonicalAlias";

View File

@@ -58,8 +58,7 @@ public:
* @brief Defines the model roles.
*/
enum EventRoles {
NameRole = Qt::UserRole + 1, /**< The name of the room. */
DisplayNameRole, /**< The display name of the room. */
DisplayNameRole = Qt::DisplayRole, /**< The display name of the room. */
AvatarRole, /**< The source URL for the room's avatar. */
CanonicalAliasRole, /**< The room canonical alias. */
TopicRole, /**< The room topic. */

View File

@@ -21,7 +21,7 @@ void SortFilterRoomListModel::setRoomSortOrder(SortFilterRoomListModel::RoomSort
m_sortOrder = sortOrder;
Q_EMIT roomSortOrderChanged();
if (sortOrder == SortFilterRoomListModel::Alphabetical) {
setSortRole(RoomListModel::NameRole);
setSortRole(RoomListModel::DisplayNameRole);
} else if (sortOrder == SortFilterRoomListModel::LastActivity) {
setSortRole(RoomListModel::LastActiveTimeRole);
}
@@ -78,7 +78,8 @@ bool SortFilterRoomListModel::filterAcceptsRow(int source_row, const QModelIndex
{
Q_UNUSED(source_parent);
bool acceptRoom = sourceModel()->data(sourceModel()->index(source_row, 0), RoomListModel::NameRole).toString().contains(m_filterText, Qt::CaseInsensitive)
bool acceptRoom =
sourceModel()->data(sourceModel()->index(source_row, 0), RoomListModel::DisplayNameRole).toString().contains(m_filterText, Qt::CaseInsensitive)
&& sourceModel()->data(sourceModel()->index(source_row, 0), RoomListModel::JoinStateRole).toString() != "upgraded"
&& sourceModel()->data(sourceModel()->index(source_row, 0), RoomListModel::IsSpaceRole).toBool() == false;

View File

@@ -18,7 +18,7 @@ ColumnLayout {
spacing: 0
MobileForm.FormComboBoxDelegate {
text: i18n("Room")
textRole: "name"
textRole: "displayName"
valueRole: "id"
model: RoomListModel {
id: roomListModel

View File

@@ -90,7 +90,7 @@ QQC2.Dialog {
id: roomListItem
required property var currentRoom
required property string name
required property string displayName
required property int index
required property int notificationCount
required property string subtitleText
@@ -114,7 +114,7 @@ QQC2.Dialog {
root.close();
}
bold: roomListItem.notificationCount > 0
label: roomListItem.name ?? ""
label: roomListItem.displayName ?? ""
labelItem.textFormat: Text.PlainText
subtitle: roomListItem.subtitleText
subtitleItem.textFormat: Text.PlainText
@@ -124,7 +124,7 @@ QQC2.Dialog {
leading: Kirigami.Avatar {
source: roomListItem.avatar ? "image://mxc/" + roomListItem.avatar : ""
name: roomListItem.name || i18n("No Name")
name: roomListItem.displayName
implicitWidth: height
sourceSize.width: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2
sourceSize.height: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2

View File

@@ -20,7 +20,7 @@ QQC2.ItemDelegate {
required property bool categoryVisible
required property string filterText
required property string avatar
required property string name
required property string displayName
topPadding: Kirigami.Units.largeSpacing
leftPadding: Kirigami.Units.largeSpacing
@@ -34,7 +34,7 @@ QQC2.ItemDelegate {
contentItem: Kirigami.Avatar {
source: root.avatar ? `image://mxc/${root.avatar}` : ""
name: root.name || i18n("No Name")
name: root.displayName
sourceSize {
width: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing * 2
@@ -48,6 +48,6 @@ QQC2.ItemDelegate {
Keys.onReturnPressed: RoomManager.enterRoom(root.currentRoom)
QQC2.ToolTip.visible: text.length > 0 && hovered
QQC2.ToolTip.text: root.name ?? ""
QQC2.ToolTip.text: root.displayName ?? ""
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
}

View File

@@ -25,7 +25,7 @@ Kirigami.BasicListItem {
required property string avatar
required property string subtitleText
required property string name
required property string displayName
readonly property bool hasNotifications: notificationCount > 0
@@ -38,7 +38,7 @@ Kirigami.BasicListItem {
icon: undefined
bold: root.hasNotifications
label: root.name ?? ""
label: root.displayName
labelItem.textFormat: Text.PlainText
subtitle: root.subtitleText
@@ -61,7 +61,7 @@ Kirigami.BasicListItem {
leading: Kirigami.Avatar {
source: root.avatar ? `image://mxc/${root.avatar}` : ""
name: root.name || i18n("No Name")
name: root.displayName
implicitWidth: visible ? height : 0
visible: Config.showAvatarInRoomDrawer
sourceSize {

View File

@@ -81,9 +81,9 @@ QQC2.Control {
Layout.fillWidth: true
Layout.preferredHeight: width
display: Kirigami.NavigationTabButton.IconOnly
text: model.name
text: model.displayName
source: model.avatar ? ("image://mxc/" + model.avatar) : ""
name: model.name
name: model.displayName
onClicked: root.selectedSpaceId = model.id
QQC2.ToolTip.visible: hovered
QQC2.ToolTip.text: text