[network/ruqola] src/widgets: Don't show decrypted message as system message
Laurent Montel <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit ad755f57bdc516e7ed5f54a4024af72003f55a24 by Laurent Montel.
Committed on 06/08/2026 at 11:29.
Pushed by mlaurent into branch 'master'.
Don't show decrypted message as system message
M +3 -2 src/widgets/delegateutils/messagedelegateutils.cpp
M +3 -3 src/widgets/room/delegate/messagelistdelegate.cpp
M +4 -2 src/widgets/room/messagelistview.cpp
https://invent.kde.org/network/ruqola/-/commit/ad755f57bdc516e7ed5f54a4024af72003f55a24
diff --git a/src/widgets/delegateutils/messagedelegateutils.cpp b/src/widgets/delegateutils/messagedelegateutils.cpp
index e851f35127..fe0d213d83 100644
--- a/src/widgets/delegateutils/messagedelegateutils.cpp
+++ b/src/widgets/delegateutils/messagedelegateutils.cpp
@@ -68,12 +68,13 @@ void MessageDelegateUtils::generateToolTip(const QString &toolTip, const QString
bool MessageDelegateUtils::useItalicsForMessage(const QModelIndex &index)
{
+ const Message *message = index.data(MessagesModel::MessagePointer).value<Message *>();
const auto messageType = index.data(MessagesModel::MessageType).value<Message::MessageType>();
const bool isSystemMessage = messageType == Message::System
&& index.data(MessagesModel::SystemMessageType).value<SystemMessageTypeUtil::SystemMessageType>()
!= SystemMessageTypeUtil::SystemMessageType::JitsiCallStarted;
- const bool isEncrypted = messageType == Message::EncryptedText;
- return isEncrypted || isSystemMessage || index.data(MessagesModel::PrivateMessage).toBool();
+ const bool isEncrypted = messageType == Message::EncryptedText && !message->hasDescriptedContent();
+ return isEncrypted || isSystemMessage || message->privateMessage();
}
bool MessageDelegateUtils::pendingMessage(const QModelIndex &index)
diff --git a/src/widgets/room/delegate/messagelistdelegate.cpp b/src/widgets/room/delegate/messagelistdelegate.cpp
index e7eec491cf..b9d9dee75f 100644
--- a/src/widgets/room/delegate/messagelistdelegate.cpp
+++ b/src/widgets/room/delegate/messagelistdelegate.cpp
@@ -797,9 +797,9 @@ QSize MessageListDelegate::sizeHint(const QStyleOptionViewItem &option, const QM
bool MessageListDelegate::isSystemMessage(const Message *message) const
{
const Message::MessageType messageType = message->messageType();
- const bool isSystemMessage = (messageType == Message::EncryptedText) || (messageType == Message::System)
- || (messageType == Message::Information) /* || (messageType == Message::VideoConference)*/;
- return isSystemMessage || message->privateMessage();
+ const bool isSystemMessage = (messageType == Message::System) || (messageType == Message::Information) /* || (messageType == Message::VideoConference)*/;
+ const bool isEncrypted = messageType == Message::EncryptedText && !message->hasDescriptedContent();
+ return isEncrypted || isSystemMessage || message->privateMessage();
}
bool MessageListDelegate::mouseEvent(QEvent *event, const QStyleOptionViewItem &option, const QModelIndex &index)
diff --git a/src/widgets/room/messagelistview.cpp b/src/widgets/room/messagelistview.cpp
index 60794a7232..075057e7a3 100644
--- a/src/widgets/room/messagelistview.cpp
+++ b/src/widgets/room/messagelistview.cpp
@@ -401,8 +401,11 @@ void MessageListView::contextMenuEvent(QContextMenuEvent *event)
if (mMessageListDelegate->contextMenu(options, index, info)) {
return;
}
+ const Message *message = index.data(MessagesModel::MessagePointer).value<Message *>();
+
const auto messageType = index.data(MessagesModel::MessageType).value<Message::MessageType>();
- const bool isSystemMessage = (messageType == Message::EncryptedText) || (messageType == Message::System) || (messageType == Message::Information);
+ const bool isSystemMessage = (messageType == Message::EncryptedText && !message->hasDescriptedContent()) || (messageType == Message::System)
+ || (messageType == Message::Information);
QMenu menu(this);
if (isSystemMessage) {
if (Ruqola::self()->debug()) {
@@ -498,7 +501,6 @@ void MessageListView::contextMenuEvent(QContextMenuEvent *event)
slotForwardMessage(index);
});
- const Message *message = index.data(MessagesModel::MessagePointer).value<Message *>();
if (!message || !mCurrentRocketChatAccount) {
return;
}