Make sure the thread dev setting is actually obeyed
This commit is contained in:
@@ -498,10 +498,11 @@ QList<MessageComponent> MessageContentModel::messageContentComponents(bool isEdi
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if Quotient_VERSION_MINOR > 9 || (Quotient_VERSION_MINOR == 9 && Quotient_VERSION_PATCH > 1)
|
#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()) {
|
&& roomMessageEvent->id() == roomMessageEvent->threadRootEventId()) {
|
||||||
#else
|
#else
|
||||||
if (isThreading && roomMessageEvent && roomMessageEvent->isThreaded() && roomMessageEvent->id() == roomMessageEvent->threadRootEventId()) {
|
if (NeoChatConfig::self()->threads() && roomMessageEvent && roomMessageEvent->isThreaded()
|
||||||
|
&& roomMessageEvent->id() == roomMessageEvent->threadRootEventId()) {
|
||||||
#endif
|
#endif
|
||||||
newComponents += MessageComponent{MessageComponentType::Separator, {}, {}};
|
newComponents += MessageComponent{MessageComponentType::Separator, {}, {}};
|
||||||
newComponents += MessageComponent{MessageComponentType::ThreadBody, u"Thread Body"_s, {}};
|
newComponents += MessageComponent{MessageComponentType::ThreadBody, u"Thread Body"_s, {}};
|
||||||
@@ -530,7 +531,7 @@ void MessageContentModel::updateReplyModel()
|
|||||||
if (roomMessageEvent == nullptr) {
|
if (roomMessageEvent == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!roomMessageEvent->isReply() || (roomMessageEvent->isThreaded() && NeoChatConfig::self()->threads())) {
|
if (!roomMessageEvent->isReply(!NeoChatConfig::self()->threads()) || (roomMessageEvent->isThreaded() && NeoChatConfig::self()->threads())) {
|
||||||
if (m_replyModel) {
|
if (m_replyModel) {
|
||||||
delete m_replyModel;
|
delete m_replyModel;
|
||||||
}
|
}
|
||||||
@@ -541,7 +542,7 @@ void MessageContentModel::updateReplyModel()
|
|||||||
return;
|
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]() {
|
connect(m_replyModel, &MessageContentModel::eventUpdated, this, [this]() {
|
||||||
Q_EMIT dataChanged(index(0), index(0), {ReplyAuthorRole});
|
Q_EMIT dataChanged(index(0), index(0), {ReplyAuthorRole});
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const
|
|||||||
|
|
||||||
if (role == ContentModelRole) {
|
if (role == ContentModelRole) {
|
||||||
auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get());
|
auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get());
|
||||||
if (roomMessageEvent && roomMessageEvent->isThreaded()) {
|
if (NeoChatConfig::self()->threads() && roomMessageEvent && roomMessageEvent->isThreaded()) {
|
||||||
return QVariant::fromValue<MessageContentModel *>(m_room->contentModelForEvent(roomMessageEvent->threadRootEventId()));
|
return QVariant::fromValue<MessageContentModel *>(m_room->contentModelForEvent(roomMessageEvent->threadRootEventId()));
|
||||||
}
|
}
|
||||||
return QVariant::fromValue<MessageContentModel *>(m_room->contentModelForEvent(&event->get()));
|
return QVariant::fromValue<MessageContentModel *>(m_room->contentModelForEvent(&event->get()));
|
||||||
@@ -216,6 +216,9 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (role == IsThreadedRole) {
|
if (role == IsThreadedRole) {
|
||||||
|
if (!NeoChatConfig::self()->threads()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get())) {
|
if (auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get())) {
|
||||||
return roomMessageEvent->isThreaded();
|
return roomMessageEvent->isThreaded();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user