mirror of
https://github.com/aclist/dztui.git
synced 2026-08-28 10:47:15 +02:00
feat: statusbar substack WIP
This commit is contained in:
parent
495d6263bb
commit
3092e52515
@ -421,8 +421,10 @@ class Controller:
|
||||
total_mods, total_size = self.calc_mod_size()
|
||||
msg = format_mods(total_size, total_mods)
|
||||
# TODO: combine
|
||||
self.mediator.statusbar.set_text(msg)
|
||||
self.mediator.statusbar.spinner.stop()
|
||||
meta = self.mediator.statusbar.statusbar.get_context_id("Mods")
|
||||
self.mediator.statusbar.statusbar.push(meta, msg)
|
||||
#meta = self.mediator.statusbar.set_text(msg)
|
||||
|
||||
|
||||
def calc_mod_size(self) -> tuple[int, int]:
|
||||
model = self.model_man.get_mod_store()
|
||||
|
||||
@ -43,6 +43,8 @@ class Statusbar(Gtk.Grid):
|
||||
if string is None:
|
||||
return
|
||||
meta = self.statusbar.get_context_id("Statusbar")
|
||||
# TODO: substacks
|
||||
# get_context_id(ServerTab)
|
||||
self.statusbar.push(meta, string)
|
||||
|
||||
def refresh(self, row: "RowType") -> None:
|
||||
|
||||
@ -59,11 +59,12 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
||||
self.controller.toggle_server_panels(False)
|
||||
|
||||
def _on_keypress(self, widget: Self, event: Gdk.EventKey) -> None:
|
||||
|
||||
match event.keyval:
|
||||
case Gdk.KEY_n:
|
||||
self.notebook.next_page()
|
||||
case Gdk.KEY_p:
|
||||
if event.state is Gdk.ModifierType.CONTROL_MASK:
|
||||
return
|
||||
self.notebook.prev_page()
|
||||
case _:
|
||||
return
|
||||
|
||||
@ -46,7 +46,9 @@ class ServerTreeView(TreeView):
|
||||
|
||||
QUEUE_CHECK_DELAY = 200
|
||||
|
||||
self.controller = controller
|
||||
self.enum = enum
|
||||
|
||||
self.loaded = False
|
||||
self.query_func: Callable = None
|
||||
|
||||
@ -56,7 +58,6 @@ class ServerTreeView(TreeView):
|
||||
|
||||
self.menu = Gtk.Menu()
|
||||
self.menu.connect("key-press-event", self._on_key)
|
||||
self.controller = controller
|
||||
|
||||
self.set_context_menu(menu)
|
||||
self.set_fixed_height_mode(True)
|
||||
@ -67,7 +68,6 @@ class ServerTreeView(TreeView):
|
||||
|
||||
prefs = self.controller.get_prefs()
|
||||
columns = prefs.paths.columns
|
||||
|
||||
try:
|
||||
data = JSON.read_json(columns)
|
||||
valid_json = True
|
||||
@ -75,6 +75,7 @@ class ServerTreeView(TreeView):
|
||||
logger.critical(e)
|
||||
valid_json = False
|
||||
|
||||
# TODO: abstract
|
||||
browser_cols = strings.browser_cols
|
||||
for i, column_title in enumerate(browser_cols):
|
||||
renderer = Gtk.CellRendererText()
|
||||
@ -114,7 +115,6 @@ class ServerTreeView(TreeView):
|
||||
self.connect("generic_treesel_changed", self._parent_selection_changed)
|
||||
self.connect("map", self._on_map)
|
||||
self.connect("unmap", self._on_unmap)
|
||||
|
||||
self.connect("focus-in-event", self._on_kb_focus)
|
||||
|
||||
GLib.timeout_add(QUEUE_CHECK_DELAY, self._check_result_queue)
|
||||
@ -149,6 +149,10 @@ class ServerTreeView(TreeView):
|
||||
col.set_fixed_width(width)
|
||||
|
||||
def _on_kb_focus(self, a, b) -> None:
|
||||
# TODO: may generate superfluous calc events when page changed but selection is the same
|
||||
# this can probably be dropped in favor of statusbar cache system
|
||||
# meta = self.controller.mediator.statusbar.statusbar.get_context_id("Mods")
|
||||
# self.controller.mediator.statusbar.statusbar.pop(meta)
|
||||
self.emit("on_distcalc_started")
|
||||
|
||||
def get_enum(self) -> None:
|
||||
@ -163,6 +167,7 @@ class ServerTreeView(TreeView):
|
||||
self.controller.mediator.grid.conpan.lan.set_visible(False)
|
||||
|
||||
def _on_key(self, menu: Gtk.Menu, event: Gdk.EventKey) -> bool | None:
|
||||
# TODO: abstract as navigable context menu
|
||||
if not is_navkey(event.keyval):
|
||||
return False
|
||||
sel = menu.get_selected_item()
|
||||
@ -258,6 +263,11 @@ class ServerTreeView(TreeView):
|
||||
case Gdk.KEY_i:
|
||||
# TODO:
|
||||
self.controller.mediator.grid.conpan.add_panel.entry.grab_focus()
|
||||
case Gdk.KEY_p:
|
||||
if self.enum is ServerTab.LAN:
|
||||
self.controller.mediator.grid.conpan.lan.entry.grab_focus()
|
||||
case Gdk.KEY_c:
|
||||
print("copy to clipboard")
|
||||
else:
|
||||
match event.keyval:
|
||||
case Gdk.KEY_l | Gdk.KEY_Right:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user