diff --git a/dzgui/controllers/emitter.py b/dzgui/controllers/emitter.py index df1b686..2a040d5 100644 --- a/dzgui/controllers/emitter.py +++ b/dzgui/controllers/emitter.py @@ -155,6 +155,6 @@ class Emitter(GObject.GObject): def lan_page_initialized(self) -> None: pass - @GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(object, str)) - def custom_mods_loaded(self, store: "FastInsertListStore", folder: str) -> None: + @GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(object, str, bool)) + def custom_mods_loaded(self, store: "FastInsertListStore", folder: str, has_duplicates: bool) -> None: pass diff --git a/dzgui/managers/offline.py b/dzgui/managers/offline.py index f014b5b..5f22d74 100644 --- a/dzgui/managers/offline.py +++ b/dzgui/managers/offline.py @@ -42,7 +42,7 @@ class OfflineManager: row[-1]=True has_duplicates = True - func = StoredFunc(self.emitter.emit, "custom_mods_loaded", store, folder, has_duplicates) + func = StoredFunc(lambda: self.emitter.emit("custom_mods_loaded", store, folder, has_duplicates)) self.thread_man.set_cleanup_func(func) def setup( diff --git a/dzgui/views/pages/offline.py b/dzgui/views/pages/offline.py index 8ab1633..14d6f36 100644 --- a/dzgui/views/pages/offline.py +++ b/dzgui/views/pages/offline.py @@ -27,6 +27,7 @@ from gi.repository import Gtk, Gdk # noqa if TYPE_CHECKING: from dzgui.controllers.mc import Controller + from dzgui.controllers.emitter import Emitter from dzgui.model.model_factory import FastInsertListStore @@ -105,6 +106,10 @@ class ModFrame(HeadingFrame): sel = self.tree.get_selection() sel.connect("changed", self._on_selection_changed) + def get_mods(self) -> list[str]: + model = self.tree.get_model() + return [row[1] for row in model] + def collapse_tree(self) -> None: self.tree_vbox.hide() @@ -151,7 +156,7 @@ class CustomModFrame(ModFrame): self.emitter.connect("custom_mods_loaded", self._on_custom_mods_loaded) - def _on_custom_mods_loaded(self, store: "FastInsertListStore", folder: str, has_duplicates: bool) -> None: + def _on_custom_mods_loaded(self, emitter: "Emitter", store: "FastInsertListStore", folder: str, has_duplicates: bool) -> None: if len(store) == 0: # TODO: pop error dialog area # block button access @@ -274,7 +279,7 @@ class OfflineLoader(Gtk.Box): self.add(self.button_box) def parse_mods(self) -> None: - # TODO: + # TODO: check method on custom frame local_mods = self.local_frame.get_mods() folder = self.controller.set_custom_folder() if folder is not None: diff --git a/dzgui/views/trees/tree_mods.py b/dzgui/views/trees/tree_mods.py index 17ab196..8a6ff16 100644 --- a/dzgui/views/trees/tree_mods.py +++ b/dzgui/views/trees/tree_mods.py @@ -115,10 +115,13 @@ class ModTreeView(ModsMixin, ContextMixin, TreeView): # type: ignore val = model[it][3] formatted = localize.number(val) cell.set_property("text", formatted) + # NOTE: reapply color property after float conversion + self._format_color(column, cell, model, it, data) def set_menu(self, context: ContextMenuGroup) -> None: self.menu = context + class OfflineModTreeView(ModTreeView): def __init__(self, controller: "Controller") -> None: super().__init__(controller)