From 1d532a1fc17afcf64fdf69d018bca550dd680d2c Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 11 Jan 2025 18:05:21 -0500 Subject: [PATCH] Move showAuthor role to MessageModel, so it's available for all models This fixes features like the search model, where no message delegates could be created because it's missing showAuthor. --- src/models/messagefiltermodel.cpp | 3 +-- src/models/messagefiltermodel.h | 1 - src/models/messagemodel.cpp | 5 +++++ src/models/messagemodel.h | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/models/messagefiltermodel.cpp b/src/models/messagefiltermodel.cpp index 75bb5fbec..ecc6b86f1 100644 --- a/src/models/messagefiltermodel.cpp +++ b/src/models/messagefiltermodel.cpp @@ -92,7 +92,7 @@ QVariant MessageFilterModel::data(const QModelIndex &index, int role) const return authorList(mapToSource(index).row()); } else if (role == ExcessAuthorsRole) { return excessAuthors(mapToSource(index).row()); - } else if (role == ShowAuthorRole) { + } else if (role == MessageModel::ShowAuthorRole) { return showAuthor(index); } return QSortFilterProxyModel::data(index, role); @@ -105,7 +105,6 @@ QHash MessageFilterModel::roleNames() const roles[StateEventsRole] = "stateEvents"; roles[AuthorListRole] = "authorList"; roles[ExcessAuthorsRole] = "excessAuthors"; - roles[ShowAuthorRole] = "showAuthor"; return roles; } diff --git a/src/models/messagefiltermodel.h b/src/models/messagefiltermodel.h index 0b9ec6112..de8fcdb5d 100644 --- a/src/models/messagefiltermodel.h +++ b/src/models/messagefiltermodel.h @@ -34,7 +34,6 @@ public: StateEventsRole, /**< List of state events in the aggregated state. */ AuthorListRole, /**< List of the first 5 unique authors of the aggregated state event. */ ExcessAuthorsRole, /**< The number of unique authors beyond the first 5. */ - ShowAuthorRole, /**< Whether the author of a message should be shown. */ LastRole, // Keep this last }; diff --git a/src/models/messagemodel.cpp b/src/models/messagemodel.cpp index 1a1db98bc..5295f83e0 100644 --- a/src/models/messagemodel.cpp +++ b/src/models/messagemodel.cpp @@ -300,6 +300,10 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const && event.value().get().senderId() == m_room->localMember().id(); } + if (role == ShowAuthorRole) { + return true; + } + return {}; } @@ -329,6 +333,7 @@ QHash MessageModel::roleNames() const roles[ContentModelRole] = "contentModel"; roles[MediaInfoRole] = "mediaInfo"; roles[IsEditableRole] = "isEditable"; + roles[ShowAuthorRole] = "showAuthor"; return roles; } diff --git a/src/models/messagemodel.h b/src/models/messagemodel.h index de41b715c..fb914e1d9 100644 --- a/src/models/messagemodel.h +++ b/src/models/messagemodel.h @@ -84,6 +84,7 @@ public: IsRedactedRole, /**< Whether an event has been deleted. */ IsPendingRole, /**< Whether an event is waiting to be accepted by the server. */ IsEditableRole, /**< Whether the event can be edited by the user. */ + ShowAuthorRole, /**< Whether the author of a message should be shown. */ LastRole, // Keep this last }; Q_ENUM(EventRoles)