From 67e4a9ea7071a9b0b04cb8cbaca192f86fd3d967 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 26 Nov 2024 18:16:55 +0300 Subject: [PATCH] =?UTF-8?q?dev:=20=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B9=D0=BA=D0=B0=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=20=D0=BF=D1=80=D0=B8=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=BD=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D0=B5=D0=BD=D0=B0=20=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BB=D0=BB=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/controller.py | 3 +++ src/controller/mediator.py | 6 +++--- src/gui/mainGui.py | 2 +- src/main.py | 1 + src/utils/base/base.py | 37 +++++++++++++++++++++++++----------- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/controller/controller.py b/src/controller/controller.py index bafe0ff..9f5851c 100644 --- a/src/controller/controller.py +++ b/src/controller/controller.py @@ -10,3 +10,6 @@ class Controller(BaseController): def send_widgets(self, widgets: list[QWidget]) -> None: self.signal_widgets.emit(widgets) + + def push_settings(self, settings: list[dict]) -> None: + self._mediator.push_settings(settings) diff --git a/src/controller/mediator.py b/src/controller/mediator.py index 95a79bb..b32edd0 100644 --- a/src/controller/mediator.py +++ b/src/controller/mediator.py @@ -20,9 +20,9 @@ class Mediator(BaseMediator): if issubclass(source.__class__, BasePlotWidget): self._controller.send_widgets(data) - def push_settings(self, data: list[dict]): - self._monitor.update_settings(data) - self._plot.update_settings(data) + def push_settings(self, settings: list[dict]): + self._monitor.update_settings(settings) + self._plot.update_settings(settings) self._monitor.force_all_dir() diff --git a/src/gui/mainGui.py b/src/gui/mainGui.py index ca624df..e425638 100644 --- a/src/gui/mainGui.py +++ b/src/gui/mainGui.py @@ -47,7 +47,7 @@ class MainWindow(BaseMainWindow): self.tabWidget.clear() operator_params = self.operSettings.getParams() system_params = self.sysSettings.getParams() - self._mediator.push_settings(data=[operator_params, system_params]) + self._controller.push_settings([operator_params, system_params]) diff --git a/src/main.py b/src/main.py index 1200be0..1527801 100644 --- a/src/main.py +++ b/src/main.py @@ -24,6 +24,7 @@ def main(): window.show() controller.signal_widgets.connect(window.show_plot_tabs) + controller.signal_settings.connect(mediator.push_settings) sys.exit(app.exec_()) diff --git a/src/utils/base/base.py b/src/utils/base/base.py index b0e31d0..054bb53 100644 --- a/src/utils/base/base.py +++ b/src/utils/base/base.py @@ -15,8 +15,7 @@ class BaseMediator: monitor: BaseDirectoryMonitor, converter: BaseDataConverter, plot: BasePlotWidget, - controller: BaseController, - window: BaseMainWindow): + controller: BaseController): self._monitor = monitor self._monitor.mediator = self self._converter = converter @@ -24,8 +23,7 @@ class BaseMediator: self._plot = plot self._plot.mediator = self self._controller = controller - self._window = window - self._window.mediator = self + self._controller.mediator = self def notify(self, source: Union[BaseDirectoryMonitor, BaseDataConverter, BasePlotWidget, BaseMainWindow], @@ -232,10 +230,27 @@ class BasePlotWidget: ... class BaseController(QObject): + def __init__(self, + window: Optional[BaseMainWindow] = None, + mediator: Optional[BaseMediator] = None): + super().__init__() + self._mediator = mediator + self._window = window + self._window.controller = self + + @property + def mediator(self) -> BaseMediator: + return self._mediator + + @mediator.setter + def mediator(self, mediator: BaseMediator) -> None: + self._mediator = mediator def send_widgets(self, widgets: list[QWidget]) -> None: ... + def push_settings(self, settings: list[dict]) -> None: + ... # FIXME: WeldingDF показывает только 1 секунду @@ -276,17 +291,17 @@ class BaseIdealDataBuilder(OptAlgorithm): class BaseMainWindow(QWidget): def __init__(self, - mediator: Optional[BaseMediator] = None): + controller: Optional[BaseController] = None): super().__init__() - self._mediator = mediator + self._controller = controller @property - def mediator(self) -> BaseMediator: - return self._mediator + def controller(self) -> BaseController: + return self._controller - @mediator.setter - def mediator(self, mediator: BaseMediator) -> None: - self._mediator = mediator + @controller.setter + def controller(self, controller: BaseController) -> None: + self._controller = controller def set_style(self, object: Union[QTabWidget, QWidget]) -> None: object.setStyleSheet("""