From ddf61812718f34ced612af3ac72a57c523c26f41 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 5 May 2025 13:29:59 +0200 Subject: [PATCH] ai chat: make messages copyable --- .../modules/overview/OverviewWindow.qml | 2 +- .../modules/sidebarLeft/aiChat/AiMessage.qml | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.config/quickshell/modules/overview/OverviewWindow.qml b/.config/quickshell/modules/overview/OverviewWindow.qml index 935960ad0..e659d4ec1 100644 --- a/.config/quickshell/modules/overview/OverviewWindow.qml +++ b/.config/quickshell/modules/overview/OverviewWindow.qml @@ -1,7 +1,7 @@ -import "root:/modules/common/functions/icons.js" as Icons import "root:/services/" import "root:/modules/common" import "root:/modules/common/widgets" +import "root:/modules/common/functions/icons.js" as Icons import Qt5Compat.GraphicalEffects import QtQuick import QtQuick.Layouts diff --git a/.config/quickshell/modules/sidebarLeft/aiChat/AiMessage.qml b/.config/quickshell/modules/sidebarLeft/aiChat/AiMessage.qml index cfba5c426..b3352877d 100644 --- a/.config/quickshell/modules/sidebarLeft/aiChat/AiMessage.qml +++ b/.config/quickshell/modules/sidebarLeft/aiChat/AiMessage.qml @@ -123,17 +123,30 @@ Rectangle { } } - StyledText { // Message + TextEdit { // Message id: messageText Layout.fillWidth: true Layout.margins: messagePadding + readOnly: true + selectByMouse: true font.family: Appearance.font.family.reading + font.hintingPreference: Font.PreferNoHinting // Prevent weird bold text font.pixelSize: Appearance.font.pixelSize.small wrapMode: Text.WordWrap color: messageData.thinking ? Appearance.colors.colSubtext : Appearance.colors.colOnLayer1 textFormat: Text.MarkdownText text: messageData.thinking ? qsTr("Waiting for response...") : root.messageData.content + + Keys.onPressed: (event) => { + if (event.key === Qt.Key_Control) { // Prevent de-select + event.accepted = true + } + if ((event.key === Qt.Key_C) && event.modifiers == Qt.ControlModifier) { + messageText.copy() + event.accepted = true + } + } onLinkActivated: (link) => { Qt.openUrlExternally(link)