reuse code for sidebar button

This commit is contained in:
Heliguy
2024-08-26 10:37:05 -04:00
parent 485a845b5e
commit 2d68866aa5
13 changed files with 30 additions and 42 deletions

19
src/gtk/sidebar_button.py Normal file
View File

@@ -0,0 +1,19 @@
from gi.repository import Adw, Gtk, Gdk, GLib
from .host_info import HostInfo
class SidebarButton(Gtk.ToggleButton):
__gtype_name__ = "SidebarButton"
def __init__(self, **kwargs):
super().__init__(**kwargs)
# Extra Object Creation
main_split = HostInfo.main_window.main_split
# Connections
main_split.connect("notify::show-sidebar", lambda *_: self.set_active(main_split.get_show_sidebar()))
self.connect("toggled", lambda *_: main_split.set_show_sidebar(self.get_active()))
# Apply
self.set_icon_name("dock-left-symbolic")
self.set_tooltip_text(_("Show Sidebar"))

View File

@@ -12,10 +12,7 @@ template $SelectPage : Adw.NavigationPage {
[top]
Adw.HeaderBar {
[start]
ToggleButton sidebar_button {
icon-name: "dock-left-symbolic";
tooltip-text: _("Show Sidebar");
}
$SidebarButton {}
[start]
Button test {
label: "test";

View File

@@ -2,6 +2,7 @@ from gi.repository import Adw, Gtk, GLib, Gio
from .host_info import HostInfo
from .error_toast import ErrorToast
from .results_page import ResultsPage
from .sidebar_button import SidebarButton
@Gtk.Template(resource_path="/io/github/flattool/Warehouse/install_page/select_page.ui")
class SelectPage(Adw.NavigationPage):
@@ -9,7 +10,6 @@ class SelectPage(Adw.NavigationPage):
gtc = Gtk.Template.Child
nav_view = gtc()
sidebar_button = gtc()
results_page = gtc()
remotes_group = gtc()
add_remote_row = gtc()
@@ -40,11 +40,8 @@ class SelectPage(Adw.NavigationPage):
super().__init__(**kwargs)
# Extra Object Creation
ms = HostInfo.main_window.main_split
# Connections
ms.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
self.sidebar_button.connect("toggled", lambda *_: ms.set_show_sidebar(self.sidebar_button.get_active()))
self.add_remote_row.connect("activated", lambda *_: HostInfo.main_window.activate_row(HostInfo.main_window.remotes_row))
self.nav_view.connect("popped", self.results_page.on_back)
self.remote_rows = []

View File

@@ -143,3 +143,4 @@ class WarehouseWindow(Adw.ApplicationWindow):
self.start_loading()
HostInfo.get_flatpaks(callback=self.end_loading)
# GLib.idle_add(lambda *_: self.main_split.set_show_sidebar(False))

View File

@@ -69,6 +69,7 @@ warehouse_sources = [
'host_info.py',
'packages_page/app_row.py',
'gtk/error_toast.py',
'gtk/sidebar_button.py',
'main_window/window.py',
'packages_page/packages_page.py',
'packages_page/filters_page.py',

View File

@@ -27,10 +27,7 @@ template $PackagesPage : Adw.BreakpointBin {
[top]
Adw.HeaderBar {
[start]
ToggleButton sidebar_button {
icon-name: "dock-left-symbolic";
tooltip-text: _("Show Sidebar");
}
$SidebarButton {}
[start]
ToggleButton search_button {
icon-name: "loupe-large-symbolic";

View File

@@ -4,6 +4,7 @@ from .app_row import AppRow
from .error_toast import ErrorToast
from .properties_page import PropertiesPage
from .filters_page import FiltersPage
from .sidebar_button import SidebarButton
import subprocess
@Gtk.Template(resource_path="/io/github/flattool/Warehouse/packages_page/packages_page.ui")
@@ -20,7 +21,6 @@ class PackagesPage(Adw.BreakpointBin):
reset_filters_button = gtc()
no_packages = gtc()
no_results = gtc()
sidebar_button = gtc()
filter_button = gtc()
search_bar = gtc()
search_entry = gtc()
@@ -303,7 +303,6 @@ class PackagesPage(Adw.BreakpointBin):
self.is_result = False
self.prev_status = None
self.selected_rows = []
ms = main_window.main_split
# Apply
# self.set_status("loading_packages")
@@ -314,8 +313,6 @@ class PackagesPage(Adw.BreakpointBin):
self.__class__.instance = self
# Connections
ms.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
self.sidebar_button.connect("toggled", lambda *_: ms.set_show_sidebar(self.sidebar_button.get_active()))
self.search_entry.connect("search-changed", self.on_invalidate)
self.search_bar.set_key_capture_widget(main_window)

View File

@@ -7,10 +7,7 @@ template $RemotesPage : Adw.NavigationPage {
[top]
Adw.HeaderBar header_bar {
[start]
ToggleButton sidebar_button {
icon-name: "dock-left-symbolic";
tooltip-text: _("Show Sidebar");
}
$SidebarButton {}
[start]
ToggleButton search_button {
icon-name: "loupe-large-symbolic";

View File

@@ -71,7 +71,6 @@ class RemotesPage(Adw.NavigationPage):
__gtype_name__ = 'RemotesPage'
gtc = Gtk.Template.Child
sidebar_button = gtc()
search_button = gtc()
search_bar = gtc()
search_entry = gtc()
@@ -261,15 +260,12 @@ class RemotesPage(Adw.NavigationPage):
# Extra Object Creation
self.__class__.instance = self
self.main_window = main_window
ms = main_window.main_split
self.search_bar.set_key_capture_widget(main_window)
self.current_remote_rows = []
self.filter_setting = Gio.Settings.new("io.github.flattool.Warehouse.filter")
self.total_disabled = 0
# Connections
ms.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
self.sidebar_button.connect("toggled", lambda *_: ms.set_show_sidebar(self.sidebar_button.get_active()))
self.file_remote_row.connect("activated", lambda *_: self.add_file_handler())
self.custom_remote_row.connect("activated", lambda *_: AddRemoteDialog(main_window, self).present(main_window))
self.search_entry.connect("search-changed", self.on_search)

View File

@@ -35,10 +35,7 @@ template $SnapshotPage : Adw.BreakpointBin {
[top]
Adw.HeaderBar header_bar {
[start]
ToggleButton sidebar_button {
icon-name: "dock-left-symbolic";
tooltip-text: _("Show Sidebar");
}
$SidebarButton {}
[start]
ToggleButton search_button {
icon-name: "loupe-large-symbolic";

View File

@@ -3,6 +3,7 @@ from .host_info import HostInfo
from .error_toast import ErrorToast
from .app_row import AppRow
from .snapshots_list_page import SnapshotsListPage
from .sidebar_button import SidebarButton
import os, subprocess
class LeftoverSnapshotRow(Adw.ActionRow):
@@ -29,7 +30,6 @@ class SnapshotPage(Adw.BreakpointBin):
__gtype_name__ = "SnapshotPage"
gtc = Gtk.Template.Child
sidebar_button = gtc()
toast_overlay = gtc()
active_box = gtc()
active_listbox = gtc()
@@ -163,7 +163,6 @@ class SnapshotPage(Adw.BreakpointBin):
super().__init__(**kwargs)
# Extra Object Creation
ms = main_window.main_split
self.__class__.instance = self
self.main_window = main_window
self.active_snapshot_paks = []
@@ -173,11 +172,8 @@ class SnapshotPage(Adw.BreakpointBin):
self.list_page = SnapshotsListPage(self)
# Connections
ms.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
self.sidebar_button.connect("toggled", lambda *_: ms.set_show_sidebar(self.sidebar_button.get_active()))
self.active_listbox.connect("row-activated", self.active_select_handler)
self.leftover_listbox.connect("row-activated", self.leftover_select_handler)
# Apply
self.sidebar_button.set_active(ms.get_show_sidebar())
self.split_view.set_content(self.list_page)##

View File

@@ -28,10 +28,7 @@ template $UserDataPage : Adw.BreakpointBin {
}
;
[start]
ToggleButton sidebar_button {
icon-name: "dock-left-symbolic";
tooltip-text: _("Show Sidebar");
}
$SidebarButton {}
[start]
ToggleButton search_button {
icon-name: "system-search-symbolic";

View File

@@ -3,6 +3,7 @@ from .error_toast import ErrorToast
from .data_box import DataBox
from .data_subpage import DataSubpage
from .host_info import HostInfo
from .sidebar_button import SidebarButton
import os, subprocess
import time
@@ -14,7 +15,6 @@ class UserDataPage(Adw.BreakpointBin):
bpt = gtc()
header_bar = gtc()
switcher_bar = gtc()
sidebar_button = gtc()
search_button = gtc()
select_button = gtc()
sort_button = gtc()
@@ -200,12 +200,8 @@ class UserDataPage(Adw.BreakpointBin):
title=_("Leftover Data"),
icon_name="folder-templates-symbolic",
)
self.sidebar_button.set_active(ms.get_show_sidebar())
# Connections
# 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))
ms.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
self.sidebar_button.connect("toggled", lambda *_: ms.set_show_sidebar(self.sidebar_button.get_active()))
self.stack.connect("notify::visible-child", self.view_change_handler)
self.select_button.connect("toggled", self.select_toggle_handler)