From 388315c0713303a8d319d6774f39434b05dec9bb Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Wed, 29 Jul 2026 13:25:13 +0200 Subject: [PATCH] Kopieren --- BeWo/Styles/Designs/GeometryCollection.xaml | 1 + BeWo/Styles/Features/AIChatStyles.xaml | 44 ++++++++++++------- BeWo/ViewModel/VMFactory.cs | 2 + .../View/AI/AiConversationChatViewModel.cs | 27 ++++++++++++ 4 files changed, 59 insertions(+), 15 deletions(-) diff --git a/BeWo/Styles/Designs/GeometryCollection.xaml b/BeWo/Styles/Designs/GeometryCollection.xaml index 456f4d1ae..2fec479ad 100644 --- a/BeWo/Styles/Designs/GeometryCollection.xaml +++ b/BeWo/Styles/Designs/GeometryCollection.xaml @@ -9,4 +9,5 @@ M219.31,72,184,36.69A15.86,15.86,0,0,0,172.69,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V83.31A15.86,15.86,0,0,0,219.31,72ZM168,208H88V152h80Zm40,0H184V152a16,16,0,0,0-16-16H88a16,16,0,0,0-16,16v56H48V48H172.69L208,83.31ZM160,72a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h56A8,8,0,0,1,160,72Z M208,160H48a16,16,0,0,0-16,16v24a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V176A16,16,0,0,0,208,160Zm0,40H48V176H208v24Zm0-112H48a16,16,0,0,0-16,16v24a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V104A16,16,0,0,0,208,88Zm0,40H48V104H208v24ZM96,40a8,8,0,0,1,8-8h16V16a8,8,0,0,1,16,0V32h16a8,8,0,0,1,0,16H136V64a8,8,0,0,1-16,0V48H104A8,8,0,0,1,96,40Z M224,48V152a16,16,0,0,1-16,16H99.31l10.35,10.34a8,8,0,0,1-11.32,11.32l-24-24a8,8,0,0,1,0-11.32l24-24a8,8,0,0,1,11.32,11.32L99.31,152H208V48H96v8a8,8,0,0,1-16,0V48A16,16,0,0,1,96,32H208A16,16,0,0,1,224,48ZM168,192a8,8,0,0,0-8,8v8H48V104H156.69l-10.35,10.34a8,8,0,0,0,11.32,11.32l24-24a8,8,0,0,0,0-11.32l-24-24a8,8,0,0,0-11.32,11.32L156.69,88H48a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16H160a16,16,0,0,0,16-16v-8A8,8,0,0,0,168,192Z + M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z \ No newline at end of file diff --git a/BeWo/Styles/Features/AIChatStyles.xaml b/BeWo/Styles/Features/AIChatStyles.xaml index 5c8211e67..7e1984275 100644 --- a/BeWo/Styles/Features/AIChatStyles.xaml +++ b/BeWo/Styles/Features/AIChatStyles.xaml @@ -351,8 +351,8 @@ Style="{StaticResource AssistentCommandButtonStyle}" ToolTip="{Binding Name}"> @@ -503,21 +503,35 @@ - + HorizontalAlignment="Right" Orientation="Horizontal"> + + + diff --git a/BeWo/ViewModel/VMFactory.cs b/BeWo/ViewModel/VMFactory.cs index 4509e3c28..c5f832961 100644 --- a/BeWo/ViewModel/VMFactory.cs +++ b/BeWo/ViewModel/VMFactory.cs @@ -918,6 +918,8 @@ namespace BeWo.ViewModel vm.ViewContext = view_context; vm.CanSendNewMessage = canSendNewMessage; + vm.ImportAssistentCommandCopy(); + if (assistentCommands is object) { foreach (var command in assistentCommands) diff --git a/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs b/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs index d8e1ba8af..6451b35de 100644 --- a/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs +++ b/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs @@ -19,6 +19,7 @@ using static DevExpress.Utils.Drawing.Helpers.NativeMethods; using System.Security.Cryptography; using BeWo.ViewModel.Controls.AI; using DevExpress.Charts.Native; +using System.Windows.Media; namespace BeWo.ViewModel.View.AI { @@ -58,6 +59,8 @@ namespace BeWo.ViewModel.View.AI AcceptSavePromptCommand = new DelegateCommand(AcceptSavePrompt, () => !string.IsNullOrWhiteSpace(SavePromptVM?.Title)); CancelSavePromptCommand = new DelegateCommand(CancelSavePrompt); + CopyPromptCommand = new DelegateCommand(CopyPrompt); + ListVM = new AiConversationListVM(); ListVM.SelectedVMChanged += (s, e) => FirePropertyChanged(nameof(IsNewConversationVisible)); @@ -83,6 +86,8 @@ namespace BeWo.ViewModel.View.AI public ICommand AcceptSavePromptCommand { get; set; } public ICommand CancelSavePromptCommand { get; set; } + public ICommand CopyPromptCommand { get; set; } + public AiActionType ActionType { get; set; } public AiViewContextDC ViewContext { get; set; } @@ -479,6 +484,28 @@ namespace BeWo.ViewModel.View.AI SavePromptVM = null; } + public void CopyPrompt(AiConversationMessageVM message) + { + Clipboard.SetText(message.Message); + } + + public void ImportAssistentCommandCopy() + { + var new_command = new DelegateCommand(x => + { + CopyPromptCommand.Execute(x); + }); + + var imported_menu_item = new AiMenuItemTemplate() + { + Command = new_command, + Icon = Application.Current.FindResource("Phosphor.Copy") as Geometry, + Name = "Kopieren" + }; + + AssistentCommands.Add(imported_menu_item); + } + public void ImportAssistentCommand(AiMenuItemTemplate origin) { var origin_command = origin.Command;