mirror of
https://github.com/aclist/dztui.git
synced 2026-08-28 02:37:20 +02:00
feat: update saved tab label
This commit is contained in:
parent
0949a0d8a9
commit
af4d79f190
@ -22,6 +22,11 @@ class Emitter(GObject.GObject):
|
||||
"""User invoked Ctrl-f keybinding from ServerTreeView"""
|
||||
pass
|
||||
|
||||
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=())
|
||||
def saved_servers_changed(self) -> None:
|
||||
"""Record was added/removed from Saved Servers model"""
|
||||
pass
|
||||
|
||||
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=())
|
||||
def request_maps_focus(self) -> None:
|
||||
"""User invoked Ctrl-m keybinding from ServerTreeView"""
|
||||
|
||||
@ -41,7 +41,9 @@ class ProxyModelManager:
|
||||
self.success = True
|
||||
|
||||
def has_control_model(self) -> bool:
|
||||
pass
|
||||
if self.control_model is None:
|
||||
return False
|
||||
return True
|
||||
|
||||
def append_row(self, row: list) -> None:
|
||||
self.proxy_model.append(row)
|
||||
|
||||
@ -264,11 +264,13 @@ class ServerModelManager:
|
||||
# NOTE: abort early if Saved Servers tab was not loaded yet
|
||||
config_man.remove_saved_server(fqip)
|
||||
if proxy_man.has_control_model() is False:
|
||||
self.thread_man.set_cleanup_func(StoredFunc(self._cleanup_when_no_model))
|
||||
return
|
||||
proxy_man.remove_row_from_control(record)
|
||||
else:
|
||||
config_man.add_saved_server(fqip)
|
||||
if proxy_man.has_control_model() is False:
|
||||
self.thread_man.set_cleanup_func(StoredFunc(self._cleanup_when_no_model))
|
||||
return
|
||||
proxy_man.append_row_to_control(record)
|
||||
|
||||
@ -276,6 +278,9 @@ class ServerModelManager:
|
||||
self._sort_unique_maps(control_model)
|
||||
self.thread_man.set_cleanup_func(StoredFunc(self._cleanup_single_ip))
|
||||
|
||||
def _cleanup_when_no_model(self) -> None:
|
||||
self.emitter.emit("saved_servers_changed")
|
||||
|
||||
def _dump_history(self) -> None:
|
||||
history = self.controller.get_prefs().paths.history
|
||||
try:
|
||||
@ -325,6 +330,7 @@ class ServerModelManager:
|
||||
|
||||
self.emitter.emit("servers_loaded_init")
|
||||
self.first_iteration = False
|
||||
self.emitter.emit("saved_servers_changed")
|
||||
|
||||
def _update_maps(self) -> None:
|
||||
filter_man = self.tv.get_filter_man()
|
||||
|
||||
@ -56,6 +56,15 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
||||
self.connect("unmap", self._on_unmap)
|
||||
|
||||
self.emitter.connect("servers_loaded", self._on_servers_loaded)
|
||||
self.emitter.connect("saved_servers_changed", self._on_saved_servers_changed)
|
||||
|
||||
def _on_saved_servers_changed(self, emitter: "Emitter") -> None:
|
||||
saved = 1
|
||||
if self.notebook.get_current_page() == saved:
|
||||
return
|
||||
page = self.notebook.get_nth_page(saved)
|
||||
label = self.notebook.get_tab_label(page)
|
||||
label.set_text(f"{server_labels.saved}*")
|
||||
|
||||
def _on_servers_loaded(self, emitter: "Emitter", tab: "ServerTab") -> None:
|
||||
# NOTE: workaround for GTK bug where fullscreen causes headers to vanish when model is None
|
||||
@ -101,13 +110,8 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
||||
if self.controller.loaded is False:
|
||||
return
|
||||
|
||||
# TODO: wipe statusbar when changing pages
|
||||
|
||||
label = self.notebook.get_tab_label_text(child)
|
||||
if label is None:
|
||||
return
|
||||
|
||||
# TODO: strings, tab activity notifier
|
||||
# TODO: strings
|
||||
text = label.strip("*")
|
||||
self.notebook.set_tab_label_text(child, text)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user