feat: populate ServerTreeViews

This commit is contained in:
aclist committed 2025-12-21 20:40:29 +09:00
1 parent 4a3d407e5f
commit 37dab3e83b
9 files changed
+140 -130

No files matched your search

+17 -11
View File
@@ -68,7 +68,7 @@ class Controller:
def set_help_menu_crumbs(self) -> None:
# TODO: going to be deprecated after server notebook is added
tip = self.mediator.treeview.get_model()[0][0]
tip = self.mediator.menu.get_model()[0][0]
store = self.model_manager.get_help_store()[0][0]
if tip == store:
self.set_crumbs("Help")
@@ -79,8 +79,17 @@ class Controller:
def get_crumbs(self) -> str:
return self.mediator.grid.get_breadcrumbs()
#def get_row_store(self) -> Gtk.ListStore:
# return self.model_manager.get_row_store()
def get_server_store(self) -> Gtk.ListStore:
return self.model_manager.get_server_store()
def get_saved_store(self) -> Gtk.ListStore:
return self.model_manager.get_saved_store()
def get_recent_store(self) -> Gtk.ListStore:
return self.model_manager.get_recent_store()
def get_lan_store(self) -> Gtk.ListStore:
return self.model_manager.get_lan_store()
def get_help_store(self) -> Gtk.ListStore:
return self.model_manager.get_help_store()
@@ -137,12 +146,12 @@ class Controller:
state,
)
self.suppress_signal(
self.mediator.treeview,
self.mediator.treeview.selected_row,
self.mediator.menu,
self.mediator.menu.selected_row,
"_on_tree_selection_changed",
state,
)
self.suppress_signal(self.mediator.treeview, self.mediator.treeview, "_on_keypress", state)
self.suppress_signal(self.mediator.menu, self.mediator.menu, "_on_keypress", state)
for check in self.mediator.grid.right_panel.filters_vbox.checks:
self.suppress_signal(
self.mediator.grid.right_panel.filters_vbox,
@@ -161,7 +170,7 @@ class Controller:
else:
widget.handler_unblock_by_func(func)
# TODO
#self.mediator.treeview.sel_blocked = state
#self.mediator.menu.sel_blocked = state
def toggle_debug_mode(self) -> None:
self.toggle_config(Preferences.DEBUG)
@@ -278,7 +287,6 @@ class Controller:
self.mediator.grid.notebook.set_page_by_enum(page)
def open_page_by_button(self, button: "ContextualButton") -> None:
print(button.context)
match button.context:
case ButtonType.EXIT:
logger.info("Normal user exit")
@@ -289,9 +297,7 @@ class Controller:
case ButtonType.MODS:
self.load_mods()
case ButtonType.HELP:
help_store = self.model_manager.get_help_store()
# TODO: simply set this model once and open the page
self.mediator.treeview.set_model(help_store)
pass
case ButtonType.SERVERS:
self.mediator.notebook.set_page_by_enum(button.opens)
# TODO: shorten this
+16 -3
View File
@@ -76,9 +76,10 @@ class ModelManager:
self.log_store = self.new_model_from_class(LogCols)
self.modlist_store = self.new_model_from_class(ServerModCols)
#for row in MAIN_MENU_ROWS:
# label = row.dict["label"]
# self.row_store.append([label, row])
self.server_store = self.new_model()
self.saved_store = self.new_model()
self.recent_store = self.new_model()
self.lan_store = self.new_model()
for row in HELP_MENU_ROWS:
label = row.dict["label"]
@@ -93,6 +94,18 @@ class ModelManager:
cls.instance = super(ModelManager, cls).__new__(cls)
return cls.instance
def get_recent_store(self) -> ListStore:
return self.recent_store
def get_lan_store(self) -> ListStore:
return self.lan_store
def get_saved_store(self) -> ListStore:
return self.saved_store
def get_server_store(self) -> ListStore:
return self.server_store
def new_model_from_class(self, cls: type) -> ListStore:
store = ListStore(*[ftype for field, ftype in cls.__annotations__.items()])
return store