From 3f7d70fddb04ebff237742f810d7a1e4d2cb8bcd Mon Sep 17 00:00:00 2001 From: heliguy Date: Fri, 5 Jul 2024 22:03:36 -0400 Subject: [PATCH] Add search to package list --- src/packages_page/packages_page.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/packages_page/packages_page.py b/src/packages_page/packages_page.py index ad9a9a2..cb887ff 100644 --- a/src/packages_page/packages_page.py +++ b/src/packages_page/packages_page.py @@ -10,6 +10,7 @@ class PackagesPage(Adw.BreakpointBin): packages_toast_overlay = gtc() sidebar_button = gtc() refresh_button = gtc() + search_entry = gtc() packages_list_box = gtc() # Referred to in the main window @@ -25,6 +26,13 @@ class PackagesPage(Adw.BreakpointBin): def row_select_handler(self, list_box, row): print(row.get_title()) + def filter_func(self, row): + search_text = self.search_entry.get_text().lower() + title = row.get_title().lower() + subtitle = row.get_subtitle().lower() + if search_text in title or search_text in subtitle: + return True + def __init__(self, main_window, **kwargs): super().__init__(**kwargs) @@ -33,6 +41,7 @@ class PackagesPage(Adw.BreakpointBin): # Apply HostInfo.get_flatpaks(callback=self.generate_list) + self.packages_list_box.set_filter_func(self.filter_func) self.__class__.instance = self # Connections @@ -40,5 +49,6 @@ class PackagesPage(Adw.BreakpointBin): main_window.main_split.connect("notify::collapsed", lambda sidebar, *_: self.sidebar_button.set_visible(sidebar.get_collapsed() or not sidebar.get_show_sidebar())) self.sidebar_button.connect("clicked", lambda *_: main_window.main_split.set_show_sidebar(True)) self.refresh_button.connect("clicked", lambda *_: HostInfo.get_flatpaks(callback=self.generate_list)) + self.search_entry.connect("search-changed", lambda *_: self.packages_list_box.invalidate_filter()) # self.packages_list_box.connect("row-selected", self.row_select_handler)