Add search to package list

This commit is contained in:
heliguy
2024-07-05 22:03:36 -04:00
parent 5952147417
commit 3f7d70fddb

View File

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