diff --git a/src/KeyKeeper/Models/GroupData.cs b/src/KeyKeeper/Models/GroupData.cs new file mode 100644 index 0000000..7b964be --- /dev/null +++ b/src/KeyKeeper/Models/GroupData.cs @@ -0,0 +1,5 @@ +using System; + +namespace KeyKeeper.Models; + +public record GroupEditData(string Name, Guid IconType); diff --git a/src/KeyKeeper/ViewModels/UnlockedRepositoryViewModel.cs b/src/KeyKeeper/ViewModels/UnlockedRepositoryViewModel.cs index 48db0af..3790d6d 100644 --- a/src/KeyKeeper/ViewModels/UnlockedRepositoryViewModel.cs +++ b/src/KeyKeeper/ViewModels/UnlockedRepositoryViewModel.cs @@ -160,6 +160,29 @@ public class UnlockedRepositoryViewModel : ViewModelBase OnPropertyChanged(nameof(Passwords)); } + public void UpdateGroup(PassStoreEntryGroup group, string newName, Guid newIconType) + { + group.Name = newName; + group.IconType = newIconType; + group.ModificationDate = DateTime.UtcNow; + HasUnsavedChanges = true; + OnPropertyChanged(nameof(PasswordGroups)); + } + + public void DeleteGroup(PassStoreEntryGroup group) + { + if (rootDirectory == null) + return; + + passStore.DeleteEntry(rootDirectory, group.Id); + if (currentDirectory == group && rootDirectory != null) + { + ChangeDirectory(rootDirectory.ChildGroups.FirstOrDefault() ?? rootDirectory); + } + HasUnsavedChanges = true; + OnPropertyChanged(nameof(PasswordGroups)); + } + public void Save() { passStore.Save(); diff --git a/src/KeyKeeper/Views/CloseConfirmationDialog.axaml b/src/KeyKeeper/Views/CloseConfirmationDialog.axaml index 2779e45..df19cdf 100644 --- a/src/KeyKeeper/Views/CloseConfirmationDialog.axaml +++ b/src/KeyKeeper/Views/CloseConfirmationDialog.axaml @@ -16,6 +16,7 @@