feat: add setting for character limit of truncated deleted messages (#6491)

This commit is contained in:
Jacob Alexander Thompson
2025-09-28 03:04:08 -07:00
committed by GitHub
parent a7de887ee0
commit 1d06086bb9
5 changed files with 31 additions and 5 deletions
+1
View File
@@ -3,6 +3,7 @@
## Unversioned
- Minor: Fixed usercard resizing improperly without recent messages. (#6496)
- Minor: Added setting for character limit of deleted messages. (#6491)
- Dev: Update release documentation. (#6498)
- Dev: Make code sanitizers opt in with the `CHATTERINO_SANITIZER_SUPPORT` CMake option. After that's enabled, use the `SANITIZE_*` flag to enable individual sanitizers. (#6493)
- Dev: Remove unused QTextCodec includes. (#6487)
+3 -2
View File
@@ -1257,9 +1257,10 @@ MessagePtr MessageBuilder::makeDeletionMessageFromIRC(
MessageColor::System);
auto deletedMessageText = originalMessage->messageText;
if (deletedMessageText.length() > 50)
auto limit = getSettings()->deletedMessageLengthLimit.getValue();
if (limit > 0 && deletedMessageText.length() > limit)
{
deletedMessageText = deletedMessageText.left(50) + "";
deletedMessageText = deletedMessageText.left(limit) + "";
}
builder
@@ -331,14 +331,15 @@ void makeModerateMessage(
builder.emplaceSystemTextAndUpdate("saying:", text);
if (action.messageBody.view().length() > 50)
auto limit = getSettings()->deletedMessageLengthLimit.getValue();
if (limit > 0 && action.messageBody.view().length() > limit)
{
builder
.emplace<TextElement>(action.messageBody.qt().left(50) + "",
.emplace<TextElement>(action.messageBody.qt().left(limit) + "",
MessageElementFlag::Text, MessageColor::Text)
->setLink({Link::JumpToMessage, action.messageID.qt()});
text.append(action.messageBody.qt().left(50) + "");
text.append(action.messageBody.qt().left(limit) + "");
}
else
{
+7
View File
@@ -320,6 +320,13 @@ public:
true,
};
/// The maximum length the contents of a deleted message can be
/// before we truncate it in the chat
IntSetting deletedMessageLengthLimit = {
"/behaviour/deletedMessageLengthLimit",
50,
};
// Auto-completion
BoolSetting onlyFetchChattersForSmallerStreamers = {
"/behaviour/autocompletion/onlyFetchChattersForSmallerStreamers", true};
+16
View File
@@ -556,6 +556,22 @@ void GeneralPage::initLayout(GeneralPageView &layout)
[](auto args) {
return fuzzyToInt(args.value, 0);
});
layout.addDropdown<int>(
"Limit length of deleted messages",
{"No limit", "50 characters", "100 characters", "200 characters",
"300 characters", "400 characters"},
s.deletedMessageLengthLimit,
[](auto val) {
return val ? QString::number(val) + " characters"
: QString("No limit");
},
[](const auto &args) {
return fuzzyToInt(args.value, 0);
},
true,
{"Limits the amount of characters displayed in deleted messages "
"when announced via system message."});
layout.addSeparator();
SettingWidget::checkbox("Draw a line below the most recent message before "