mirror of
https://github.com/aclist/dztui.git
synced 2026-08-29 03:06:56 +02:00
fix: refresh increment overwriting when changing tabs
This commit is contained in:
parent
26ee560cb4
commit
72024c5d43
@ -84,7 +84,6 @@ class Controller(GObject.GObject):
|
|||||||
self.emitter = Emitter()
|
self.emitter = Emitter()
|
||||||
self.emitter.connect("map_selection_changed", self._on_map_selection_changed)
|
self.emitter.connect("map_selection_changed", self._on_map_selection_changed)
|
||||||
self.emitter.connect("check_toggled", self._on_check_toggled)
|
self.emitter.connect("check_toggled", self._on_check_toggled)
|
||||||
self.emitter.connect("servers_loaded_init", self._on_servers_loaded_init)
|
|
||||||
|
|
||||||
# NOTE: suppress requests until entire UI is loaded
|
# NOTE: suppress requests until entire UI is loaded
|
||||||
self.loaded = False
|
self.loaded = False
|
||||||
@ -321,6 +320,7 @@ class Controller(GObject.GObject):
|
|||||||
self.mediator.filters.button_grid.block_toggles(True)
|
self.mediator.filters.button_grid.block_toggles(True)
|
||||||
self.populate_filter_prefs()
|
self.populate_filter_prefs()
|
||||||
self.mediator.filters.button_grid.block_toggles(False)
|
self.mediator.filters.button_grid.block_toggles(False)
|
||||||
|
self.emitter.emit("lan_page_initialized")
|
||||||
ServerModelManager(self, tv).load()
|
ServerModelManager(self, tv).load()
|
||||||
|
|
||||||
def populate_filter_prefs(self) -> None:
|
def populate_filter_prefs(self) -> None:
|
||||||
@ -347,16 +347,7 @@ class Controller(GObject.GObject):
|
|||||||
filter_man = self.get_filter_man()
|
filter_man = self.get_filter_man()
|
||||||
return filter_man.get_filters()
|
return filter_man.get_filters()
|
||||||
|
|
||||||
# TODO: rename
|
# FIXME: wipe maps store when changing tabs if model is none
|
||||||
def _on_servers_loaded_init(self, emitter: "Emitter") -> None:
|
|
||||||
"""Triggered after servers load but prior to maps loading"""
|
|
||||||
# FIXME: wipe maps store when changing tabs if model is none
|
|
||||||
# e.g. select recent, toggle map, then select lan -> not wiped
|
|
||||||
tv = self.get_active_treeview()
|
|
||||||
if tv.loaded is False:
|
|
||||||
return
|
|
||||||
store = self.get_map_store()
|
|
||||||
self.emitter.emit("load_maps", store)
|
|
||||||
|
|
||||||
def has_server_model(self) -> bool:
|
def has_server_model(self) -> bool:
|
||||||
treeview = self.get_active_treeview()
|
treeview = self.get_active_treeview()
|
||||||
|
|||||||
@ -243,9 +243,11 @@ class ServerModelManager:
|
|||||||
filter_man = self.tv.get_filter_man()
|
filter_man = self.tv.get_filter_man()
|
||||||
maps = self._get_new_maps()
|
maps = self._get_new_maps()
|
||||||
filter_man.set_unique_maps(maps)
|
filter_man.set_unique_maps(maps)
|
||||||
|
store = filter_man.get_map_store()
|
||||||
|
|
||||||
self.first_iteration = False
|
self.first_iteration = False
|
||||||
self.emitter.emit("servers_loaded_init")
|
self.emitter.emit("load_maps", store)
|
||||||
|
# self.emitter.emit("servers_loaded_init")
|
||||||
|
|
||||||
def add_to_history(self, record: dict[str, Any]) -> None:
|
def add_to_history(self, record: dict[str, Any]) -> None:
|
||||||
proxy_man = self._get_proxy_man()
|
proxy_man = self._get_proxy_man()
|
||||||
@ -378,24 +380,24 @@ class ServerModelManager:
|
|||||||
# NOTE: maps are set outside of thread because it triggers map changed signals
|
# NOTE: maps are set outside of thread because it triggers map changed signals
|
||||||
maps = self._get_new_maps()
|
maps = self._get_new_maps()
|
||||||
filter_man.set_unique_maps(maps)
|
filter_man.set_unique_maps(maps)
|
||||||
|
store = filter_man.get_map_store()
|
||||||
|
self.emitter.emit("load_maps", store)
|
||||||
|
|
||||||
self.first_iteration = False
|
self.first_iteration = False
|
||||||
self.emitter.emit("servers_loaded_init")
|
|
||||||
self.emitter.emit("saved_servers_changed")
|
self.emitter.emit("saved_servers_changed")
|
||||||
|
|
||||||
def _update_maps(self) -> None:
|
def _update_maps(self) -> None:
|
||||||
filter_man = self.tv.get_filter_man()
|
filter_man = self.tv.get_filter_man()
|
||||||
filter_man.set_unique_maps(self._get_new_maps())
|
filter_man.set_unique_maps(self._get_new_maps())
|
||||||
self.emitter.emit("servers_loaded_init")
|
store = filter_man.get_map_store()
|
||||||
|
self.emitter.emit("load_maps", store)
|
||||||
self.first_iteration = False
|
self.first_iteration = False
|
||||||
|
|
||||||
def _cleanup_on_success(self) -> None:
|
def _cleanup_on_success(self) -> None:
|
||||||
proxy = self._get_proxy_man().get_proxy_model()
|
proxy = self._get_proxy_man().get_proxy_model()
|
||||||
self.tv.set_model(proxy)
|
self.tv.set_model(proxy)
|
||||||
|
|
||||||
# TODO: servers_loaded vs servers_reloaded
|
|
||||||
self.emitter.emit("servers_loaded", self.enum)
|
self.emitter.emit("servers_loaded", self.enum)
|
||||||
|
|
||||||
if self.first_iteration:
|
if self.first_iteration:
|
||||||
self._update_maps()
|
self._update_maps()
|
||||||
|
|
||||||
|
|||||||
@ -94,9 +94,11 @@ class RefreshButton(IconTextButton):
|
|||||||
icon=REFRESH_ICON,
|
icon=REFRESH_ICON,
|
||||||
label=atomic_buttons.refresh,
|
label=atomic_buttons.refresh,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.controller = controller
|
self.controller = controller
|
||||||
emitter = self.controller.get_emitter()
|
emitter = self.controller.get_emitter()
|
||||||
self.loading = False
|
self.loading = False
|
||||||
|
self.clicked = False
|
||||||
|
|
||||||
self.time = 30
|
self.time = 30
|
||||||
|
|
||||||
@ -110,17 +112,21 @@ class RefreshButton(IconTextButton):
|
|||||||
|
|
||||||
def _on_refresh_clicked(self, button: Self) -> None:
|
def _on_refresh_clicked(self, button: Self) -> None:
|
||||||
"""Spawned in a thread"""
|
"""Spawned in a thread"""
|
||||||
self.loading = True
|
self.clicked = True
|
||||||
self.controller.refresh_tree()
|
self.controller.refresh_tree()
|
||||||
# TODO: get server tab enum
|
# TODO: get server tab enum
|
||||||
# if LAN tab, reload existing entries in place
|
# if LAN tab, reload existing entries in place
|
||||||
|
|
||||||
def start_decrement(self, emitter: "Emitter", tab: "ServerTab") -> None:
|
def start_decrement(self, emitter: "Emitter", tab: "ServerTab") -> None:
|
||||||
|
if self.clicked is False:
|
||||||
|
return
|
||||||
if self.loading:
|
if self.loading:
|
||||||
self.set_sensitive(False)
|
return
|
||||||
self.loading = False
|
self.set_sensitive(False)
|
||||||
self.show_time(True)
|
self.loading = True
|
||||||
GLib.timeout_add_seconds(1, self.decrement)
|
self.clicked = False
|
||||||
|
self.show_time(True)
|
||||||
|
GLib.timeout_add_seconds(1, self.decrement)
|
||||||
|
|
||||||
def decrement(self) -> bool:
|
def decrement(self) -> bool:
|
||||||
self.time -= 1
|
self.time -= 1
|
||||||
@ -128,6 +134,7 @@ class RefreshButton(IconTextButton):
|
|||||||
self.time = 30
|
self.time = 30
|
||||||
self.show_time(False)
|
self.show_time(False)
|
||||||
self.set_sensitive(True)
|
self.set_sensitive(True)
|
||||||
|
self.loading = False
|
||||||
return False
|
return False
|
||||||
self.show_time(True)
|
self.show_time(True)
|
||||||
return True
|
return True
|
||||||
|
|||||||
@ -107,16 +107,16 @@ class RightPanel(Gtk.Box):
|
|||||||
if page.loaded is True:
|
if page.loaded is True:
|
||||||
return
|
return
|
||||||
self.filters_vbox.set_sensitive(False)
|
self.filters_vbox.set_sensitive(False)
|
||||||
|
# TODO: unless it is lan page
|
||||||
|
#self.refresh_button.set_sensitive(False)
|
||||||
|
|
||||||
def _on_lan_page_init(self, emitter: "Emitter") -> None:
|
def _on_lan_page_init(self, emitter: "Emitter") -> None:
|
||||||
self.filters_vbox.set_sensitive(False)
|
self.filters_vbox.set_sensitive(False)
|
||||||
#self.refresh_button.set_sensitive(False)
|
|
||||||
|
|
||||||
def _on_servers_loaded(self, emitter: "Emitter", context: "ServerTab") -> None:
|
def _on_servers_loaded(self, emitter: "Emitter", context: "ServerTab") -> None:
|
||||||
# TODO: similar logic on notebook page change
|
# TODO: similar logic on notebook page change
|
||||||
state = self.controller.has_server_model()
|
state = self.controller.has_server_model()
|
||||||
for el in self.filters_vbox, self.refresh_button:
|
self.filters_vbox.set_sensitive(state)
|
||||||
el.set_sensitive(state)
|
|
||||||
|
|
||||||
def _on_version_clicked(self, widget: Gtk.EventBox, event: Gdk.EventButton) -> None:
|
def _on_version_clicked(self, widget: Gtk.EventBox, event: Gdk.EventButton) -> None:
|
||||||
def revert() -> Literal[False]:
|
def revert() -> Literal[False]:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user