From 030c817323446c46325a04530dd40e8aa2c6dc20 Mon Sep 17 00:00:00 2001 From: TechCrafterGaming Date: Mon, 29 Apr 2024 23:57:35 +0200 Subject: [PATCH 1/4] added action to close a library --- tagstudio/src/qt/ts_qt.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 0127f357..a9143636 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -249,7 +249,9 @@ class QtDriver(QObject): file_menu.addSeparator() - file_menu.addAction(QAction('&Close Library', menu_bar)) + close_library_action = QAction('&Close Library', menu_bar) + close_library_action.triggered.connect(lambda: self.close_library()) + file_menu.addAction(close_library_action) # Edit Menu ============================================================ new_tag_action = QAction('New &Tag', menu_bar) @@ -422,6 +424,28 @@ class QtDriver(QObject): end_time = time.time() self.main_window.statusbar.showMessage(f'Library Saved! ({format_timespan(end_time - start_time)})') + def close_library(self): + logging.info(f'Closing & Saving Library...') + self.main_window.statusbar.showMessage(f'Closed & Saving Library...') + start_time = time.time() + self.lib.save_library_to_disk() + end_time = time.time() + + # FIXME: idk if all this is necessary to reset the window properly + self.lib.clear_internal_vars() + + title_text = f'{self.base_title}' + self.main_window.setWindowTitle(title_text) + + self.nav_frames: list[NavigationState] = [] + self.cur_frame_idx: int = -1 + self.cur_query: str = '' + self.selected.clear() + self.preview_panel.update_widgets() + self.filter_items() + + self.main_window.statusbar.showMessage(f'Library Saved and Closed! ({format_timespan(end_time - start_time)})') + def backup_library(self): logging.info(f'Backing Up Library...') self.main_window.statusbar.showMessage(f'Saving Library...') From 16a9d32ef30eff84f05ca562ec12568a6ec4198c Mon Sep 17 00:00:00 2001 From: TechCrafterGaming Date: Tue, 30 Apr 2024 08:02:46 +0200 Subject: [PATCH 2/4] added `last_library` value to be set properly --- tagstudio/src/qt/ts_qt.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index a9143636..28eda239 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -429,7 +429,8 @@ class QtDriver(QObject): self.main_window.statusbar.showMessage(f'Closed & Saving Library...') start_time = time.time() self.lib.save_library_to_disk() - end_time = time.time() + self.settings.setValue("last_library", self.lib.library_dir) + self.settings.sync() # FIXME: idk if all this is necessary to reset the window properly self.lib.clear_internal_vars() @@ -444,6 +445,7 @@ class QtDriver(QObject): self.preview_panel.update_widgets() self.filter_items() + end_time = time.time() self.main_window.statusbar.showMessage(f'Library Saved and Closed! ({format_timespan(end_time - start_time)})') def backup_library(self): From 7cdb26e8220ff8c3e169f3fe95c6529b7d8f608b Mon Sep 17 00:00:00 2001 From: TechCrafterGaming Date: Tue, 30 Apr 2024 08:04:13 +0200 Subject: [PATCH 3/4] added if statement --- tagstudio/src/qt/ts_qt.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 28eda239..71e479b9 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -425,28 +425,29 @@ class QtDriver(QObject): self.main_window.statusbar.showMessage(f'Library Saved! ({format_timespan(end_time - start_time)})') def close_library(self): - logging.info(f'Closing & Saving Library...') - self.main_window.statusbar.showMessage(f'Closed & Saving Library...') - start_time = time.time() - self.lib.save_library_to_disk() - self.settings.setValue("last_library", self.lib.library_dir) - self.settings.sync() + if self.lib.library_dir: + logging.info(f'Closing & Saving Library...') + self.main_window.statusbar.showMessage(f'Closed & Saving Library...') + start_time = time.time() + self.lib.save_library_to_disk() + self.settings.setValue("last_library", self.lib.library_dir) + self.settings.sync() - # FIXME: idk if all this is necessary to reset the window properly - self.lib.clear_internal_vars() - - title_text = f'{self.base_title}' - self.main_window.setWindowTitle(title_text) + # FIXME: idk if all this is necessary to reset the window properly + self.lib.clear_internal_vars() + + title_text = f'{self.base_title}' + self.main_window.setWindowTitle(title_text) - self.nav_frames: list[NavigationState] = [] - self.cur_frame_idx: int = -1 - self.cur_query: str = '' - self.selected.clear() - self.preview_panel.update_widgets() - self.filter_items() + self.nav_frames: list[NavigationState] = [] + self.cur_frame_idx: int = -1 + self.cur_query: str = '' + self.selected.clear() + self.preview_panel.update_widgets() + self.filter_items() - end_time = time.time() - self.main_window.statusbar.showMessage(f'Library Saved and Closed! ({format_timespan(end_time - start_time)})') + end_time = time.time() + self.main_window.statusbar.showMessage(f'Library Saved and Closed! ({format_timespan(end_time - start_time)})') def backup_library(self): logging.info(f'Backing Up Library...') From a669fd67c361e8382659e56acabb3f9997561c55 Mon Sep 17 00:00:00 2001 From: TechCrafterGaming Date: Tue, 30 Apr 2024 08:07:10 +0200 Subject: [PATCH 4/4] small adjustments and comments --- tagstudio/src/qt/ts_qt.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 71e479b9..24f83bd9 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -426,6 +426,7 @@ class QtDriver(QObject): def close_library(self): if self.lib.library_dir: + # TODO: it is kinda the same code from "save_library"... logging.info(f'Closing & Saving Library...') self.main_window.statusbar.showMessage(f'Closed & Saving Library...') start_time = time.time() @@ -433,9 +434,7 @@ class QtDriver(QObject): self.settings.setValue("last_library", self.lib.library_dir) self.settings.sync() - # FIXME: idk if all this is necessary to reset the window properly self.lib.clear_internal_vars() - title_text = f'{self.base_title}' self.main_window.setWindowTitle(title_text)