From 38c66d1b7df15a64375890fd1d5e3ae1adf243a4 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 30 Aug 2025 15:28:10 -0400 Subject: [PATCH] Clip commonly seen labels used for display names to prevent Unicode spam Unfortunately a pretty common spam/annoyance online is putting "spam" via abusing Unicode symbols - which is used for multilingual support - in display names. This typically results in an unreadable word jumble in our UI, which looks bad. So I decided to put a stop to that by clipping some labels that could be used for this crap. I didn't cover *everything* yet, but this at least prevents these idiots from showing up in the completion menu, the room member list and as authors for messages. --- src/app/qml/UserDetailDialog.qml | 1 + src/chatbar/CompletionMenu.qml | 1 + src/messagecontent/AuthorComponent.qml | 1 + src/roominfo/RoomInformation.qml | 1 + 4 files changed, 4 insertions(+) diff --git a/src/app/qml/UserDetailDialog.qml b/src/app/qml/UserDetailDialog.qml index bc834400b..89329a7f1 100644 --- a/src/app/qml/UserDetailDialog.qml +++ b/src/app/qml/UserDetailDialog.qml @@ -63,6 +63,7 @@ Kirigami.Dialog { level: 1 Layout.fillWidth: true font.bold: true + clip: true // Intentional to limit insane Unicode in display names elide: Text.ElideRight wrapMode: Text.NoWrap diff --git a/src/chatbar/CompletionMenu.qml b/src/chatbar/CompletionMenu.qml index 3588ee939..d8c4f86b8 100644 --- a/src/chatbar/CompletionMenu.qml +++ b/src/chatbar/CompletionMenu.qml @@ -92,6 +92,7 @@ QQC2.Popup { Delegates.SubtitleContentItem { itemDelegate: completionDelegate labelItem.textFormat: Text.PlainText + labelItem.clip: true // Intentional to limit insane Unicode in display names subtitle: completionDelegate.subtitle ?? "" subtitleItem.textFormat: Text.PlainText } diff --git a/src/messagecontent/AuthorComponent.qml b/src/messagecontent/AuthorComponent.qml index 4021305b3..381d8541c 100644 --- a/src/messagecontent/AuthorComponent.qml +++ b/src/messagecontent/AuthorComponent.qml @@ -49,6 +49,7 @@ RowLayout { textFormat: Text.PlainText font.weight: Font.Bold elide: Text.ElideRight + clip: true // Intentional to limit insane Unicode in display names function openUserMenu(): void { const menu = Qt.createComponent("org.kde.neochat", "UserMenu").createObject(root, { diff --git a/src/roominfo/RoomInformation.qml b/src/roominfo/RoomInformation.qml index c6d1a267b..0ba7e81f8 100644 --- a/src/roominfo/RoomInformation.qml +++ b/src/roominfo/RoomInformation.qml @@ -269,6 +269,7 @@ QQC2.ScrollView { text: userDelegate.name textFormat: Text.PlainText elide: Text.ElideRight + clip: true // Intentional to limit insane Unicode in display names Layout.fillWidth: true }