modified entries now retain their position

This commit is contained in:
2026-05-03 14:53:18 +03:00
parent c89a091135
commit 1cb50c5b04
3 changed files with 17 additions and 2 deletions

View File

@@ -7,4 +7,5 @@ public interface IPassStoreDirectory : IEnumerable<PassStoreEntry>
{
bool DeleteEntry(Guid id);
void AddEntry(PassStoreEntry entry);
void UpdateEntry(Guid id, PassStoreEntry entry);
}

View File

@@ -85,6 +85,21 @@ public class PassStoreEntryGroup : PassStoreEntry, IPassStoreDirectory
return false;
}
public void UpdateEntry(Guid id, PassStoreEntry entry)
{
entry.Parent = this;
if (ChildEntries == null)
return;
for (int i = 0; i < ChildEntries.Count; i++)
{
if (ChildEntries[i].Id == id)
{
ChildEntries[i] = entry;
return;
}
}
}
IEnumerator<PassStoreEntry> IEnumerable<PassStoreEntry>.GetEnumerator()
{
return ChildEntries.GetEnumerator();

View File

@@ -77,8 +77,7 @@ public class UnlockedRepositoryViewModel : ViewModelBase
public void UpdateEntry(PassStoreEntryPassword updatedEntry)
{
currentDirectory.DeleteEntry(updatedEntry.Id);
currentDirectory.AddEntry(updatedEntry);
currentDirectory.UpdateEntry(updatedEntry.Id, updatedEntry);
HasUnsavedChanges = true;
OnPropertyChanged(nameof(Passwords));
}