From c34c9f90352549919f9f7c1d247681efea0b6637 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Fri, 30 Sep 2022 03:43:42 +0200 Subject: [PATCH] Automatically switch to threading when replying --- src/timeline/TimelineModel.cpp | 13 +++++++++++++ src/timeline/TimelineModel.h | 11 +---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index 01856a4d..3680c5f9 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -2684,6 +2684,19 @@ TimelineModel::resetThread() emit threadChanged(thread_); } } +void +TimelineModel::setReply(const QString &newReply) +{ + if (reply_ != newReply) { + reply_ = newReply; + + if (auto ev = events.get(reply_.toStdString(), "", false, true)) + setThread(QString::fromStdString( + mtx::accessors::relations(*ev).thread().value_or(thread_.toStdString()))); + + emit replyChanged(reply_); + } +} void TimelineModel::setEdit(const QString &newEdit) diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h index 43ea0b24..54a1cb3f 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h @@ -363,16 +363,7 @@ public slots: std::vector typingUsers() const { return typingUsers_; } bool paginationInProgress() const { return m_paginationInProgress; } QString reply() const { return reply_; } - void setReply(const QString &newReply) - { - if (edit_.startsWith('m')) - return; - - if (reply_ != newReply) { - reply_ = newReply; - emit replyChanged(reply_); - } - } + void setReply(const QString &newReply); void resetReply() { if (!reply_.isEmpty()) {