diff --git a/src/messageeventmodel.cpp b/src/messageeventmodel.cpp index ff7a49d86..23dfaf7d7 100644 --- a/src/messageeventmodel.cpp +++ b/src/messageeventmodel.cpp @@ -66,6 +66,7 @@ QHash MessageEventModel::roleNames() const roles[AuthorDisplayNameRole] = "authorDisplayName"; roles[IsNameChangeRole] = "isNameChange"; roles[IsAvatarChangeRole] = "isAvatarChange"; + roles[IsRedactedRole] = "isRedacted"; return roles; } @@ -894,6 +895,9 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const } return false; } + if (role == IsRedactedRole) { + return evt.isRedacted(); + } return {}; } diff --git a/src/messageeventmodel.h b/src/messageeventmodel.h index 017ad171c..1c1a60dd2 100644 --- a/src/messageeventmodel.h +++ b/src/messageeventmodel.h @@ -71,6 +71,7 @@ public: AuthorDisplayNameRole, IsNameChangeRole, IsAvatarChangeRole, + IsRedactedRole, LastRole, // Keep this last }; Q_ENUM(EventRoles) diff --git a/src/messagefiltermodel.cpp b/src/messagefiltermodel.cpp index 09fa13f61..6a6f7f3e6 100644 --- a/src/messagefiltermodel.cpp +++ b/src/messagefiltermodel.cpp @@ -25,6 +25,10 @@ MessageFilterModel::MessageFilterModel(QObject *parent) beginResetModel(); endResetModel(); }); + connect(NeoChatConfig::self(), &NeoChatConfig::ShowDeletedMessagesChanged, this, [this] { + beginResetModel(); + endResetModel(); + }); } bool MessageFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const @@ -39,6 +43,9 @@ bool MessageFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sour if (index.data(MessageEventModel::IsAvatarChangeRole).toBool() && !NeoChatConfig::self()->showAvatarUpdate()) { return false; } + if (index.data(MessageEventModel::IsRedactedRole).toBool() && !NeoChatConfig::self()->showDeletedMessages()) { + return false; + } if (specialMarks == EventStatus::Hidden || specialMarks == EventStatus::Replaced) { return false; diff --git a/src/neochatconfig.kcfg b/src/neochatconfig.kcfg index 26e768635..1d6db884a 100644 --- a/src/neochatconfig.kcfg +++ b/src/neochatconfig.kcfg @@ -83,6 +83,10 @@ true + + + true + diff --git a/src/qml/Settings/GeneralSettingsPage.qml b/src/qml/Settings/GeneralSettingsPage.qml index c374a4ef9..bc3267090 100644 --- a/src/qml/Settings/GeneralSettingsPage.qml +++ b/src/qml/Settings/GeneralSettingsPage.qml @@ -113,6 +113,19 @@ Kirigami.ScrollablePage { Config.save() } } + + MobileForm.FormDelegateSeparator { above: showAvatarChangeDelegate; below: showDeletedMessages } + + MobileForm.FormCheckDelegate { + id: showDeletedMessages + text: i18n("Show deleted messages") + checked: Config.showDeletedMessages + enabled: !Config.isShowDeletedMessagesImmutable + onToggled: { + Config.showDeletedMessages = checked + Config.save() + } + } } }