Favoriten setzen per ContextMenu

This commit is contained in:
2026-01-30 11:40:42 +01:00
parent 0f9635b31f
commit ada28006f8
3 changed files with 50 additions and 14 deletions

View File

@@ -43,6 +43,7 @@ namespace BeWo.ViewModel.View.Administration
public DelegateCommand CopyPromptCommand { get; private set; }
public DelegateCommand PastePromptCommand { get; private set; }
public DelegateCommand DeletePromptCommand { get; private set; }
public DelegateCommand ChangeFavoritenStatePromptCommand { get; private set; }
public bool IsEditingMode { get; set; }
@@ -78,6 +79,7 @@ namespace BeWo.ViewModel.View.Administration
CopyPromptCommand = new DelegateCommand(CopyPrompt, canCopyPrompt, false);
PastePromptCommand = new DelegateCommand(PastePrompt, canPastePrompt, false);
DeletePromptCommand = new DelegateCommand(OpenDeletePromptDialog, canOpenDeletePromptDialog, false);
ChangeFavoritenStatePromptCommand = new DelegateCommand(ChangeFavoritenStatePrompt, canChangeFavoritenStatePrompt, false);
IsEditingMode = true;
}
@@ -368,23 +370,32 @@ namespace BeWo.ViewModel.View.Administration
var edit_dc = edit_vm.CommitToDataContract();
sel_prompt.UpdateByDataContract(edit_dc);
if (sel_prompt.IsFavorite && !Favoriten.SubPrompts.VMList.Contains(sel_prompt))
Favoriten.SubPrompts.VMList.Add(sel_prompt);
else if (!sel_prompt.IsFavorite && Favoriten.SubPrompts.VMList.Contains(sel_prompt))
{
Favoriten.SubPrompts.VMList.Remove(sel_prompt);
if(Favoriten.SubPrompts.Count == 0)
{
var selected_folder = SelectedFolder;
SelectedFolder = null;
SelectedFolder = selected_folder;
}
}
UpdateSelectedPromptFavorite(sel_prompt);
};
WindowService.Show(vm);
}
private void UpdateSelectedPromptFavorite(AiPromptbausteinPromptVM sel_prompt = null)
{
if (sel_prompt is null)
sel_prompt = SelectedPrompt;
if (sel_prompt.IsFavorite && !Favoriten.SubPrompts.VMList.Contains(sel_prompt))
Favoriten.SubPrompts.VMList.Add(sel_prompt);
else if (!sel_prompt.IsFavorite && Favoriten.SubPrompts.VMList.Contains(sel_prompt))
{
Favoriten.SubPrompts.VMList.Remove(sel_prompt);
if (Favoriten.SubPrompts.Count == 0)
{
var selected_folder = SelectedFolder;
SelectedFolder = null;
SelectedFolder = selected_folder;
}
}
}
void CopyPrompt()
{
CopiedPrompt = SelectedPrompt;
@@ -415,6 +426,15 @@ namespace BeWo.ViewModel.View.Administration
folder.SubPrompts.VMList.Remove(SelectedPrompt);
}
void ChangeFavoritenStatePrompt()
{
var sel_prompt = SelectedPrompt;
sel_prompt.IsFavorite = !sel_prompt.IsFavorite;
UpdateSelectedPromptFavorite(sel_prompt);
}
bool canOpenAddPromptDialog()
{
return SelectedFolder?.CanAddPrompt ?? false;
@@ -435,5 +455,10 @@ namespace BeWo.ViewModel.View.Administration
{
return SelectedPrompt?.CanEdit ?? false;
}
bool canChangeFavoritenStatePrompt()
{
return SelectedPrompt is object;
}
}
}