[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 {