From 00651e6242f97c1945b06674f622b73699c836a6 Mon Sep 17 00:00:00 2001 From: Travis Abendshien Date: Fri, 26 Apr 2024 01:45:03 -0700 Subject: [PATCH] Fixed Incorrect Fields Being Updated in Multi-Selection Fixes #55 Co-Authored-By: Andrew Arneson Co-Authored-By: Xarvex <60973030+xarvex@users.noreply.github.com> --- tagstudio/src/qt/ts_qt.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 12b0d6ea..306fe857 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -2375,14 +2375,12 @@ class PreviewPanel(QWidget): # f'Are you sure you want to remove this \"{self.lib.get_field_attr(field, "name")}\" field?' # container.set_remove_callback(lambda: (self.lib.get_entry(item.id).fields.pop(index), self.update_widgets(item))) prompt=f'Are you sure you want to remove this \"{self.lib.get_field_attr(field, "name")}\" field?' - callback = lambda: (self.remove_field(item.fields[index]), self.update_widgets()) + callback = lambda: (self.remove_field(field), self.update_widgets()) container.set_remove_callback(lambda: self.remove_message_box( prompt=prompt, callback=callback)) container.set_copy_callback(None) container.set_edit_callback(None) - # logging.info(self.common_fields) - # logging.info(f'index:{index}') else: text = 'Mixed Data' title = f"{self.lib.get_field_attr(field, 'name')} (Wacky Tag Box)" @@ -2412,15 +2410,14 @@ class PreviewPanel(QWidget): container.set_inner_widget(inner_container) # if type(item) == Entry: if not mixed: - item = self.lib.get_entry(self.selected[0][1]) # TODO TODO TODO: TEMPORARY modal = PanelModal(EditTextLine(self.lib.get_field_attr(field, 'content')), title=title, window_title=f'Edit {self.lib.get_field_attr(field, "name")}', - save_callback=(lambda content: (self.update_field(item.fields[index], content), self.update_widgets())) + save_callback=(lambda content: (self.update_field(field, content), self.update_widgets())) ) container.set_edit_callback(modal.show) prompt=f'Are you sure you want to remove this \"{self.lib.get_field_attr(field, "name")}\" field?' - callback = lambda: (self.remove_field(item.fields[index]), self.update_widgets()) + callback = lambda: (self.remove_field(field), self.update_widgets()) container.set_remove_callback(lambda: self.remove_message_box( prompt=prompt, callback=callback)) @@ -2448,17 +2445,15 @@ class PreviewPanel(QWidget): container.set_inner_widget(inner_container) # if type(item) == Entry: if not mixed: - item = self.lib.get_entry(self.selected[0][1]) # TODO TODO TODO: TEMPORARY container.set_copy_callback(None) modal = PanelModal(EditTextBox(self.lib.get_field_attr(field, 'content')), title=title, window_title=f'Edit {self.lib.get_field_attr(field, "name")}', - save_callback=(lambda content: (self.update_field(item.fields[index], content), self.update_widgets())) + save_callback=(lambda content: (self.update_field(field, content), self.update_widgets())) ) container.set_edit_callback(modal.show) - # container.set_remove_callback(lambda: (self.lib.get_entry(item.id).fields.pop(index), self.update_widgets(item))) prompt=f'Are you sure you want to remove this \"{self.lib.get_field_attr(field, "name")}\" field?' - callback = lambda: (self.remove_field(item.fields[index]), self.update_widgets()) + callback = lambda: (self.remove_field(field), self.update_widgets()) container.set_remove_callback(lambda: self.remove_message_box( prompt=prompt, callback=callback)) @@ -2483,7 +2478,7 @@ class PreviewPanel(QWidget): # container.set_edit_callback(None) # container.set_remove_callback(lambda: (self.lib.get_entry(item.id).fields.pop(index), self.update_widgets(item))) prompt=f'Are you sure you want to remove this \"{self.lib.get_field_attr(field, "name")}\" field?' - callback = lambda: (self.remove_field(item.fields[index]), self.update_widgets()) + callback = lambda: (self.remove_field(field), self.update_widgets()) container.set_remove_callback(lambda: self.remove_message_box( prompt=prompt, callback=callback)) @@ -2511,7 +2506,7 @@ class PreviewPanel(QWidget): container.set_edit_callback(None) # container.set_remove_callback(lambda: (self.lib.get_entry(item.id).fields.pop(index), self.update_widgets(item))) prompt=f'Are you sure you want to remove this \"{self.lib.get_field_attr(field, "name")}\" field?' - callback = lambda: (self.remove_field(item.fields[index]), self.update_widgets()) + callback = lambda: (self.remove_field(field), self.update_widgets()) container.set_remove_callback(lambda: self.remove_message_box( prompt=prompt, callback=callback)) @@ -2536,7 +2531,7 @@ class PreviewPanel(QWidget): container.set_edit_callback(None) # container.set_remove_callback(lambda: (self.lib.get_entry(item.id).fields.pop(index), self.update_widgets(item))) prompt=f'Are you sure you want to remove this \"{self.lib.get_field_attr(field, "name")}\" field?' - callback = lambda: (self.remove_field(item.fields[index]), self.update_widgets()) + callback = lambda: (self.remove_field(field), self.update_widgets()) # callback = lambda: (self.lib.get_entry(item.id).fields.pop(index), self.update_widgets()) container.set_remove_callback(lambda: self.remove_message_box( prompt=prompt,