diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index 75819532bfb9fcc8256f6bda42e427d8efba80fe..e3a1a7819126440597b7a98a756ef3506bb0b2d2 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -511,20 +511,12 @@ isMessage(const mtx::events::EncryptedEvent<T> &) void TimelineModel::updateLastMessage() -{ - // Get the user setting to show decrypted messages in side bar - bool decrypt = QSettings().value("user/decrypt_sidebar", true).toBool(); - updateLastMessage(decrypt); -} - -void -TimelineModel::updateLastMessage(bool decrypt) { for (auto it = eventOrder.begin(); it != eventOrder.end(); ++it) { auto event = events.value(*it); if (auto e = std::get_if<mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>>( &event)) { - if (decrypt) { + if (decryptDescription) { event = decryptEvent(*e).event; } } diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h index 135b31ffc75e97a59c0a18ac2e2cb6a2c486f9c9..ae468c09e8d13272167d59c19f47b06400e09aeb 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h @@ -189,7 +189,7 @@ public: Q_INVOKABLE void cacheMedia(QString eventId); Q_INVOKABLE bool saveMedia(QString eventId) const; - void updateLastMessage(bool); + void updateLastMessage(); void addEvents(const mtx::responses::Timeline &events); template<class T> void sendMessage(const T &msg); @@ -224,6 +224,7 @@ public slots: emit replyChanged(reply_); } } + void setDecryptDescription(bool decrypt) { decryptDescription = decrypt; } private slots: // Add old events at the top of the timeline. @@ -259,7 +260,6 @@ private: const mtx::responses::ClaimKeys &res, mtx::http::RequestErr err); void readEvent(const std::string &id); - void updateLastMessage(); QHash<QString, mtx::events::collections::TimelineEvents> events; QSet<QString> read; @@ -271,6 +271,7 @@ private: bool isInitialSync = true; bool paginationInProgress = false; + bool decryptDescription = true; QString currentId; QString reply_; diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index 3c870e36349ac59f056578d6b9ffdeb38f171512..b9565be87b0ac995c5860ba47aa9d40e588fe13c 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -25,7 +25,8 @@ TimelineViewManager::updateEncryptedDescriptions() auto ptr = i.value(); if (!ptr.isNull()) { - ptr->updateLastMessage(decrypt); + ptr->setDecryptDescription(decrypt); + ptr->updateLastMessage(); } } } @@ -132,6 +133,8 @@ TimelineViewManager::addRoom(const QString &room_id) { if (!models.contains(room_id)) { QSharedPointer<TimelineModel> newRoom(new TimelineModel(this, room_id)); + newRoom->setDecryptDescription(settings->isDecryptSidebarEnabled()); + connect(newRoom.data(), &TimelineModel::newEncryptedImage, imgProvider,