From 4bcff35708c12d58e208228fd7b149d13c9d376e Mon Sep 17 00:00:00 2001 From: pax Date: Sat, 11 Apr 2026 22:13:21 -0500 Subject: [PATCH] context_menus: make Save/Unsave from Library mutually exclusive MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously both Save to Library submenu and Unsave from Library showed simultaneously for saved posts. Now only the relevant action appears based on whether the post is already in the library. Also removed stale _current_post override on unsave — get_preview_post already resolves the right-clicked post via grid selection index. behavior change: browse grid context menu shows either Save or Unsave, never both. --- booru_viewer/gui/context_menus.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/booru_viewer/gui/context_menus.py b/booru_viewer/gui/context_menus.py index 45e2388..312bbe4 100644 --- a/booru_viewer/gui/context_menus.py +++ b/booru_viewer/gui/context_menus.py @@ -37,19 +37,22 @@ class ContextMenuHandler: save_as = menu.addAction("Save As...") from ..core.config import library_folders - save_lib_menu = menu.addMenu("Save to Library") - save_lib_unsorted = save_lib_menu.addAction("Unfiled") - save_lib_menu.addSeparator() + save_lib_menu = None + save_lib_unsorted = None + save_lib_new = None save_lib_folders = {} - for folder in library_folders(): - a = save_lib_menu.addAction(folder) - save_lib_folders[id(a)] = folder - save_lib_menu.addSeparator() - save_lib_new = save_lib_menu.addAction("+ New Folder...") - unsave_lib = None if self._app._post_actions.is_post_saved(post.id): unsave_lib = menu.addAction("Unsave from Library") + else: + save_lib_menu = menu.addMenu("Save to Library") + save_lib_unsorted = save_lib_menu.addAction("Unfiled") + save_lib_menu.addSeparator() + for folder in library_folders(): + a = save_lib_menu.addAction(folder) + save_lib_folders[id(a)] = folder + save_lib_menu.addSeparator() + save_lib_new = save_lib_menu.addAction("+ New Folder...") copy_clipboard = menu.addAction("Copy File to Clipboard") copy_url = menu.addAction("Copy Image URL") copy_tags = menu.addAction("Copy Tags") @@ -108,7 +111,6 @@ class ContextMenuHandler: elif id(action) in save_lib_folders: self._app._post_actions.save_to_library(post, save_lib_folders[id(action)]) elif action == unsave_lib: - self._app._preview._current_post = post self._app._post_actions.unsave_from_preview() elif action == copy_clipboard: self._app._copy_file_to_clipboard()