mirror of
https://github.com/morgan9e/warehouse
synced 2026-04-15 00:34:42 +09:00
reuse code for sidebar button
This commit is contained in:
19
src/gtk/sidebar_button.py
Normal file
19
src/gtk/sidebar_button.py
Normal 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"))
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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)##
|
||||
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user