@@ -66,6 +66,7 @@ QHash<int, QByteArray> MessageEventModel::roleNames() const
|
|||||||
roles[AuthorDisplayNameRole] = "authorDisplayName";
|
roles[AuthorDisplayNameRole] = "authorDisplayName";
|
||||||
roles[IsNameChangeRole] = "isNameChange";
|
roles[IsNameChangeRole] = "isNameChange";
|
||||||
roles[IsAvatarChangeRole] = "isAvatarChange";
|
roles[IsAvatarChangeRole] = "isAvatarChange";
|
||||||
|
roles[IsRedactedRole] = "isRedacted";
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -894,6 +895,9 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (role == IsRedactedRole) {
|
||||||
|
return evt.isRedacted();
|
||||||
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ public:
|
|||||||
AuthorDisplayNameRole,
|
AuthorDisplayNameRole,
|
||||||
IsNameChangeRole,
|
IsNameChangeRole,
|
||||||
IsAvatarChangeRole,
|
IsAvatarChangeRole,
|
||||||
|
IsRedactedRole,
|
||||||
LastRole, // Keep this last
|
LastRole, // Keep this last
|
||||||
};
|
};
|
||||||
Q_ENUM(EventRoles)
|
Q_ENUM(EventRoles)
|
||||||
|
|||||||
@@ -25,6 +25,10 @@ MessageFilterModel::MessageFilterModel(QObject *parent)
|
|||||||
beginResetModel();
|
beginResetModel();
|
||||||
endResetModel();
|
endResetModel();
|
||||||
});
|
});
|
||||||
|
connect(NeoChatConfig::self(), &NeoChatConfig::ShowDeletedMessagesChanged, this, [this] {
|
||||||
|
beginResetModel();
|
||||||
|
endResetModel();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MessageFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
|
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()) {
|
if (index.data(MessageEventModel::IsAvatarChangeRole).toBool() && !NeoChatConfig::self()->showAvatarUpdate()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (index.data(MessageEventModel::IsRedactedRole).toBool() && !NeoChatConfig::self()->showDeletedMessages()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (specialMarks == EventStatus::Hidden || specialMarks == EventStatus::Replaced) {
|
if (specialMarks == EventStatus::Hidden || specialMarks == EventStatus::Replaced) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -83,6 +83,10 @@
|
|||||||
<label>Show avatar update events in the timeline</label>
|
<label>Show avatar update events in the timeline</label>
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry name="ShowDeletedMessages" type="bool">
|
||||||
|
<label>Show deleted messages in the timeline</label>
|
||||||
|
<default>true</default>
|
||||||
|
</entry>
|
||||||
<entry name="ShowLinkPreview" type="bool">
|
<entry name="ShowLinkPreview" type="bool">
|
||||||
<label>Show preview of the links in the chat messages</label>
|
<label>Show preview of the links in the chat messages</label>
|
||||||
</entry>
|
</entry>
|
||||||
|
|||||||
@@ -113,6 +113,19 @@ Kirigami.ScrollablePage {
|
|||||||
Config.save()
|
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()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user