From 619b8225f7fc48982c6ec0bea01a0bfa0744c069 Mon Sep 17 00:00:00 2001 From: heliguy4599 Date: Wed, 28 Aug 2024 11:26:48 -0400 Subject: [PATCH] Add right click and long press actions to data boxes --- src/user_data_page/data_subpage.blp | 8 +------ src/user_data_page/data_subpage.py | 34 ++++++++-------------------- src/user_data_page/user_data_page.py | 9 ++++---- 3 files changed, 16 insertions(+), 35 deletions(-) diff --git a/src/user_data_page/data_subpage.blp b/src/user_data_page/data_subpage.blp index adc8edc..b3be303 100644 --- a/src/user_data_page/data_subpage.blp +++ b/src/user_data_page/data_subpage.blp @@ -39,14 +39,8 @@ template $DataSubpage : Stack { halign: start; wrap: true; } - Image { - icon-name: "dot-symbolic"; - margin-start: 6; - margin-end: 6; - margin-top: 3; - valign: center; - } Label subtitle { + visible: false; label: "No Subtutle Set"; styles ["title-3"] wrap: true; diff --git a/src/user_data_page/data_subpage.py b/src/user_data_page/data_subpage.py index b3ce5ba..9aee758 100644 --- a/src/user_data_page/data_subpage.py +++ b/src/user_data_page/data_subpage.py @@ -75,6 +75,10 @@ class DataSubpage(Gtk.Stack): self.set_visible_child(self.no_data) def set_selection_mode(self, is_enabled): + if not is_enabled: + self.size_label.set_visible(True) + self.subtitle.set_visible(False) + idx = 0 while box := self.flow_box.get_child_at_index(idx): idx += 1 @@ -97,6 +101,9 @@ class DataSubpage(Gtk.Stack): pass total = len(self.selected_boxes) + self.subtitle.set_visible(not total == 0) + self.size_label.set_visible(total == 0) + self.subtitle.set_label(_("{} Selected").format(total)) self.parent_page.copy_button.set_sensitive(total) self.parent_page.trash_button.set_sensitive(total) @@ -110,8 +117,7 @@ class DataSubpage(Gtk.Stack): idx = 0 while box := self.flow_box.get_child_at_index(idx): idx += 1 - if not box.get_child().check_button.get_active(): - self.box_select_handler(box.get_child()) + box.get_child().check_button.set_active(True) def box_rclick_handler(self, box): self.parent_page.select_button.set_active(True) @@ -124,15 +130,7 @@ class DataSubpage(Gtk.Stack): self.finished_boxes = 0 self.total_size = 0 self.total_items = len(data) - - if self.total_items == 1: - self.subtitle.set_label(_("1 Item")) - self.parent_page.search_entry.set_editable(True) - else: - self.parent_page.search_entry.set_editable(True) - self.subtitle.set_label(_("{} Items").format(self.total_items)) - - self.min_horizontal_label_width = self.label_box.get_preferred_size()[1].width + 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) @@ -189,14 +187,6 @@ class DataSubpage(Gtk.Stack): elif self.total_items == 0: self.set_visible_child(self.no_data) - def label_orientation_handler(self, adj): - current_page_width = adj.get_upper() - 24 - - if self.label_box.get_allocated_width() < self.min_horizontal_label_width: - GLib.idle_add(lambda *_: self.label_box.set_orientation(Gtk.Orientation.VERTICAL)) - else: - GLib.idle_add(lambda *_: self.label_box.set_orientation(Gtk.Orientation.HORIZONTAL)) - def update_sort_mode(self): self.sort_ascend = self.settings.get_boolean("sort-ascend") self.sort_mode = self.settings.get_string("sort-mode") @@ -222,7 +212,6 @@ class DataSubpage(Gtk.Stack): self.selected_boxes = [] self.ready_to_sort_size = False self.finished_boxes = 0 - self.min_horizontal_label_width = self.label_box.get_preferred_size()[1].width self.is_result = False self.prev_status = None self.settings = Gio.Settings.new("io.github.flattool.Warehouse.data_page") @@ -242,7 +231,4 @@ class DataSubpage(Gtk.Stack): # Connections parent_page.search_entry.connect("search-changed", self.on_invalidate) - self.flow_box.connect("child-activated", self.box_interact_handler) - - # self.title.get_preferred_size()[1].width + self.subtitle.get_preferred_size()[1].width - self.scrolled_window.get_hadjustment().connect("changed", self.label_orientation_handler) \ No newline at end of file + self.flow_box.connect("child-activated", self.box_interact_handler) \ No newline at end of file diff --git a/src/user_data_page/user_data_page.py b/src/user_data_page/user_data_page.py index 359ce77..c07c4bb 100644 --- a/src/user_data_page/user_data_page.py +++ b/src/user_data_page/user_data_page.py @@ -179,7 +179,9 @@ class UserDataPage(Adw.BreakpointBin): dialog.connect("response", on_response) dialog.present(ErrorToast.main_window) - # self.toast_overlay.add_toast(Adw.Toast(title=_("Trashed data"))) + def breakpoint_handler(self, bpt, is_applied): + self.adp.label_box.set_orientation(Gtk.Orientation.VERTICAL if is_applied else Gtk.Orientation.HORIZONTAL) + self.ldp.label_box.set_orientation(Gtk.Orientation.VERTICAL if is_applied else Gtk.Orientation.HORIZONTAL) def __init__(self, main_window, **kwargs): super().__init__(**kwargs) @@ -219,18 +221,17 @@ class UserDataPage(Adw.BreakpointBin): # Connections self.stack.connect("notify::visible-child", self.view_change_handler) - self.select_button.connect("toggled", self.select_toggle_handler) - self.select_all_button.connect("clicked", self.select_all_handler) self.copy_button.connect("clicked", self.copy_handler) self.trash_button.connect("clicked", self.trash_handler) - self.sort_ascend.connect("clicked", self.sort_button_handler) self.sort_descend.connect("clicked", self.sort_button_handler) self.sort_name.connect("clicked", self.sort_button_handler) self.sort_id.connect("clicked", self.sort_button_handler) self.sort_size.connect("clicked", self.sort_button_handler) + self.bpt.connect("apply", self.breakpoint_handler, True) + self.bpt.connect("unapply", self.breakpoint_handler, False) # Apply again self.search_bar.set_key_capture_widget(main_window)