mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 14:42:54 +01:00
feat: lazy refresh model on page change (WIP)
This commit is contained in:
1 parent
72c1081b48
commit
e7735e0472
5 files changed
+62
-6
No files matched your search
@@ -307,6 +307,7 @@ class Controller:
|
||||
|
||||
def show_developers_page(self) -> None:
|
||||
self.open_page(NotebookPage.DEVELOPERS)
|
||||
# TODO: focus first row
|
||||
|
||||
def open_page(self, page: NotebookPage) -> None:
|
||||
self.mediator.grid.notebook.set_page_by_enum(page)
|
||||
@@ -593,3 +594,22 @@ class Controller:
|
||||
def get_crumbs_cache(self) -> None:
|
||||
return self.crumbs_cache
|
||||
self.crumbs_cache = text
|
||||
|
||||
def refresh_tree(self) -> None:
|
||||
treeview = self.mediator.notebook.servers.get_active_treeview()
|
||||
treeview.set_loaded(False)
|
||||
self.populate_model()
|
||||
|
||||
def populate_model(self) -> None:
|
||||
# TODO: always use same server model, store in servertreeview class
|
||||
treeview = self.mediator.notebook.servers.get_active_treeview()
|
||||
if treeview.get_loaded() is False:
|
||||
new_model = self.model_manager.new_model()
|
||||
func = treeview.get_query_func()
|
||||
if func is not None:
|
||||
model = treeview.get_model()
|
||||
model.clear()
|
||||
data = func()
|
||||
model.append(data)
|
||||
treeview.set_loaded(True)
|
||||
self.update_server_status()
|
||||
@@ -89,10 +89,10 @@ class ModelManager:
|
||||
self.filtered = None
|
||||
self.success = True
|
||||
|
||||
def __new__(cls) -> Self:
|
||||
if not hasattr(cls, "instance"):
|
||||
cls.instance = super(ModelManager, cls).__new__(cls)
|
||||
return cls.instance
|
||||
#def __new__(cls) -> Self:
|
||||
# if not hasattr(cls, "instance"):
|
||||
# cls.instance = super(ModelManager, cls).__new__(cls)
|
||||
# return cls.instance
|
||||
|
||||
def get_recent_store(self) -> ListStore:
|
||||
return self.recent_store
|
||||
|
||||
Reference in new issue
Block a user