mirror of
https://github.com/morgan9e/warehouse
synced 2026-04-14 00:04:08 +09:00
make refresh button refresh all pages
This commit is contained in:
@@ -29,9 +29,9 @@ template $WarehouseWindow: Adw.ApplicationWindow {
|
||||
[top]
|
||||
Adw.HeaderBar header_bar {
|
||||
[start]
|
||||
Button sidebar_button {
|
||||
icon-name: "dock-left-symbolic";
|
||||
tooltip-text: _("Hide Sidebar");
|
||||
Button refresh_button {
|
||||
icon-name: "arrow-circular-top-right-symbolic";
|
||||
tooltip-text: _("Refresh List");
|
||||
}
|
||||
[end]
|
||||
MenuButton main_menu {
|
||||
|
||||
@@ -23,6 +23,7 @@ import re
|
||||
import time
|
||||
|
||||
from gi.repository import Adw, Gdk, Gio, GLib, Gtk
|
||||
from .host_info import HostInfo
|
||||
from .packages_page import PackagesPage
|
||||
from .user_data_page import UserDataPage
|
||||
from .const import Config
|
||||
@@ -34,7 +35,7 @@ class WarehouseWindow(Adw.ApplicationWindow):
|
||||
gtc = Gtk.Template.Child
|
||||
main_breakpoint = gtc()
|
||||
main_split = gtc()
|
||||
sidebar_button = gtc()
|
||||
refresh_button = gtc()
|
||||
navigation_row_listbox = gtc()
|
||||
packages_row = gtc()
|
||||
remotes_row = gtc()
|
||||
@@ -65,6 +66,20 @@ class WarehouseWindow(Adw.ApplicationWindow):
|
||||
else:
|
||||
self.main_split.set_content(page(main_window=self))
|
||||
|
||||
def start_loading(self, *args):
|
||||
for _, page in self.pages.items():
|
||||
if page.instance:
|
||||
page.instance.start_loading()
|
||||
|
||||
def end_loading(self, *args):
|
||||
for _, page in self.pages.items():
|
||||
if page.instance:
|
||||
page.instance.end_loading()
|
||||
|
||||
def refresh_handler(self, *args):
|
||||
self.start_loading()
|
||||
HostInfo.get_flatpaks(callback=self.end_loading)
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@@ -94,7 +109,10 @@ class WarehouseWindow(Adw.ApplicationWindow):
|
||||
event_controller.connect("key-pressed", self.key_handler)
|
||||
self.navigation_row_listbox.connect("row-activated", self.navigation_handler)
|
||||
# file_drop.connect("drop", self.drop_callback)
|
||||
self.sidebar_button.connect("clicked", lambda *_: self.main_split.set_show_sidebar(False))
|
||||
self.refresh_button.connect("clicked", self.refresh_handler)
|
||||
|
||||
self.navigation_row_listbox.get_row_at_index(0).activate()
|
||||
self.main_split.set_show_sidebar(True)
|
||||
|
||||
self.start_loading()
|
||||
HostInfo.get_flatpaks(callback=self.end_loading)
|
||||
|
||||
@@ -36,11 +36,6 @@ template $PackagesPage : Adw.BreakpointBin {
|
||||
icon-name: "loupe-large-symbolic";
|
||||
tooltip-text: _("Search Packages");
|
||||
}
|
||||
[start]
|
||||
Button refresh_button {
|
||||
icon-name: "arrow-circular-top-right-symbolic";
|
||||
tooltip-text: _("Refresh List");
|
||||
}
|
||||
[end]
|
||||
ToggleButton filter_button {
|
||||
icon-name: "funnel-symbolic";
|
||||
|
||||
@@ -22,7 +22,6 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
no_results = gtc()
|
||||
sidebar_button = gtc()
|
||||
filter_button = gtc()
|
||||
refresh_button = gtc()
|
||||
search_bar = gtc()
|
||||
search_entry = gtc()
|
||||
packages_split = gtc()
|
||||
@@ -223,7 +222,7 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
details = err.stderr if type(err) == subprocess.CalledProcessError else str(err)
|
||||
self.packages_toast_overlay.add_toast(ErrorToast(_("Could not uninstall packages"), details).toast)
|
||||
else:
|
||||
self.refresh_handler()
|
||||
self.main_window.refresh_handler()
|
||||
GLib.idle_add(lambda *__: self.packages_toast_overlay.add_toast(Adw.Toast(title=_("Uninstalled Packages"))))
|
||||
|
||||
Gio.Task.new(None, None, callback).run_in_thread(thread)
|
||||
@@ -239,12 +238,14 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
dialog.connect("response", on_response)
|
||||
dialog.present(self.main_window)
|
||||
|
||||
def refresh_handler(self, *args):
|
||||
def start_loading(self):
|
||||
self.packages_navpage.set_title(_("Packages"))
|
||||
self.selected_rows.clear()
|
||||
self.select_button.set_active(False)
|
||||
self.set_status(self.loading_packages)
|
||||
HostInfo.get_flatpaks(callback=self.generate_list)
|
||||
|
||||
def end_loading(self):
|
||||
self.generate_list()
|
||||
|
||||
def select_button_handler(self, button):
|
||||
self.set_selection_mode(button.get_active())
|
||||
@@ -274,7 +275,6 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
|
||||
def __init__(self, main_window, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
HostInfo.get_flatpaks(callback=self.generate_list)
|
||||
|
||||
# Extra Object Creation
|
||||
self.main_window = main_window
|
||||
@@ -293,14 +293,11 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
self.__class__.instance = self
|
||||
|
||||
# Connections
|
||||
main_window.main_split.connect("notify::show-sidebar", lambda sidebar, *_: self.sidebar_button.set_visible(sidebar.get_collapsed() or not sidebar.get_show_sidebar()))
|
||||
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.sidebar_button.connect("clicked", lambda *_, ms=main_window.main_split: ms.set_show_sidebar(not ms.get_show_sidebar() if not ms.get_collapsed() else True))
|
||||
|
||||
self.search_entry.connect("search-changed", self.on_invalidate)
|
||||
self.search_bar.set_key_capture_widget(main_window)
|
||||
self.packages_list_box.connect("row-activated", self.row_activate_handler)
|
||||
self.refresh_button.connect("clicked", self.refresh_handler)
|
||||
self.select_button.connect("clicked", self.select_button_handler)
|
||||
self.filter_button.connect("toggled", self.filter_button_handler)
|
||||
self.reset_filters_button.connect("clicked", lambda *_: self.filters_page.reset_filters())
|
||||
|
||||
@@ -56,6 +56,12 @@ class UserDataPage(Adw.BreakpointBin):
|
||||
elif self.switcher_bar.get_reveal():
|
||||
self.header_bar.set_show_title(False)
|
||||
|
||||
def start_loading(self, *args):
|
||||
pass
|
||||
|
||||
def end_loading(self, *args):
|
||||
pass
|
||||
|
||||
def __init__(self, main_window, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@@ -70,10 +76,8 @@ class UserDataPage(Adw.BreakpointBin):
|
||||
self.flow_box.get_child_at_index(i).set_focusable(False)
|
||||
|
||||
# Connections
|
||||
main_window.main_split.connect("notify::show-sidebar", lambda sidebar, *_: self.sidebar_button.set_visible(sidebar.get_collapsed() or not sidebar.get_show_sidebar()))
|
||||
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.sidebar_button.set_visible(main_window.main_split.get_collapsed())
|
||||
self.sidebar_button.connect("clicked", lambda *_, ms=main_window.main_split: ms.set_show_sidebar(not ms.get_show_sidebar() if not ms.get_collapsed() else True))
|
||||
|
||||
self.adj.connect("value-changed", self.show_title_handler)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user