mirror of
https://github.com/aclist/dztui.git
synced 2026-11-07 10:30:40 +01:00
fix: dynamic statusbar WIP
This commit is contained in:
1 parent
9cc1ece0d7
commit
934ff91f05
9 files changed
+189
-122
No files matched your search
@@ -7,6 +7,7 @@ from dzgui.views.trees.tree_servers import ServerTreeView
|
||||
from dzgui.util.strings import server_labels
|
||||
|
||||
import gi
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import Gtk, Gdk, GLib # noqa E402
|
||||
|
||||
@@ -15,6 +16,7 @@ logger = logging.getLogger(__name__)
|
||||
if TYPE_CHECKING:
|
||||
from dzgui.controllers.mc import Controller
|
||||
|
||||
|
||||
class ServerNotebook(Gtk.ScrolledWindow):
|
||||
def __init__(self, controller: "Controller"):
|
||||
super().__init__()
|
||||
@@ -24,9 +26,13 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
||||
self.controller.register_widget("servers", self)
|
||||
self.notebook = Gtk.Notebook(show_tabs=True)
|
||||
|
||||
self.browser = ServerTreeView(controller, ServerTab.BROWSER, ContextMenuGroup.SERVER_BROWSER)
|
||||
self.browser = ServerTreeView(
|
||||
controller, ServerTab.BROWSER, ContextMenuGroup.SERVER_BROWSER
|
||||
)
|
||||
self.saved = ServerTreeView(controller, ServerTab.SAVED, ContextMenuGroup.SAVED)
|
||||
self.recent = ServerTreeView(controller, ServerTab.RECENT, ContextMenuGroup.RECENT)
|
||||
self.recent = ServerTreeView(
|
||||
controller, ServerTab.RECENT, ContextMenuGroup.RECENT
|
||||
)
|
||||
self.lan = ServerTreeView(controller, ServerTab.LAN, ContextMenuGroup.SCAN_LAN)
|
||||
|
||||
self.browser.set_query_func(self.controller.dump_test_1)
|
||||
@@ -50,6 +56,7 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
||||
self.connect("map", self._on_map)
|
||||
self.connect("unmap", self._on_unmap)
|
||||
|
||||
# TODO: strings
|
||||
self.set_crumbs("Server browser")
|
||||
|
||||
def _on_map(self, widget: Self) -> None:
|
||||
@@ -75,43 +82,28 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
||||
self.controller.set_crumbs(string)
|
||||
self.set_cached_label(string)
|
||||
|
||||
def _on_page_changed(self, notebook: Gtk.Notebook, child: Gtk.Widget, index: int) -> None:
|
||||
def _on_page_changed(
|
||||
self, notebook: Gtk.Notebook, child: Gtk.Widget, index: int
|
||||
) -> None:
|
||||
if self.controller.loaded is False:
|
||||
return
|
||||
|
||||
# self.controller.remove_statusbar("Servers")
|
||||
# TODO :signals
|
||||
# emit signal to crumbs
|
||||
# emit signal to statusbar
|
||||
# TODO: abstract
|
||||
label = self.notebook.get_tab_label_text(child)
|
||||
|
||||
if label is None:
|
||||
return
|
||||
|
||||
# TODO: strings
|
||||
text = label.strip("*")
|
||||
self.notebook.set_tab_label_text(child, text)
|
||||
|
||||
self.set_crumbs(text)
|
||||
|
||||
self.controller.present_servers()
|
||||
self.controller.populate_model()
|
||||
|
||||
# TODO: start with lan panel hidden
|
||||
# FIXME: grid conpan is not set up at init
|
||||
# TODO: refresh button only usable if LAN has servers?
|
||||
# or just remove it
|
||||
#if self.get_active_treeview() is self.lan:
|
||||
# self.controller.mediator.grid.conpan.lan.set_visible(True)
|
||||
#else:
|
||||
# self.controller.mediator.grid.conpan.lan.set_visible(False)
|
||||
|
||||
# TODO: put in controller
|
||||
# def query_test2(self) -> None:
|
||||
# # TODO: should trigger first page action after entire UI is loaded
|
||||
# self.controller.dump_test_1()
|
||||
#
|
||||
# def query_test(self) -> None:
|
||||
# data = (["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False])
|
||||
# return data
|
||||
|
||||
def set_cached_label(self, label: str) -> None:
|
||||
self.tab_cache = label
|
||||
|
||||
@@ -146,9 +138,13 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
||||
continue
|
||||
for col in tab.get_columns():
|
||||
if col.get_title() == title:
|
||||
self.controller.suppress_signal(tab, col, "_on_col_width_changed", True)
|
||||
self.controller.suppress_signal(
|
||||
tab, col, "_on_col_width_changed", True
|
||||
)
|
||||
col.set_fixed_width(width)
|
||||
self.controller.suppress_signal(tab, col, "_on_col_width_changed", False)
|
||||
self.controller.suppress_signal(
|
||||
tab, col, "_on_col_width_changed", False
|
||||
)
|
||||
|
||||
def get_tabs(self) -> tuple:
|
||||
return (self.browser, self.saved, self.recent, self.lan)
|
||||
Reference in new issue
Block a user