mirror of
https://github.com/aclist/dztui.git
synced 2026-08-28 10:47:15 +02:00
fix: fill model inside thread
This commit is contained in:
parent
4b9687a84d
commit
b17b8c24ff
@ -291,7 +291,7 @@ class Controller(GObject.GObject):
|
||||
dialog = ExceptionDialog(self, str(e))
|
||||
dialog.run()
|
||||
|
||||
def set_custom_folder(self) -> "Path" | None:
|
||||
def set_custom_folder(self) -> Union["Path", None]:
|
||||
picker = FolderPicker(self.mediator.window)
|
||||
return picker.pick_folder()
|
||||
|
||||
|
||||
@ -61,12 +61,14 @@ class ModManager:
|
||||
self.thread_man.set_cleanup_func(func)
|
||||
return
|
||||
|
||||
func = StoredFunc(self._on_mods_loaded, mods)
|
||||
self.thread_man.set_cleanup_func(func)
|
||||
|
||||
def _on_mods_loaded(self, mods: list[list[Any]]) -> None:
|
||||
self.store = ModelFactory().make_mod_store()
|
||||
self.store.extend(mods)
|
||||
func = StoredFunc(self._on_mods_loaded)
|
||||
self.thread_man.set_cleanup_func(func)
|
||||
|
||||
# def _on_mods_loaded(self, mods: list[list[Any]]) -> None:
|
||||
|
||||
def _on_mods_loaded(self) -> None:
|
||||
self.treeview.set_model(self.store)
|
||||
msg = self.format_mod_statusbar()
|
||||
total_mods = len(self.store)
|
||||
|
||||
@ -23,6 +23,7 @@ from dzgui.views.pages.help import Help
|
||||
from dzgui.views.pages.keys import Keybindings
|
||||
from dzgui.views.pages.log import Log
|
||||
from dzgui.views.pages.mods import Mods
|
||||
from dzgui.views.pages.offline import OfflineLoader
|
||||
from dzgui.views.pages.options import Options
|
||||
from dzgui.views.pages.preconnect import PreConnectionAssistant
|
||||
from dzgui.views.pages.servers import ServerNotebook
|
||||
@ -110,8 +111,6 @@ class Notebook(ScrollableMixin, Gtk.Notebook): # type: ignore
|
||||
|
||||
self.connection = PreConnectionAssistant(MainController)
|
||||
|
||||
from dzgui.views.pages.offline import OfflineLoader
|
||||
|
||||
self.offline = OfflineLoader(MainController)
|
||||
|
||||
self.pages = {
|
||||
|
||||
@ -15,13 +15,13 @@ class Mods(NoOverlayScrolledWindow):
|
||||
def __init__(self, controller: "Controller") -> None:
|
||||
super().__init__()
|
||||
|
||||
self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||
|
||||
self.controller = controller
|
||||
self.emitter = controller.get_emitter()
|
||||
self.tree = ModTreeView(controller)
|
||||
self.tree.set_vexpand(True)
|
||||
|
||||
self.controller = controller
|
||||
self.controller.register_widget("modtreeview", self.tree)
|
||||
self.emitter = controller.get_emitter()
|
||||
|
||||
self.offline_button = Gtk.Button(
|
||||
label="Play offline",
|
||||
halign=Gtk.Align.START,
|
||||
@ -30,11 +30,11 @@ class Mods(NoOverlayScrolledWindow):
|
||||
)
|
||||
self.offline_button.connect("clicked", self._on_offline_clicked)
|
||||
|
||||
self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
|
||||
self.box.add(self.offline_button)
|
||||
self.box.add(self.tree)
|
||||
|
||||
self.add(self.box)
|
||||
self.controller.register_widget("modtreeview", self.tree)
|
||||
|
||||
self.connect("map", self._on_map)
|
||||
self.connect("unmap", self._on_unmap)
|
||||
|
||||
@ -4,6 +4,7 @@ from typing import Any, TYPE_CHECKING
|
||||
from dzgui.const.constants import APP_NAME, HEX_RED
|
||||
from dzgui.const.enum import ContextMenuGroup
|
||||
from dzgui.util import strings, localize
|
||||
from dzgui.views.mixins.cursor_mixin import CursorMixin
|
||||
from dzgui.views.mixins.context_mixin import ContextMixin
|
||||
from dzgui.views.mixins.mods_mixin import ModsMixin
|
||||
from dzgui.views.trees.tree_base import TreeView
|
||||
|
||||
@ -4,7 +4,7 @@ description = "DayZ server browser and mod manager for Linux"
|
||||
authors = [
|
||||
{name = "aclist"}
|
||||
]
|
||||
version = "7.0.0b10"
|
||||
version = "7.0.0b12"
|
||||
license = "GPL-3.0-or-later"
|
||||
license-files = ["LICENSE"]
|
||||
readme = "README.md"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user