diff --git a/src/core/widgets/code/code_base.py b/src/core/widgets/code/code_base.py index 185a590..bc6a247 100644 --- a/src/core/widgets/code/code_base.py +++ b/src/core/widgets/code/code_base.py @@ -3,7 +3,8 @@ # Lib imports # Application imports -from .controllers.controller_manager import ControllerManager +from libs.controllers.controller_manager import ControllerManager + from .controllers.files_controller import FilesController from .controllers.tabs_controller import TabsController from .controllers.commands_controller import CommandsController diff --git a/src/core/widgets/code/controllers/files_controller.py b/src/core/widgets/code/controllers/files_controller.py index c8daa6b..c0520f0 100644 --- a/src/core/widgets/code/controllers/files_controller.py +++ b/src/core/widgets/code/controllers/files_controller.py @@ -67,7 +67,7 @@ class FilesController(ControllerBase, list): view = event.view, file = file ) - self.message_all(eve) + self.message(eve) self.append(file) @@ -105,7 +105,7 @@ class FilesController(ControllerBase, list): file = popped_file, next_file = next_file ) - self.message_all(eve) + self.message(eve) return popped_file, next_file @@ -127,7 +127,7 @@ class FilesController(ControllerBase, list): file = file, next_file = next_file ) - self.message_all(eve) + self.message(eve) self.remove(file) file.close() diff --git a/src/core/widgets/code/controllers/tabs_controller.py b/src/core/widgets/code/controllers/tabs_controller.py index 5a789c7..cd40ffe 100644 --- a/src/core/widgets/code/controllers/tabs_controller.py +++ b/src/core/widgets/code/controllers/tabs_controller.py @@ -53,7 +53,7 @@ class TabsController(ControllerBase): tab.get_parent().file.buffer ) - self.message_all(event) + self.message(event) def close_tab(tab, eve, file): event = Event_Factory.create_event( @@ -61,7 +61,7 @@ class TabsController(ControllerBase): buffer = tab.get_parent().file.buffer ) - self.message_all(event) + self.message(event) tab = TabWidget() tab.file = event.file diff --git a/src/libs/controllers/controller_base.py b/src/libs/controllers/controller_base.py index 037c01c..fe2e5cd 100644 --- a/src/libs/controllers/controller_base.py +++ b/src/libs/controllers/controller_base.py @@ -30,9 +30,12 @@ class ControllerBase(Singleton, EmitDispatcher): def set_controller_context(self, controller_context: ControllerContext): self.controller_context = controller_context + def message(self, event: BaseEvent): + return self.controller_context.message(event) + def message_to(self, name: str, event: BaseEvent): return self.controller_context.message_to(name, event) - def message_all(self, event: BaseEvent): - return self.controller_context.message_all(event) - + def message_to_selected(self, names: list[str], event: BaseEvent): + for name in names: + self.controller_context.message_to_selected(name, event) diff --git a/src/libs/controllers/controller_context.py b/src/libs/controllers/controller_context.py index 2dc2d6a..ac0a661 100644 --- a/src/libs/controllers/controller_context.py +++ b/src/libs/controllers/controller_context.py @@ -17,8 +17,11 @@ class ControllerContext: super(ControllerContext, self).__init__() + def message(self, event: BaseEvent): + raise ControllerContextException("Controller Context 'message' must be overriden by Controller Manager...") + def message_to(self, name: str, event: BaseEvent): raise ControllerContextException("Controller Context 'message_to' must be overriden by Controller Manager...") - def message_all(self, event: BaseEvent): - raise ControllerContextException("Controller Context 'message_all' must be overriden by Controller Manager...") + def message_to_selected(self, name: list, event: BaseEvent): + raise ControllerContextException("Controller Context 'message_to_selected' must be overriden by Controller Manager...") diff --git a/src/core/widgets/code/controllers/controller_manager.py b/src/libs/controllers/controller_manager.py similarity index 78% rename from src/core/widgets/code/controllers/controller_manager.py rename to src/libs/controllers/controller_manager.py index 3d446c7..e7d010f 100644 --- a/src/core/widgets/code/controllers/controller_manager.py +++ b/src/libs/controllers/controller_manager.py @@ -3,12 +3,11 @@ # Lib imports # Application imports -from libs.singleton import Singleton +from ..singleton import Singleton +from ..event_factory import Code_Event_Types -from libs.controllers.controller_base import ControllerBase -from libs.controllers.controller_context import ControllerContext - -from libs.event_factory import Code_Event_Types +from .controller_base import ControllerBase +from .controller_context import ControllerContext @@ -25,7 +24,7 @@ class ControllerManager(Singleton, dict): def _crete_controller_context(self) -> ControllerContext: controller_context = ControllerContext() controller_context.message_to = self.message_to - controller_context.message_all = self.message_all + controller_context.message = self.message return controller_context @@ -46,6 +45,6 @@ class ControllerManager(Singleton, dict): def message_to(self, name: str, event: Code_Event_Types.CodeEvent): self[name]._controller_message(event) - def message_all(self, event: Code_Event_Types.CodeEvent): + def message(self, event: Code_Event_Types.CodeEvent): for key in self.keys(): self[key]._controller_message(event) diff --git a/src/libs/controllers/emit_dispatcher.py b/src/libs/controllers/emit_dispatcher.py index d7f1570..e8e67f4 100644 --- a/src/libs/controllers/emit_dispatcher.py +++ b/src/libs/controllers/emit_dispatcher.py @@ -13,7 +13,7 @@ class EmitDispatcher: def emit(self, event: BaseEvent): - self.message_all(event) + self.message(event) def emit_to(self, controller: str, event: BaseEvent): self.message_to(controller, event) diff --git a/src/libs/dto/plugins/__init__.py b/src/libs/dto/plugins/__init__.py new file mode 100644 index 0000000..0f976bd --- /dev/null +++ b/src/libs/dto/plugins/__init__.py @@ -0,0 +1,3 @@ +""" + Libs Plugin DTO(s) Package +""" diff --git a/src/plugins/dto/manifest.py b/src/libs/dto/plugins/manifest.py similarity index 100% rename from src/plugins/dto/manifest.py rename to src/libs/dto/plugins/manifest.py diff --git a/src/plugins/dto/manifest_meta.py b/src/libs/dto/plugins/manifest_meta.py similarity index 100% rename from src/plugins/dto/manifest_meta.py rename to src/libs/dto/plugins/manifest_meta.py diff --git a/src/plugins/dto/requests.py b/src/libs/dto/plugins/requests.py similarity index 100% rename from src/plugins/dto/requests.py rename to src/libs/dto/plugins/requests.py diff --git a/src/plugins/dto/__init__.py b/src/plugins/dto/__init__.py deleted file mode 100644 index 2e533d6..0000000 --- a/src/plugins/dto/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -""" - Gtk Plugins DTO Module -""" diff --git a/src/plugins/manifest_manager.py b/src/plugins/manifest_manager.py index 518c198..2f52a75 100644 --- a/src/plugins/manifest_manager.py +++ b/src/plugins/manifest_manager.py @@ -6,8 +6,8 @@ from os.path import join # Lib imports # Application imports -from .dto.manifest_meta import ManifestMeta -from .dto.manifest import Manifest +from libs.dto.plugins.manifest_meta import ManifestMeta +from libs.dto.plugins.manifest import Manifest diff --git a/src/plugins/plugin_base.py b/src/plugins/plugin_base.py index 7a63917..e9ed8a8 100644 --- a/src/plugins/plugin_base.py +++ b/src/plugins/plugin_base.py @@ -13,8 +13,8 @@ class PluginBaseException(Exception): class PluginBase: - def __init__(self, **kwargs): - super().__init__(**kwargs) + def __init__(self, *args, **kwargs): + super(PluginBase, self).__init__(*args, **kwargs) self.name = "Example Plugin" # NOTE: Need to remove after establishing private bidirectional 1-1 message bus # where self.name should not be needed for message comms diff --git a/src/plugins/plugins_controller.py b/src/plugins/plugins_controller.py index 831a38e..060b37e 100644 --- a/src/plugins/plugins_controller.py +++ b/src/plugins/plugins_controller.py @@ -11,7 +11,8 @@ import gi from gi.repository import GLib # Application imports -from .dto.manifest_meta import ManifestMeta +from libs.dto.plugins.manifest_meta import ManifestMeta + from .plugin_reload_mixin import PluginReloadMixin from .manifest_manager import ManifestManager