fix User Data Page's Trash button enabling select mode

This commit is contained in:
Heliguy
2024-09-02 20:56:23 -04:00
parent 759eceabf6
commit 482a55bc90
2 changed files with 11 additions and 6 deletions

View File

@@ -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

View File

@@ -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