From 74de5b7a0717baaf80f83311c838777e831c3241 Mon Sep 17 00:00:00 2001 From: toshiaki1729 <116595002+toshiaki1729@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:29:54 +0900 Subject: [PATCH] fix: "move or delete files" shows wrong number of target images --- scripts/main.py | 4 --- scripts/tag_editor_ui/tab_filter_by_tags.py | 2 +- .../tag_editor_ui/tab_move_or_delete_files.py | 33 +++++++++---------- 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/scripts/main.py b/scripts/main.py index 6964b0e..5fe6738 100644 --- a/scripts/main.py +++ b/scripts/main.py @@ -413,10 +413,6 @@ def on_ui_tabs(): ui.move_or_delete_files.set_callbacks( o_update_filter_and_gallery, ui.dataset_gallery, - ui.filter_by_tags, - ui.batch_edit_captions, - ui.filter_by_selection, - ui.edit_caption_of_selected_image, get_filters, update_filter_and_gallery, ) diff --git a/scripts/tag_editor_ui/tab_filter_by_tags.py b/scripts/tag_editor_ui/tab_filter_by_tags.py index 5d94d89..929862f 100644 --- a/scripts/tag_editor_ui/tab_filter_by_tags.py +++ b/scripts/tag_editor_ui/tab_filter_by_tags.py @@ -37,7 +37,7 @@ class FilterByTagsUI(UIBase): common_callback = lambda : \ update_gallery() + \ batch_edit_captions.get_common_tags(get_filters, self) + \ - [move_or_delete_files.get_current_move_or_delete_target_num()] + \ + [move_or_delete_files.update_current_move_or_delete_target_num()] + \ [batch_edit_captions.tag_select_ui_remove.cbg_tags_update()] common_callback_output = \ diff --git a/scripts/tag_editor_ui/tab_move_or_delete_files.py b/scripts/tag_editor_ui/tab_move_or_delete_files.py index c6dccec..145db93 100644 --- a/scripts/tag_editor_ui/tab_move_or_delete_files.py +++ b/scripts/tag_editor_ui/tab_move_or_delete_files.py @@ -14,6 +14,7 @@ class MoveOrDeleteFilesUI(UIBase): def __init__(self): self.target_data = 'Selected One' self.current_target_txt = '' + self.update_func = None def create_ui(self, cfg_file_move_delete): gr.HTML(value='Note: Moved or deleted images will be unloaded.') @@ -27,11 +28,15 @@ class MoveOrDeleteFilesUI(UIBase): gr.HTML(value='Note: DELETE cannot be undone. The files will be deleted completely.') self.btn_move_or_delete_delete_files = gr.Button(value='DELETE File(s)', variant='primary') - def get_current_move_or_delete_target_num(self): - return self.current_target_txt + def update_current_move_or_delete_target_num(self): + if self.update_func: + return self.update_func(self.target_data) + else: + return self.current_target_txt - def set_callbacks(self, o_update_filter_and_gallery:List[gr.components.Component], dataset_gallery:DatasetGalleryUI, filter_by_tags:FilterByTagsUI, batch_edit_captions:BatchEditCaptionsUI, filter_by_selection:FilterBySelectionUI, edit_caption_of_selected_image:EditCaptionOfSelectedImageUI, get_filters:Callable[[], List[dte_module.filters.Filter]], update_filter_and_gallery:Callable[[], List]): - def _get_current_move_or_delete_target_num(): + def set_callbacks(self, o_update_filter_and_gallery:List[gr.components.Component], dataset_gallery:DatasetGalleryUI, get_filters:Callable[[], List[dte_module.filters.Filter]], update_filter_and_gallery:Callable[[], List]): + def _get_current_move_or_delete_target_num(text: str): + self.target_data = text if self.target_data == 'Selected One': self.current_target_txt = f'Target dataset num: {1 if dataset_gallery.selected_index != -1 else 0}' elif self.target_data == 'All Displayed Ones': @@ -41,25 +46,17 @@ class MoveOrDeleteFilesUI(UIBase): self.current_target_txt = f'Target dataset num: 0' return self.current_target_txt + self.update_func = _get_current_move_or_delete_target_num + update_args = { - 'fn' : _get_current_move_or_delete_target_num, - 'inputs' : None, + 'fn': self.update_func, + 'inputs': [self.rb_move_or_delete_target_data], 'outputs' : [self.ta_move_or_delete_target_dataset_num] } - batch_edit_captions.btn_apply_edit_tags.click(lambda:None).then(**update_args) - - batch_edit_captions.btn_apply_sr_tags.click(lambda:None).then(**update_args) - - filter_by_selection.btn_apply_image_selection_filter.click(lambda:None).then(**update_args) - - filter_by_tags.btn_clear_tag_filters.click(lambda:None).then(**update_args) - - filter_by_tags.btn_clear_all_filters.click(lambda:None).then(**update_args) - - edit_caption_of_selected_image.btn_apply_changes_selected_image.click(lambda:None).then(**update_args) - self.rb_move_or_delete_target_data.change(**update_args) + dataset_gallery.cbg_hidden_dataset_filter.change(lambda:None).then(**update_args) + dataset_gallery.nb_hidden_image_index.change(lambda:None).then(**update_args) def move_files( target_data: str,