chore: clerical fixes

This commit is contained in:
aclist 2026-01-26 12:28:00 +09:00
parent 4f04d26231
commit d2d5fdb59f
5 changed files with 26 additions and 18 deletions

View File

@ -380,6 +380,7 @@ class Controller(GObject.GObject):
for future in futures:
res = future.result()
if res.status != 200 or not res.parsed:
# TODO: pop warning dialog
self.push_data(None)
return
j = res.json
@ -600,13 +601,22 @@ class Controller(GObject.GObject):
)
self.push_data(data)
def cleanup(self):
treeview = self.get_active_treeview()
context = self.get_active_context()
# TODO: rename signal
self.mediator.statusbar.emit("server_page_changed", context)
# TODO: may be superfluous
treeview.grab_focus()
self.destroy_on_idle()
def push_data(self, data: tuple, mode: FilterMode) -> None:
def cleanup():
# TODO: rename signal
self.mediator.statusbar.emit("server_page_changed", context)
# TODO: may be superfluous
treeview.grab_focus()
self.destroy_on_idle()
#def cleanup():
# # TODO: rename signal
# self.mediator.statusbar.emit("server_page_changed", context)
# # TODO: may be superfluous
# treeview.grab_focus()
# self.destroy_on_idle()
treeview = self.get_active_treeview()
context = self.get_active_context()
@ -618,11 +628,12 @@ class Controller(GObject.GObject):
# TODO: consolidate into filter manager
if mode == FilterMode.INITIAL:
manager.set_control(data)
# TODO: init maps here
manager.filter(mode)
insert = manager.get_model()
treeview.set_model(insert)
treeview.set_loaded(True)
GLib.idle_add(cleanup)
GLib.idle_add(self.cleanup)
@call_on_thread
def highlight_stale(self) -> None:
@ -754,19 +765,19 @@ class Controller(GObject.GObject):
@call_on_thread
def filter_threaded(self, mode: FilterMode, label: str) -> None:
print(mode)
tv = self.get_active_treeview()
tv.filter_man.filter(mode, label)
self.push_data("", mode)
def refilter_model(self, mode: FilterMode, label: str) -> None:
print(mode)
tv = self.get_active_treeview()
# TODO: shouldn't empty model be None?
if len(tv.get_model()) == 0:
return
tv.set_model(None)
self.set_callback(None, None)
self.filter_threaded(mode, label)
def populate_model(self) -> None:
treeview = self.get_active_treeview()
if treeview.get_loaded() is True:
@ -823,6 +834,7 @@ class Controller(GObject.GObject):
self.mediator.grid.conpan.set_visible(state)
# TODO: use model manager, map and keyword caches
# TODO: model cache that hooks checkbox signal
def get_filters(self) -> list:
return self.mediator.filters.get_filters()

View File

@ -77,9 +77,6 @@ class FilteredModelManager:
cache = self.filter_cache[filters]
self.set_model(cache[0])
self.set_filtered(cache[1])
# GLib.idle_add(
# self.controller.mediator.get_active_treeview()._filter_cleanup
# )
return
match mode:
@ -242,7 +239,6 @@ class FilteredModelManager:
refiltered = self.filter_toggle_on(filters)
self.set_filtered(refiltered)
self.set_success(True)
GLib.idle_add(self.controller.mediator.get_active_treeview()._filter_cleanup)
def convert_model_to_list(self, model: ListStore) -> list:
return [[el for el in row] for row in model]

View File

@ -228,8 +228,7 @@ class FilterPanel(Gtk.Box):
return
logger.info(f"User filtered by keyword '{keyword}'")
self.keyword_filter = keyword
treeview = self.controller.get_active_treeview()
treeview.filter(FilterMode.KEYWORD, keyword)
self.controller.refilter_model(FilterMode.KEYWORD, keyword)
def _on_button_release(self, window, button) -> Literal[True]:
return True

View File

@ -385,6 +385,7 @@ class ServerTreeView(TreeView):
except Exception:
return
if row_index >= start[0] <= end[0]:
real_model = self.filter_man.get_real_model()
# NOTE: fetch raw data rows
real_model = self.filter_man.get_control()
value = real_model[row_index][col_index]
cell.set_property("text", str(value))

View File

@ -64,7 +64,7 @@ build-backend = "setuptools.build_meta"
[tool.ruff]
line-length = 88
indent-width = 4
extend-exclude = ["tree_servers.py", "tree_server_mods.py", "dialogs", "right_panel.py", "filter_panel.py", "base.py", "*lib/a2s", "dist.py"]
extend-exclude = ["tree_server_mods.py", "dialogs", "*lib/a2s"]
lint.unfixable = ["F401"]
[tool.ruff.format]