Handle no remotes in the filters page

This commit is contained in:
Heliguy
2024-08-25 17:04:29 -04:00
parent 39f27c094d
commit 9af38d5f3c
3 changed files with 33 additions and 26 deletions

View File

@@ -110,29 +110,23 @@ class FiltersPage(Adw.NavigationPage):
def generate_remote_filters(self):
for row in self.remote_rows:
self.remotes_group.remove(row)
self.remote_rows.clear()
# if len(HostInfo.remotes) < 2 and len(list(HostInfo.remotes.items())[0][1]) < 2:
# self.remotes_group.set_visible(False)
# if self.remotes_string != "all":
# self.remotes_string = "all"
# self.settings.set_string("remotes-list", self.remotes_string)
# self.packages_page.apply_filters()
# return
for i, installation in enumerate(HostInfo.installations):
try:
for remote in HostInfo.remotes[installation]:
# if remote.disabled:
# continue
row = FilterRow(remote, installation)
row.set_title(remote.title)
row.set_subtitle(_("Installation: {}").format(installation))
row.check_button.set_active(f"{remote.name}<>{installation}" in self.remotes_string)
row.check_button.connect("toggled", lambda *_, row=row: self.remote_row_check_handler(row))
row.set_visible(self.all_remotes_switch.get_active())
self.remote_rows.append(row)
self.remotes_group.add(row)
except KeyError:
pass
for installation, remotes in HostInfo.remotes.items():
for remote in remotes:
if remote.disabled:
continue
row = FilterRow(remote, installation)
row.set_title(remote.title)
row.set_subtitle(_("Installation: {}").format(installation))
row.check_button.set_active(f"{remote.name}<>{installation}" in self.remotes_string)
row.check_button.connect("toggled", lambda *_, row=row: self.remote_row_check_handler(row))
row.set_visible(self.all_remotes_switch.get_active())
self.remote_rows.append(row)
self.remotes_group.add(row)
self.remotes_group.set_visible(len(self.remote_rows) > 1)
self.all_remotes_switch.set_active("all" != self.remotes_string)
def generate_runtime_filters(self):

View File

@@ -51,8 +51,11 @@ class RemoteRow(Adw.ActionRow):
self.menu_listbox.get_row_at_index(2).set_visible(False)
self.menu_listbox.get_row_at_index(3).set_visible(True)
self.parent_page.total_disabled -= 1
HostInfo.main_window.pages[HostInfo.main_window.install_row].start_loading()
HostInfo.main_window.pages[HostInfo.main_window.install_row].end_loading()
install_page = HostInfo.main_window.pages[HostInfo.main_window.install_row]
install_page.start_loading()
install_page.end_loading()
filters_page = HostInfo.main_window.pages[HostInfo.main_window.packages_row].filters_page
filters_page.generate_filters()
if self.parent_page.total_disabled == 0:
self.parent_page.show_disabled_button.set_active(False)
self.parent_page.show_disabled_button.set_visible(False)
@@ -71,8 +74,14 @@ class RemoteRow(Adw.ActionRow):
self.parent_page.show_disabled_button.set_visible(True)
self.parent_page.total_disabled += 1
self.parent_page.none_visible_handler()
HostInfo.main_window.pages[HostInfo.main_window.install_row].start_loading()
HostInfo.main_window.pages[HostInfo.main_window.install_row].end_loading()
install_page = HostInfo.main_window.pages[HostInfo.main_window.install_row]
install_page.start_loading()
install_page.end_loading()
filters_page = HostInfo.main_window.pages[HostInfo.main_window.packages_row].filters_page
filters_page.settings.reset("remotes-list")
filters_page.all_remotes_switch.set_active(False)
filters_page.generate_filters()
filters_page.packages_page.apply_filters()
def thread(*args):
if self.remote.disabled:

View File

@@ -175,6 +175,10 @@ class RemotesPage(Adw.NavigationPage):
if error[0]:
self.toast_overlay.add_toast(ErrorToast(_("Could not remove remote"), str(error[0])).toast)
else:
filters_page = HostInfo.main_window.pages[HostInfo.main_window.packages_row].filters_page
filters_page.settings.reset("remotes-list")
filters_page.all_remotes_switch.set_active(False)
# filters_page.packages_page.apply_filters()
self.main_window.refresh_handler()
self.toast_overlay.add_toast(Adw.Toast(title=_("Removed {}").format(row.remote.title)))