From 59fd4d3916a8dfb9d77bfcce6bc534d22ed75209 Mon Sep 17 00:00:00 2001 From: James Graham Date: Thu, 13 Feb 2025 18:45:35 +0000 Subject: [PATCH] Make sure the thread dev setting is actually obeyed --- src/models/messagecontentmodel.cpp | 9 +++++---- src/models/messagemodel.cpp | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/models/messagecontentmodel.cpp b/src/models/messagecontentmodel.cpp index 32c265a65..245924668 100644 --- a/src/models/messagecontentmodel.cpp +++ b/src/models/messagecontentmodel.cpp @@ -498,10 +498,11 @@ QList MessageContentModel::messageContentComponents(bool isEdi } #if Quotient_VERSION_MINOR > 9 || (Quotient_VERSION_MINOR == 9 && Quotient_VERSION_PATCH > 1) - if (roomMessageEvent && (roomMessageEvent->isThreaded() || m_room->threads().contains(roomMessageEvent->id())) + if (NeoChatConfig::self()->threads() && roomMessageEvent && (roomMessageEvent->isThreaded() || m_room->threads().contains(roomMessageEvent->id())) && roomMessageEvent->id() == roomMessageEvent->threadRootEventId()) { #else - if (isThreading && roomMessageEvent && roomMessageEvent->isThreaded() && roomMessageEvent->id() == roomMessageEvent->threadRootEventId()) { + if (NeoChatConfig::self()->threads() && roomMessageEvent && roomMessageEvent->isThreaded() + && roomMessageEvent->id() == roomMessageEvent->threadRootEventId()) { #endif newComponents += MessageComponent{MessageComponentType::Separator, {}, {}}; newComponents += MessageComponent{MessageComponentType::ThreadBody, u"Thread Body"_s, {}}; @@ -530,7 +531,7 @@ void MessageContentModel::updateReplyModel() if (roomMessageEvent == nullptr) { return; } - if (!roomMessageEvent->isReply() || (roomMessageEvent->isThreaded() && NeoChatConfig::self()->threads())) { + if (!roomMessageEvent->isReply(!NeoChatConfig::self()->threads()) || (roomMessageEvent->isThreaded() && NeoChatConfig::self()->threads())) { if (m_replyModel) { delete m_replyModel; } @@ -541,7 +542,7 @@ void MessageContentModel::updateReplyModel() return; } - m_replyModel = new MessageContentModel(m_room, roomMessageEvent->replyEventId(), true, false, this); + m_replyModel = new MessageContentModel(m_room, roomMessageEvent->replyEventId(!NeoChatConfig::self()->threads()), true, false, this); connect(m_replyModel, &MessageContentModel::eventUpdated, this, [this]() { Q_EMIT dataChanged(index(0), index(0), {ReplyAuthorRole}); diff --git a/src/models/messagemodel.cpp b/src/models/messagemodel.cpp index afd968a4e..d8fa615b9 100644 --- a/src/models/messagemodel.cpp +++ b/src/models/messagemodel.cpp @@ -121,7 +121,7 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const if (role == ContentModelRole) { auto roomMessageEvent = eventCast(&event.value().get()); - if (roomMessageEvent && roomMessageEvent->isThreaded()) { + if (NeoChatConfig::self()->threads() && roomMessageEvent && roomMessageEvent->isThreaded()) { return QVariant::fromValue(m_room->contentModelForEvent(roomMessageEvent->threadRootEventId())); } return QVariant::fromValue(m_room->contentModelForEvent(&event->get())); @@ -216,6 +216,9 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const } if (role == IsThreadedRole) { + if (!NeoChatConfig::self()->threads()) { + return false; + } if (auto roomMessageEvent = eventCast(&event.value().get())) { return roomMessageEvent->isThreaded(); }