From 482a55bc90aa56f88fada03e5dc6f1160f2ae8f0 Mon Sep 17 00:00:00 2001 From: Heliguy Date: Mon, 2 Sep 2024 20:56:23 -0400 Subject: [PATCH] fix User Data Page's Trash button enabling select mode --- src/user_data_page/data_box.py | 7 +++++-- src/user_data_page/data_subpage.py | 10 ++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/user_data_page/data_box.py b/src/user_data_page/data_box.py index 0f31806..1ab1df3 100644 --- a/src/user_data_page/data_box.py +++ b/src/user_data_page/data_box.py @@ -83,21 +83,24 @@ class DataBox(Gtk.ListBox): self.trash_callback(self) def on_response(_, response): + self.parent_page.should_rclick = True if response != "continue": return Gio.Task.new(None, None, callback).run_in_thread(thread) + self.parent_page.should_rclick = False dialog = Adw.AlertDialog(heading=_("Trash {}'s Data?").format(self.title), body=_("{}'s data will be sent to the trash").format(self.title)) dialog.add_response("cancel", _("Cancel")) dialog.add_response("continue", _("Continue")) dialog.set_response_appearance("continue", Adw.ResponseAppearance.DESTRUCTIVE) dialog.connect("response", on_response) - dialog.present(ErrorToast.main_window) + dialog.present(HostInfo.main_window) - def __init__(self, toast_overlay, title, subtitle, data_path, icon_path=None, callback=None, trash_callback=None, **kwargs): + def __init__(self, parent_page, toast_overlay, title, subtitle, data_path, icon_path=None, callback=None, trash_callback=None, **kwargs): super().__init__(**kwargs) + self.parent_page = parent_page # Extra Object Creation self.toast_overlay = toast_overlay self.title = title diff --git a/src/user_data_page/data_subpage.py b/src/user_data_page/data_subpage.py index f048463..c7dffb6 100644 --- a/src/user_data_page/data_subpage.py +++ b/src/user_data_page/data_subpage.py @@ -120,8 +120,9 @@ class DataSubpage(Gtk.Stack): box.get_child().check_button.set_active(True) def box_rclick_handler(self, box): - self.parent_page.select_button.set_active(True) - box.check_button.set_active(not box.check_button.get_active()) + if self.should_rclick: + self.parent_page.select_button.set_active(True) + box.check_button.set_active(not box.check_button.get_active()) def generate_list(self, flatpaks, data): self.flow_box.remove_all() @@ -133,14 +134,14 @@ class DataSubpage(Gtk.Stack): self.parent_page.search_entry.set_editable(True) if flatpaks: for i, pak in enumerate(flatpaks): - box = DataBox(self.parent_page.toast_overlay, pak.info["name"], pak.info["id"], pak.data_path, pak.icon_path, self.box_size_callback, self.trash_handler) + box = DataBox(self, self.parent_page.toast_overlay, pak.info["name"], pak.info["id"], pak.data_path, pak.icon_path, self.box_size_callback, self.trash_handler) box.check_button.connect("toggled", lambda *_, box=box: self.box_select_handler(box)) self.boxes.append(box) self.flow_box.append(box) else: for i, folder in enumerate(data): - box = DataBox(self.parent_page.toast_overlay, folder.split('.')[-1], folder, f"{HostInfo.home}/.var/app/{folder}", None, self.box_size_callback, self.trash_handler) + box = DataBox(self, self.parent_page.toast_overlay, folder.split('.')[-1], folder, f"{HostInfo.home}/.var/app/{folder}", None, self.box_size_callback, self.trash_handler) box.check_button.connect("toggled", lambda *_, box=box: self.box_select_handler(box)) self.flow_box.append(box) @@ -212,6 +213,7 @@ class DataSubpage(Gtk.Stack): self.boxes = [] self.selected_boxes = [] self.ready_to_sort_size = False + self.should_rclick = False self.finished_boxes = 0 self.is_result = False self.prev_status = None