From 96d24f5c3a3c8adcb1e49f5f546b7b145658e66c Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Fri, 26 Dec 2025 22:17:56 +0100 Subject: [PATCH] Minor fixes to various models --- src/devtools/models/statemodel.h | 2 +- src/libneochat/models/roomlistmodel.cpp | 2 +- src/libneochat/models/roomlistmodel.h | 2 +- src/settings/models/permissionsmodel.cpp | 2 +- src/settings/models/permissionsmodel.h | 2 +- src/timeline/models/mediamessagefiltermodel.cpp | 2 +- src/timeline/models/searchmodel.cpp | 5 ++++- 7 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/devtools/models/statemodel.h b/src/devtools/models/statemodel.h index 49f9ae751..beb838361 100644 --- a/src/devtools/models/statemodel.h +++ b/src/devtools/models/statemodel.h @@ -28,7 +28,7 @@ public: * @brief Defines the model roles. */ enum Roles { - TypeRole = 0, /**< The type of the state event. */ + TypeRole = Qt::UserRole, /**< The type of the state event. */ EventCountRole, /**< Number of events of this type. */ StateKeyRole, /**displayName(); } if (role == EscapedDisplayNameRole) { diff --git a/src/libneochat/models/roomlistmodel.h b/src/libneochat/models/roomlistmodel.h index 5b7317ea0..4c0749f14 100644 --- a/src/libneochat/models/roomlistmodel.h +++ b/src/libneochat/models/roomlistmodel.h @@ -36,7 +36,7 @@ public: * @brief Defines the model roles. */ enum EventRoles { - DisplayNameRole = Qt::DisplayRole, /**< The display name of the room. */ + DisplayNameRole = Qt::UserRole, /**< The display name of the room. */ EscapedDisplayNameRole, /**< HTML-Escaped display name of the room. */ AvatarRole, /**< The source URL for the room's avatar. */ CanonicalAliasRole, /**< The room canonical alias. */ diff --git a/src/settings/models/permissionsmodel.cpp b/src/settings/models/permissionsmodel.cpp index e0944a9a8..4196bdedb 100644 --- a/src/settings/models/permissionsmodel.cpp +++ b/src/settings/models/permissionsmodel.cpp @@ -190,7 +190,7 @@ QVariant PermissionsModel::data(const QModelIndex &index, int role) const } const auto permission = m_permissions.value(index.row()); - if (role == NameRole) { + if (role == NameRole || role == Qt::DisplayRole) { if (permissionNames.keys().contains(permission)) { return permissionNames.value(permission).toString(); } diff --git a/src/settings/models/permissionsmodel.h b/src/settings/models/permissionsmodel.h index 82738cf58..315c41148 100644 --- a/src/settings/models/permissionsmodel.h +++ b/src/settings/models/permissionsmodel.h @@ -29,7 +29,7 @@ public: * @brief Defines the model roles. */ enum Roles { - NameRole = Qt::DisplayRole, /**< The permission name. */ + NameRole = Qt::UserRole, /**< The permission name. */ SubtitleRole, /**< The description of the permission. */ TypeRole, /**< The base type of the permission, normally the event type id except for ban, kick, etc. */ LevelRole, /**< The current power level for the permission. */ diff --git a/src/timeline/models/mediamessagefiltermodel.cpp b/src/timeline/models/mediamessagefiltermodel.cpp index bae64f042..c1652d6d5 100644 --- a/src/timeline/models/mediamessagefiltermodel.cpp +++ b/src/timeline/models/mediamessagefiltermodel.cpp @@ -75,7 +75,7 @@ QVariant MediaMessageFilterModel::data(const QModelIndex &index, int role) const QHash MediaMessageFilterModel::roleNames() const { - auto roles = sourceModel()->roleNames(); + auto roles = sourceModel() ? sourceModel()->roleNames() : QHash(); roles[SourceRole] = "source"; roles[TempSourceRole] = "tempSource"; roles[TypeRole] = "type"; diff --git a/src/timeline/models/searchmodel.cpp b/src/timeline/models/searchmodel.cpp index 19fe408ee..9509451dd 100644 --- a/src/timeline/models/searchmodel.cpp +++ b/src/timeline/models/searchmodel.cpp @@ -23,7 +23,10 @@ void SearchModel::setSearchText(const QString &searchText) void SearchModel::search() { - Q_ASSERT(m_room); + if (!m_room) { + qWarning() << "SearchModel: No room"; + return; + } if (m_job) { m_job->abandon();