[network/ruqola] src/core: Minor optimization

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 8ba5f47bf3e6d97c29ffe2c610d9d3d60d6e54a2 by Laurent Montel.
Committed on 06/08/2026 at 06:40.
Pushed by mlaurent into branch 'master'.

Minor optimization

M  +17   -0    src/core/messages/messageencrypted.cpp
M  +4    -0    src/core/messages/messageencrypted.h
M  +4    -9    src/core/model/messagesmodel.cpp

https://invent.kde.org/network/ruqola/-/commit/8ba5f47bf3e6d97c29ffe2c610d9d3d60d6e54a2

diff --git a/src/core/messages/messageencrypted.cpp b/src/core/messages/messageencrypted.cpp
index 7b7d0ebe72..ad6d99a41d 100644
--- a/src/core/messages/messageencrypted.cpp
+++ b/src/core/messages/messageencrypted.cpp
@@ -81,6 +81,7 @@ void MessageEncrypted::setIv(const QByteArray &newIv)
 void MessageEncrypted::decryptContent(const QByteArray &sessionKey) const
 {
     mDecryptedContent = decrypt(sessionKey);
+    parseDecryptedContent();
 }
 
 QByteArray MessageEncrypted::decryptedContent() const
@@ -88,6 +89,22 @@ QByteArray MessageEncrypted::decryptedContent() const
     return mDecryptedContent;
 }
 
+void MessageEncrypted::parseDecryptedContent() const
+{
+    if (!mDecryptedContent.isEmpty()) {
+        const QJsonDocument doc = QJsonDocument::fromJson(mDecryptedContent);
+        const QJsonObject obj = doc.object();
+        if (obj.contains("msg"_L1)) {
+            mDescriptedText = obj["msg"_L1].toString();
+        }
+    }
+}
+
+QString MessageEncrypted::descriptedText() const
+{
+    return mDescriptedText;
+}
+
 QByteArray MessageEncrypted::decrypt([[maybe_unused]] const QByteArray &sessionKey) const
 {
 #if USE_E2E_SUPPORT
diff --git a/src/core/messages/messageencrypted.h b/src/core/messages/messageencrypted.h
index f600dc1f79..a7bfb48fc3 100644
--- a/src/core/messages/messageencrypted.h
+++ b/src/core/messages/messageencrypted.h
@@ -44,11 +44,15 @@ public:
     void decryptContent(const QByteArray &sessionKey) const;
     [[nodiscard]] QByteArray decryptedContent() const;
 
+    [[nodiscard]] QString descriptedText() const;
+
 private:
+    LIBRUQOLACORE_NO_EXPORT void parseDecryptedContent() const;
     QByteArray mAlgorithm;
     QByteArray mKeyId;
     QString mCiphertext; // TODO QByteArray ?
     QByteArray mIv;
     mutable QByteArray mDecryptedContent;
+    mutable QString mDescriptedText;
 };
 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const MessageEncrypted &t);
diff --git a/src/core/model/messagesmodel.cpp b/src/core/model/messagesmodel.cpp
index 984674056c..e91b6624c3 100644
--- a/src/core/model/messagesmodel.cpp
+++ b/src/core/model/messagesmodel.cpp
@@ -452,15 +452,10 @@ QString MessagesModel::convertedText(const Message &message, const QString &sear
     if (message.messageType() == Message::System) {
         return message.systemMessageText();
     } else if (message.messageType() == Message::EncryptedText) {
-        // TODO move in messageEncrypted
-        const QByteArray content = message.messageEncrypted()->decryptedContent();
-        qDebug() << " content " << content;
-        if (!content.isEmpty()) {
-            const QJsonDocument doc = QJsonDocument::fromJson(content);
-            const QJsonObject obj = doc.object();
-            if (obj.contains("msg"_L1)) {
-                return obj["msg"_L1].toString();
-            }
+        const QString text = message.messageEncrypted()->descriptedText();
+        qDebug() << " text " << text;
+        if (!text.isEmpty()) {
+            return text;
         }
         return message.systemMessageText();
     } else {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.