mirror of
https://github.com/morgan9e/warehouse
synced 2026-04-14 00:04:08 +09:00
mask and pin switches toggle status icons on the rows
This commit is contained in:
@@ -155,6 +155,7 @@ class Flatpak:
|
||||
self.dependant_runtime = None
|
||||
self.failed_app_run = None
|
||||
self.failed_mask = None
|
||||
self.app_row = None
|
||||
|
||||
try:
|
||||
self.is_masked = self.info["id"] in HostInfo.masks[self.info["installation"]]
|
||||
|
||||
@@ -88,13 +88,14 @@ template $PackagesPage : Adw.BreakpointBin {
|
||||
can-shrink: true;
|
||||
}
|
||||
}
|
||||
Button {
|
||||
MenuButton copy_button {
|
||||
styles ["raised"]
|
||||
Adw.ButtonContent {
|
||||
icon-name: "edit-copy-symbolic";
|
||||
label: _("Copy");
|
||||
can-shrink: true;
|
||||
}
|
||||
popover: copy_pop;
|
||||
}
|
||||
Button {
|
||||
styles ["raised"]
|
||||
@@ -120,4 +121,22 @@ template $PackagesPage : Adw.BreakpointBin {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Popover copy_pop {
|
||||
styles ["menu"]
|
||||
ListBox copy_menu {
|
||||
Label copy_names {
|
||||
label: _("Copy Names");
|
||||
}
|
||||
Label copy_ids {
|
||||
label: _("Copy IDs");
|
||||
}
|
||||
Label copy_refs {
|
||||
label: _("Copy Refs");
|
||||
}
|
||||
Label copy_data {
|
||||
label: _("Copy Data Paths");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35,6 +35,7 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
self.packages_list_box.remove_all()
|
||||
for package in HostInfo.flatpaks:
|
||||
row = AppRow(package)
|
||||
package.app_row = row
|
||||
row.masked_status_icon.set_visible(package.is_masked)
|
||||
row.pinned_status_icon.set_visible(package.is_pinned)
|
||||
row.eol_package_package_status_icon.set_visible(package.is_eol)
|
||||
@@ -78,7 +79,7 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
return
|
||||
self.status_view.set_content(status_box)
|
||||
|
||||
def refresh_button_handler(self, *args):
|
||||
def refresh_handler(self, *args):
|
||||
self.set_status(self.loading_status)
|
||||
HostInfo.get_flatpaks(callback=self.generate_list)
|
||||
|
||||
@@ -101,7 +102,7 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
|
||||
# Extra Object Creation
|
||||
self.main_window = main_window
|
||||
self.properties_page = PropertiesPage(main_window)
|
||||
self.properties_page = PropertiesPage(main_window, self)
|
||||
self.filters_page = FiltersPage(main_window, self)
|
||||
self.loading_status = StatusBox(_("Fetching Packages"), _("This should only take a moment"))
|
||||
|
||||
@@ -121,7 +122,7 @@ class PackagesPage(Adw.BreakpointBin):
|
||||
self.search_entry.connect("search-changed", lambda *_: self.packages_list_box.invalidate_filter())
|
||||
self.search_bar.set_key_capture_widget(main_window)
|
||||
self.packages_list_box.connect("row-activated", self.row_select_handler)
|
||||
self.refresh_button.connect("clicked", self.refresh_button_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.packages_split.connect("notify::show-content", self.filter_page_handler)
|
||||
|
||||
@@ -179,6 +179,7 @@ class PropertiesPage(Adw.NavigationPage):
|
||||
response = _("Disabled Updates") if state else _("Enabled Updates")
|
||||
self.toast_overlay.add_toast(Adw.Toast(title=response))
|
||||
GLib.idle_add(lambda *_: self.mask_switch.set_active(state))
|
||||
self.package.app_row.masked_status_icon.set_visible(state)
|
||||
|
||||
self.package.set_mask(state, callback)
|
||||
|
||||
@@ -194,11 +195,12 @@ class PropertiesPage(Adw.NavigationPage):
|
||||
response = _("Disabled Autoremoval") if state else _("Enabled Autoremoval")
|
||||
self.toast_overlay.add_toast(Adw.Toast(title=response))
|
||||
GLib.idle_add(lambda *_: self.pin_switch.set_active(state))
|
||||
self.package.app_row.pinned_status_icon.set_visible(state)
|
||||
|
||||
self.package.set_pin(state, callback)
|
||||
|
||||
def runtime_row_handler(self, *args):
|
||||
new_page = self.__class__(self.main_window)
|
||||
new_page = self.__class__(self.main_window, self.packages_page)
|
||||
new_page.set_properties(self.package.dependant_runtime)
|
||||
self.nav_view.push(new_page)
|
||||
|
||||
@@ -220,7 +222,7 @@ class PropertiesPage(Adw.NavigationPage):
|
||||
page = ChangeVersionPage(self.main_window, self.package)
|
||||
self.nav_view.push(page)
|
||||
|
||||
def __init__(self, main_window, **kwargs):
|
||||
def __init__(self, main_window, packages_page, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
# Extra Object Creation
|
||||
@@ -246,6 +248,7 @@ class PropertiesPage(Adw.NavigationPage):
|
||||
"date": self.date_row,
|
||||
}
|
||||
|
||||
self.packages_page = packages_page
|
||||
self.__class__.main_window = main_window
|
||||
|
||||
# Connections
|
||||
|
||||
Reference in New Issue
Block a user