mirror of
https://github.com/morgan9e/warehouse
synced 2026-04-14 08:14:12 +09:00
Add search to package list
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user