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