From 7e6a684e599ac62031d8e0f69a64b65375ab8b29 Mon Sep 17 00:00:00 2001 From: AlUlkesh <99896447+AlUlkesh@users.noreply.github.com> Date: Thu, 16 Feb 2023 22:22:46 +0100 Subject: [PATCH] handle wrong delete + left arrow interaction, #29 --- javascript/image_browser.js | 9 +++++++++ scripts/image_browser.py | 18 +++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/javascript/image_browser.js b/javascript/image_browser.js index a220f39..4e38269 100644 --- a/javascript/image_browser.js +++ b/javascript/image_browser.js @@ -281,6 +281,15 @@ gradioApp().addEventListener("keydown", function(event) { deleteBtn.dispatchEvent(new Event("click")); } + // prevent left arrow following delete, instead refresh page + if (event.code == "ArrowLeft" && !event.altKey && !event.ctrlKey && !event.shiftKey && !event.metaKey) { + let deleteState = gradioApp().getElementById(tabname + "_image_browser_delete_state").getElementsByClassName('gr-check-radio gr-checkbox')[0]; + if (deleteState.checked) { + let refreshBtn = gradioApp().getElementById(tabname + "_image_browser_renew_page"); + refreshBtn.dispatchEvent(new Event("click")); + } + } + if (event.code == "ArrowLeft" && modifiers_pressed) { let prevBtn = gradioApp().getElementById(tabname + "_image_browser_prev_page"); prevBtn.dispatchEvent(new Event("click")); diff --git a/scripts/image_browser.py b/scripts/image_browser.py index 100a6b8..2c4766a 100644 --- a/scripts/image_browser.py +++ b/scripts/image_browser.py @@ -227,6 +227,7 @@ def delete_image(delete_num, name, filenames, image_index, visible_num): continue if opts.image_browser_delete_message: print(f"Deleting file {name}") + delete_state = True delete_recycle(name) visible_num -= 1 if opts.image_browser_txt_files: @@ -238,7 +239,7 @@ def delete_image(delete_num, name, filenames, image_index, visible_num): else: new_file_list.append(name) i += 1 - return new_file_list, 1, visible_num + return new_file_list, 1, visible_num, delete_state def traverse_all_files(curr_path, image_list, tabname_box, img_path_depth) -> List[Tuple[str, os.stat_result, str, int]]: global current_depth @@ -469,9 +470,9 @@ def get_all_images(dir_name, sort_by, sort_order, keyword, tabname_box, img_path filenames = [finfo for finfo in fileinfos] return filenames -def get_image_page(img_path, page_index, filenames, keyword, sort_by, sort_order, tabname_box, img_path_depth, ranking_filter, aes_filter, exif_keyword, negative_prompt_search): +def get_image_page(img_path, page_index, filenames, keyword, sort_by, sort_order, tabname_box, img_path_depth, ranking_filter, aes_filter, exif_keyword, negative_prompt_search, delete_state): if img_path == "": - return [], page_index, [], "", "", "", 0, "" + return [], page_index, [], "", "", "", 0, "", delete_state img_path, _ = pure_path(img_path) if page_index == 1 or page_index == 0 or len(filenames) == 0: @@ -491,7 +492,9 @@ def get_image_page(img_path, page_index, filenames, keyword, sort_by, sort_order load_info = "