diff --git a/src-core/src/db/yomitan_writer.rs b/src-core/src/db/yomitan_writer.rs index 9900725..43fe454 100644 --- a/src-core/src/db/yomitan_writer.rs +++ b/src-core/src/db/yomitan_writer.rs @@ -73,6 +73,11 @@ impl YomitanWriter { Ok(Self { conn }) } + pub fn cleanup(&self) -> Result<()> { + self.conn.execute_batch("VACUUM")?; + Ok(()) + } + pub fn create_schema(&mut self) -> Result<()> { self.conn.execute_batch( " diff --git a/src-core/src/service.rs b/src-core/src/service.rs index 1ad041d..48ad2e2 100644 --- a/src-core/src/service.rs +++ b/src-core/src/service.rs @@ -51,6 +51,13 @@ impl AppService { Ok(writer) } + pub fn cleanup_yomitan_writer(&self) -> Result { + let conn = Connection::open(self.db.dir.join(YOMITAN_DBFILE))?; + let writer = YomitanWriter::new(conn)?; + writer.cleanup()?; + Ok(writer) + } + pub fn load_yomitan_zip_dir( &self, zip_dir: Vec, @@ -145,7 +152,7 @@ impl AppService { } pub fn import_yomitan_zip_file( - writer: &mut YomitanWriter, + writer: &mut YomitanWriter, // Reuse existing connection zip_file: &Z, lang: &str, progress_callback: Callback, diff --git a/src-react/src/components/LoadingDialog.tsx b/src-react/src/components/LoadingDialog.tsx index a65a031..271e829 100644 --- a/src-react/src/components/LoadingDialog.tsx +++ b/src-react/src/components/LoadingDialog.tsx @@ -40,7 +40,7 @@ function LoadingDialog() { if (payload.new_dicts.length > 0) { messages = [ ...messages, - { message: "Importing Yomitan zip in resources/ folder:" }, + { message: "Importing Yomitan zip from the app bundle:" }, ...payload.new_dicts.map((d) => ({ message: `- ${d}` })), ]; } @@ -48,7 +48,7 @@ function LoadingDialog() { if (payload.to_be_removed_dicts.length > 0) { messages = [ ...messages, - { message: "Removing Yomitan zip:" }, + { message: "Removing old Yomitan zip:" }, ...payload.to_be_removed_dicts.map((d) => ({ message: `- ${d}` })), ]; } diff --git a/src-tauri/src/command.rs b/src-tauri/src/command.rs index 0849a45..a8b366d 100644 --- a/src-tauri/src/command.rs +++ b/src-tauri/src/command.rs @@ -71,6 +71,10 @@ pub async fn init_yomitan( )?; if r.new_dicts.len() + r.to_be_removed_dicts.len() > 0 { + // Cleanup doesn't appear to help even after app restart + // state.cleanup_yomitan_writer()?; + + // Request app restart anyway app.request_restart(); }