From 495d6263bb81d573257a7c8088ae11045bf01c84 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Mon, 19 Jan 2026 15:20:09 +0900 Subject: [PATCH] feat: fetch model on startup --- dzgui/controllers/mc.py | 15 ++++++++++++++- dzgui/views/base.py | 1 + dzgui/views/components/filter_panel.py | 1 + dzgui/views/pages/servers.py | 18 +++++++++--------- dzgui/views/trees/tree_servers.py | 6 +++++- 5 files changed, 30 insertions(+), 11 deletions(-) diff --git a/dzgui/controllers/mc.py b/dzgui/controllers/mc.py index df44210..376bdb5 100644 --- a/dzgui/controllers/mc.py +++ b/dzgui/controllers/mc.py @@ -528,7 +528,7 @@ class Controller: def unselect_all_mods(self) -> None: self.mediator.modtreeview.get_selection().unselect_all() - def dump_test(self) -> None: + def dump_test_1(self) -> None: import time time.sleep(1) # TODO: use model managers, etc. @@ -562,6 +562,17 @@ class Controller: self.get_func_data() self.destroy_on_idle() + def dump_test_2(self) -> None: + import time + time.sleep(1) + # TODO: use model managers, etc. + self.data = ( + ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], + ) + # TODO: refer to prior implementation--should need to load data into model while in thread + self.get_func_data() + self.destroy_on_idle() + def get_func_data(self): def test(): # NOTE: do not insert model until main thread is idle @@ -685,6 +696,8 @@ class Controller: self.set_statusbar_placeholder(status) self.set_statusbar(status) self.mediator.statusbar.spinner.start() + if len(model) < 1: + self.mediator.statusbar.spinner.stop() def populate_model(self) -> None: treeview = self.get_active_treeview() diff --git a/dzgui/views/base.py b/dzgui/views/base.py index 0a7102d..3fbb341 100644 --- a/dzgui/views/base.py +++ b/dzgui/views/base.py @@ -166,6 +166,7 @@ class OuterWindow(Gtk.Window): self.grid.right_panel.sel_panel.hide() # TODO: POC, trigger page change here MainController.loaded = True + MainController.populate_model() def _on_delete_event( self, window: "OuterWindow", event: Gdk.EventKey diff --git a/dzgui/views/components/filter_panel.py b/dzgui/views/components/filter_panel.py index ed6c1ef..974e273 100644 --- a/dzgui/views/components/filter_panel.py +++ b/dzgui/views/components/filter_panel.py @@ -49,6 +49,7 @@ class FilterPanel(Gtk.Box): ) row = 1 col = 0 + # TODO: use enumerated checks for check in self.default_filters.keys(): checkbox = Gtk.CheckButton(label=check) label = checkbox.get_children() diff --git a/dzgui/views/pages/servers.py b/dzgui/views/pages/servers.py index 42fdfc2..71a2b54 100644 --- a/dzgui/views/pages/servers.py +++ b/dzgui/views/pages/servers.py @@ -29,8 +29,8 @@ class ServerNotebook(Gtk.ScrolledWindow): self.recent = ServerTreeView(controller, ServerTab.RECENT, ContextMenuGroup.RECENT) self.lan = ServerTreeView(controller, ServerTab.LAN, ContextMenuGroup.SCAN_LAN) - self.browser.set_query_func(self.query_test2) - self.lan.set_query_func(self.query_test) + self.browser.set_query_func(self.controller.dump_test_1) + self.lan.set_query_func(self.controller.dump_test_2) tabs = [ (self.browser, server_labels.browser), @@ -101,13 +101,13 @@ class ServerNotebook(Gtk.ScrolledWindow): # self.controller.mediator.grid.conpan.lan.set_visible(False) # TODO: put in controller - def query_test2(self) -> None: - # TODO: should trigger first page action after entire UI is loaded - self.controller.dump_test() - - def query_test(self) -> None: - data = (["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False]) - return data + # def query_test2(self) -> None: + # # TODO: should trigger first page action after entire UI is loaded + # self.controller.dump_test_1() + # + # def query_test(self) -> None: + # data = (["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False]) + # return data def set_cached_label(self, label: str) -> None: self.tab_cache = label diff --git a/dzgui/views/trees/tree_servers.py b/dzgui/views/trees/tree_servers.py index c1e810d..9eaecfb 100644 --- a/dzgui/views/trees/tree_servers.py +++ b/dzgui/views/trees/tree_servers.py @@ -13,7 +13,7 @@ from dzgui.const.enum import ( RowType, ) from dzgui.const.constants import UDP_PORT -from dzgui.const.enum import ServerTab +from dzgui.const.enum import FilterMode, ServerTab from dzgui.api.servers import Record from dzgui.model.filtered_model import FilteredModelManager from dzgui.util.dist import CalcDist @@ -119,6 +119,10 @@ class ServerTreeView(TreeView): GLib.timeout_add(QUEUE_CHECK_DELAY, self._check_result_queue) + def filter(self, mode: FilterMode, label: str) -> None: + print("TOGGLE:", mode) + print("LABEL: ", label) + def get_filter_man(self) -> FilteredModelManager: return self.filter_man