mirror of
https://github.com/aclist/dztui.git
synced 2026-08-29 03:06:56 +02:00
fix: wipe cache when removing row
This commit is contained in:
parent
ed508c6764
commit
61735d20cf
@ -536,10 +536,15 @@ class Controller(GObject.GObject):
|
|||||||
|
|
||||||
def has_server_model(self) -> bool:
|
def has_server_model(self) -> bool:
|
||||||
treeview = self.get_active_treeview()
|
treeview = self.get_active_treeview()
|
||||||
return treeview.get_model() is not None
|
proxy_man = treeview.get_proxy_man()
|
||||||
|
control = proxy_man.get_control()
|
||||||
|
if control is None:
|
||||||
|
return False
|
||||||
|
if len(control) < 1:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
def _on_check_toggled(self, emitter: Emitter, label: str, state: bool) -> None:
|
def _on_check_toggled(self, emitter: Emitter, label: str, state: bool) -> None:
|
||||||
print("DEBUG: check toggled, refiltering")
|
|
||||||
filter_man = self.get_filter_man()
|
filter_man = self.get_filter_man()
|
||||||
filter_man.set_filter(label, state)
|
filter_man.set_filter(label, state)
|
||||||
|
|
||||||
@ -547,7 +552,6 @@ class Controller(GObject.GObject):
|
|||||||
ServerModelManager(self, self.get_active_treeview()).refilter(mode)
|
ServerModelManager(self, self.get_active_treeview()).refilter(mode)
|
||||||
|
|
||||||
def _on_map_selection_changed(self, emitter: Emitter, selection: str) -> None:
|
def _on_map_selection_changed(self, emitter: Emitter, selection: str) -> None:
|
||||||
print("DEBUG: map sel changed, refiltering")
|
|
||||||
smm = ServerModelManager(self, self.get_active_treeview())
|
smm = ServerModelManager(self, self.get_active_treeview())
|
||||||
smm.refilter(FilterMode.MAP)
|
smm.refilter(FilterMode.MAP)
|
||||||
|
|
||||||
@ -569,6 +573,12 @@ class Controller(GObject.GObject):
|
|||||||
def get_menu(self) -> "MenuTreeView":
|
def get_menu(self) -> "MenuTreeView":
|
||||||
return self.mediator.menu
|
return self.mediator.menu
|
||||||
|
|
||||||
|
def has_favorites(self) -> bool:
|
||||||
|
favs = self.config_man.get_favorites()
|
||||||
|
if len(favs) < 1:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
def is_in_favs(self) -> bool:
|
def is_in_favs(self) -> bool:
|
||||||
return self.config_man.is_in_favs()
|
return self.config_man.is_in_favs()
|
||||||
|
|
||||||
|
|||||||
@ -143,5 +143,4 @@ def main() -> None:
|
|||||||
use_miles,
|
use_miles,
|
||||||
)
|
)
|
||||||
print("All OK. Loading UI...")
|
print("All OK. Loading UI...")
|
||||||
logger.critical("e")
|
|
||||||
App(prefs)
|
App(prefs)
|
||||||
|
|||||||
@ -51,6 +51,7 @@ class ProxyModelManager:
|
|||||||
for record in self.control_model:
|
for record in self.control_model:
|
||||||
if row[7] == record[7] and row[8] == record[8]:
|
if row[7] == record[7] and row[8] == record[8]:
|
||||||
self.control_model.remove(record)
|
self.control_model.remove(record)
|
||||||
|
self.wipe_cache()
|
||||||
self.filter(FilterMode.INITIAL, skip_cache=True)
|
self.filter(FilterMode.INITIAL, skip_cache=True)
|
||||||
|
|
||||||
def update_playercount(self, playercount: "NewPlayerCount") -> None:
|
def update_playercount(self, playercount: "NewPlayerCount") -> None:
|
||||||
@ -214,6 +215,7 @@ class ProxyModelManager:
|
|||||||
) -> None:
|
) -> None:
|
||||||
self.filter_cache[filters] = (model, rows)
|
self.filter_cache[filters] = (model, rows)
|
||||||
|
|
||||||
|
@deprecated("legacy logic")
|
||||||
def resync_model(self, addr: str, qport: int) -> None:
|
def resync_model(self, addr: str, qport: int) -> None:
|
||||||
"""
|
"""
|
||||||
Handle in-situ updates to model during
|
Handle in-situ updates to model during
|
||||||
|
|||||||
@ -54,15 +54,9 @@ class ServerModelManager:
|
|||||||
self.preserve_on_fail = False
|
self.preserve_on_fail = False
|
||||||
self.jobs = 1
|
self.jobs = 1
|
||||||
|
|
||||||
# NOTE: store filter man for access inside thread
|
|
||||||
self.proxy_man = tv.get_proxy_man()
|
self.proxy_man = tv.get_proxy_man()
|
||||||
self.thread_man = ThreadingManager(self.controller)
|
self.thread_man = ThreadingManager(self.controller)
|
||||||
|
|
||||||
# TODO: if first iteration, clear filter man control model
|
|
||||||
# literal first load: iteration 1
|
|
||||||
# refresh: should be functionally identical to iteration 1
|
|
||||||
# filter: iteration N+1
|
|
||||||
|
|
||||||
def load(self) -> None:
|
def load(self) -> None:
|
||||||
"""
|
"""
|
||||||
There may be cases where you want to instantiate this class without dumping servers,
|
There may be cases where you want to instantiate this class without dumping servers,
|
||||||
@ -327,8 +321,8 @@ class ServerModelManager:
|
|||||||
maps = self._get_new_maps()
|
maps = self._get_new_maps()
|
||||||
filter_man.set_unique_maps(maps)
|
filter_man.set_unique_maps(maps)
|
||||||
|
|
||||||
self.emitter.emit("servers_loaded_init")
|
|
||||||
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:
|
||||||
|
|||||||
@ -105,8 +105,9 @@ 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
|
if self.controller.has_favorites():
|
||||||
self.controller.refresh_tree()
|
self.loading = True
|
||||||
|
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
|
||||||
|
|
||||||
|
|||||||
@ -67,6 +67,7 @@ class Statusbar(Gtk.Grid):
|
|||||||
self.controller.populate_log()
|
self.controller.populate_log()
|
||||||
|
|
||||||
def _on_log_page_loaded(self, emitter: "Emitter") -> None:
|
def _on_log_page_loaded(self, emitter: "Emitter") -> None:
|
||||||
|
# FIXME: fails if button was not previously drawn
|
||||||
self.alert_button.hide()
|
self.alert_button.hide()
|
||||||
|
|
||||||
def _on_mod_page_loaded(self, emitter: "Emitter") -> None:
|
def _on_mod_page_loaded(self, emitter: "Emitter") -> None:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user