diff --git a/rslib/src/import_export/package/apkg/import.rs b/rslib/src/import_export/package/apkg/import.rs index 5c381c44e..02e7e08f8 100644 --- a/rslib/src/import_export/package/apkg/import.rs +++ b/rslib/src/import_export/package/apkg/import.rs @@ -90,12 +90,14 @@ impl SafeMediaEntry { } impl Collection { - pub fn import_apkg(&mut self, path: impl AsRef) -> Result<()> { + pub fn import_apkg(&mut self, path: impl AsRef) -> Result> { let file = File::open(path)?; let archive = ZipArchive::new(file)?; - let mut ctx = Context::new(archive, self)?; - ctx.import()?; - Ok(()) + + self.transact(Op::Import, |col| { + let mut ctx = Context::new(archive, col)?; + ctx.import() + }) } fn all_existing_sha1s(&mut self) -> Result> { diff --git a/rslib/src/ops.rs b/rslib/src/ops.rs index 5daa2c582..c3d8f4a28 100644 --- a/rslib/src/ops.rs +++ b/rslib/src/ops.rs @@ -17,6 +17,7 @@ pub enum Op { CreateCustomStudy, EmptyFilteredDeck, FindAndReplace, + Import, RebuildFilteredDeck, RemoveDeck, RemoveNote, @@ -55,6 +56,7 @@ impl Op { Op::AnswerCard => tr.actions_answer_card(), Op::Bury => tr.studying_bury(), Op::CreateCustomStudy => tr.actions_custom_study(), + Op::Import => tr.actions_import(), Op::RemoveDeck => tr.decks_delete_deck(), Op::RemoveNote => tr.studying_delete_note(), Op::RenameDeck => tr.actions_rename_deck(),