From 576725a9490552065be8dce9cbbfaa8df9b296a0 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sun, 27 Apr 2025 20:21:33 +0300 Subject: [PATCH] clear_changes -> revert_all; stub save_all --- src/keys/quit.rs | 13 ++++++++++--- src/keys/save.rs | 7 +++++-- src/model.rs | 13 ++++++++++++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/keys/quit.rs b/src/keys/quit.rs index 362f2de..2e1dc56 100644 --- a/src/keys/quit.rs +++ b/src/keys/quit.rs @@ -11,9 +11,16 @@ impl Perch { choice: (choice + 1) % 3 }) }, press!(Enter) => match choice { - 0 => { input.done() }, - 1 => { self.mode = None }, - 2 => todo!(), + 0 => { + input.done() + }, + 1 => { + self.mode = None + }, + 2 => { + self.save_all(); + input.done() + }, _ => unreachable!(), }, _ => {} diff --git a/src/keys/save.rs b/src/keys/save.rs index 434ee7a..2636ad5 100644 --- a/src/keys/save.rs +++ b/src/keys/save.rs @@ -12,13 +12,16 @@ impl Perch { }) }, press!(Enter) => match choice { 0 => { - self.clear_changes(); + self.revert_all(); self.mode = None; }, 1 => { + self.mode = None; + }, + 2 => { + self.save_all(); self.mode = None }, - 2 => todo!(), _ => unreachable!(), }, _ => {} diff --git a/src/model.rs b/src/model.rs index ad1ef15..a725401 100644 --- a/src/model.rs +++ b/src/model.rs @@ -76,7 +76,7 @@ impl Perch { self.changes } /// Clear all modified tags. - pub(crate) fn clear_changes (&mut self) { + pub(crate) fn revert_all (&mut self) { for entry in self.entries.iter_mut() { if let Metadata::Music { modified_tag, .. @@ -86,4 +86,15 @@ impl Perch { } self.changes = 0; } + /// Write all modified tags + pub(crate) fn save_all (&mut self) { + for entry in self.entries.iter_mut() { + if let Metadata::Music { + original_tag, modified_tag, .. + } = &mut *entry.info.write().unwrap() { + todo!("save {:?}", entry.path); + } + } + self.changes = 0; + } }