fix: исправил обновление графиков при смене режима
This commit is contained in:
parent
becb4764b4
commit
9ef0c8d34f
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -8,8 +8,10 @@ class Controller(BaseController):
|
|||||||
|
|
||||||
signal_widgets = pyqtSignal(list)
|
signal_widgets = pyqtSignal(list)
|
||||||
signal_settings = pyqtSignal(list)
|
signal_settings = pyqtSignal(list)
|
||||||
signal_raport_mode = pyqtSignal(str)
|
signal_open_file = pyqtSignal(str)
|
||||||
|
signal_raport_mode = pyqtSignal()
|
||||||
signal_seeking_mode = pyqtSignal()
|
signal_seeking_mode = pyqtSignal()
|
||||||
|
signal_update_plots = pyqtSignal()
|
||||||
|
|
||||||
def send_widgets(self, widgets: list[QWidget]) -> None:
|
def send_widgets(self, widgets: list[QWidget]) -> None:
|
||||||
self.signal_widgets.emit(widgets)
|
self.signal_widgets.emit(widgets)
|
||||||
@ -17,12 +19,17 @@ class Controller(BaseController):
|
|||||||
def update_settings(self, settings: list[dict]) -> None:
|
def update_settings(self, settings: list[dict]) -> None:
|
||||||
self.signal_settings.emit(settings)
|
self.signal_settings.emit(settings)
|
||||||
|
|
||||||
def raport_mode(self, filepath: str) -> None:
|
def raport_mode(self) -> None:
|
||||||
self.signal_raport_mode.emit(filepath)
|
self.signal_raport_mode.emit()
|
||||||
|
|
||||||
def seeking_mode(self) -> None:
|
def seeking_mode(self) -> None:
|
||||||
self.signal_seeking_mode.emit()
|
self.signal_seeking_mode.emit()
|
||||||
|
|
||||||
|
def open_file(self, filepath: str) -> None:
|
||||||
|
self.signal_open_file.emit(filepath)
|
||||||
|
|
||||||
|
def update_plots(self) -> None:
|
||||||
|
self.signal_update_plots.emit()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -29,6 +29,5 @@ class Mediator(BaseMediator):
|
|||||||
def update_settings(self, settings: list[dict]):
|
def update_settings(self, settings: list[dict]):
|
||||||
self._monitor.update_settings(settings)
|
self._monitor.update_settings(settings)
|
||||||
self._passportFormer.update_settings(settings)
|
self._passportFormer.update_settings(settings)
|
||||||
self._monitor.update_plots()
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -51,18 +51,26 @@ class DirectoryMonitor(BaseDirectoryMonitor):
|
|||||||
|
|
||||||
def update_plots(self):
|
def update_plots(self):
|
||||||
if self._files is not None:
|
if self._files is not None:
|
||||||
|
print("updPlot")
|
||||||
self._mediator.notify(self, self._files)
|
self._mediator.notify(self, self._files)
|
||||||
|
|
||||||
def custom_csv_extract_only(self, path: str):
|
def custom_csv_extract_only(self, path: str):
|
||||||
self.stop()
|
|
||||||
self._files.append(path)
|
self._files.append(path)
|
||||||
if path is not None:
|
if path is not None:
|
||||||
self._mediator.notify(self, [path])
|
self._mediator.notify(self, [path])
|
||||||
else:
|
else:
|
||||||
self._mediator.notify(self, [None])
|
self._mediator.notify(self, [None])
|
||||||
|
|
||||||
|
def start_raport(self) -> None:
|
||||||
|
print("startRaport")
|
||||||
|
self.stop()
|
||||||
|
self._files = []
|
||||||
|
print(self._files)
|
||||||
|
self._mediator.notify(self, [None])
|
||||||
|
|
||||||
|
|
||||||
def start_seeking(self) -> None:
|
def start_seeking(self) -> None:
|
||||||
|
print("startSeeking")
|
||||||
self._init_state()
|
self._init_state()
|
||||||
self.start()
|
self.start()
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -8,6 +8,8 @@ from utils.base.base import BaseMainWindow, BaseController
|
|||||||
from gui.settings_window import SystemSettings, OperatorSettings
|
from gui.settings_window import SystemSettings, OperatorSettings
|
||||||
from gui.reportGui import ReportSettings
|
from gui.reportGui import ReportSettings
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME: При отркытии RaportMode все прочитанные трейсы должны удаляться, но они открываются...
|
||||||
class MainWindow(BaseMainWindow):
|
class MainWindow(BaseMainWindow):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
controller: Optional[BaseController] = None) -> None:
|
controller: Optional[BaseController] = None) -> None:
|
||||||
@ -18,17 +20,19 @@ class MainWindow(BaseMainWindow):
|
|||||||
self._init_menu()
|
self._init_menu()
|
||||||
|
|
||||||
|
|
||||||
|
def _init_TabWidget(self) -> None:
|
||||||
def _init_startUI(self) -> None:
|
|
||||||
self.operSettings = OperatorSettings("params/operator_params.json", 'Operator', self._transfer_settings)
|
|
||||||
self.sysSettings = SystemSettings("params/system_params.json", 'System', self._transfer_settings)
|
|
||||||
self.repSettings = ReportSettings()
|
|
||||||
self.tabWidget = QtWidgets.QTabWidget()
|
self.tabWidget = QtWidgets.QTabWidget()
|
||||||
self.tabWidget.setTabsClosable(True)
|
self.tabWidget.setTabsClosable(True)
|
||||||
self.tabWidget.tabCloseRequested.connect(self._close_tab)
|
self.tabWidget.tabCloseRequested.connect(self._close_tab)
|
||||||
self.tabWidget.currentChanged.connect(self._on_tab_changed)
|
self.tabWidget.currentChanged.connect(self._on_tab_changed)
|
||||||
|
|
||||||
|
def _init_startUI(self) -> None:
|
||||||
|
self.operSettings = OperatorSettings("params/operator_params.json", 'Operator', self._upd_settings)
|
||||||
|
self.sysSettings = SystemSettings("params/system_params.json", 'System', self._upd_settings)
|
||||||
|
self.repSettings = ReportSettings()
|
||||||
|
|
||||||
self._clear()
|
self._clear()
|
||||||
|
self.resize(800,800)
|
||||||
seeking_mode_btn = QtWidgets.QPushButton("Real time folder scanning")
|
seeking_mode_btn = QtWidgets.QPushButton("Real time folder scanning")
|
||||||
seeking_mode_btn.setFixedWidth(300)
|
seeking_mode_btn.setFixedWidth(300)
|
||||||
seeking_mode_btn.clicked.connect(self._init_seekingUI)
|
seeking_mode_btn.clicked.connect(self._init_seekingUI)
|
||||||
@ -153,6 +157,7 @@ class MainWindow(BaseMainWindow):
|
|||||||
|
|
||||||
def _init_seekingUI(self) -> None:
|
def _init_seekingUI(self) -> None:
|
||||||
self._clear()
|
self._clear()
|
||||||
|
self._init_TabWidget()
|
||||||
self._transfer_settings()
|
self._transfer_settings()
|
||||||
|
|
||||||
button_layout = QtWidgets.QHBoxLayout()
|
button_layout = QtWidgets.QHBoxLayout()
|
||||||
@ -164,11 +169,11 @@ class MainWindow(BaseMainWindow):
|
|||||||
self._central_layout.addWidget(self.tabWidget)
|
self._central_layout.addWidget(self.tabWidget)
|
||||||
self._central_layout.addWidget(button_widget)
|
self._central_layout.addWidget(button_widget)
|
||||||
self._central_layout.addWidget(title, alignment=Qt.AlignRight)
|
self._central_layout.addWidget(title, alignment=Qt.AlignRight)
|
||||||
self.resize(800,800)
|
|
||||||
self._controller.seeking_mode()
|
self._controller.seeking_mode()
|
||||||
|
|
||||||
def _init_raportUI(self) -> None:
|
def _init_raportUI(self) -> None:
|
||||||
self._clear()
|
self._clear()
|
||||||
|
self._init_TabWidget()
|
||||||
self._transfer_settings()
|
self._transfer_settings()
|
||||||
|
|
||||||
save_screen_btn = QtWidgets.QPushButton("Save state")
|
save_screen_btn = QtWidgets.QPushButton("Save state")
|
||||||
@ -190,8 +195,8 @@ class MainWindow(BaseMainWindow):
|
|||||||
self._central_layout.addWidget(self.tabWidget)
|
self._central_layout.addWidget(self.tabWidget)
|
||||||
self._central_layout.addWidget(button_widget)
|
self._central_layout.addWidget(button_widget)
|
||||||
self._central_layout.addWidget(title, alignment=Qt.AlignRight)
|
self._central_layout.addWidget(title, alignment=Qt.AlignRight)
|
||||||
self.resize(800,800)
|
|
||||||
self._controller.raport_mode(None)
|
self._controller.raport_mode()
|
||||||
|
|
||||||
def show_plot_tabs(self, plot_widgets: list[QtWidgets.QWidget]) -> None:
|
def show_plot_tabs(self, plot_widgets: list[QtWidgets.QWidget]) -> None:
|
||||||
for plot_widget in plot_widgets:
|
for plot_widget in plot_widgets:
|
||||||
@ -229,12 +234,16 @@ class MainWindow(BaseMainWindow):
|
|||||||
system_params = self.sysSettings.getParams()
|
system_params = self.sysSettings.getParams()
|
||||||
self._controller.update_settings([operator_params, system_params])
|
self._controller.update_settings([operator_params, system_params])
|
||||||
|
|
||||||
|
def _upd_settings(self) -> None:
|
||||||
|
self._transfer_settings()
|
||||||
|
self._controller.update_plots()
|
||||||
|
|
||||||
def _close_tab(self, index:int) -> None:
|
def _close_tab(self, index:int) -> None:
|
||||||
self.tabWidget.removeTab(index)
|
self.tabWidget.removeTab(index)
|
||||||
|
|
||||||
def _open_file(self) -> None:
|
def _open_file(self) -> None:
|
||||||
path = self._select_csv()
|
path = self._select_csv()
|
||||||
self._controller.raport_mode(path)
|
self._controller.open_file(path)
|
||||||
|
|
||||||
def _select_csv(self) -> Optional[str]:
|
def _select_csv(self) -> Optional[str]:
|
||||||
CSV_path, _ = QtWidgets.QFileDialog.getOpenFileName(self,"Select csv file", "", "CSV Files (*.csv)")
|
CSV_path, _ = QtWidgets.QFileDialog.getOpenFileName(self,"Select csv file", "", "CSV Files (*.csv)")
|
||||||
|
|||||||
@ -25,8 +25,10 @@ def main():
|
|||||||
|
|
||||||
controller.signal_widgets.connect(window.show_plot_tabs)
|
controller.signal_widgets.connect(window.show_plot_tabs)
|
||||||
controller.signal_settings.connect(mediator.update_settings)
|
controller.signal_settings.connect(mediator.update_settings)
|
||||||
controller.signal_raport_mode.connect(monitor.custom_csv_extract_only)
|
controller.signal_open_file.connect(monitor.custom_csv_extract_only)
|
||||||
|
controller.signal_raport_mode.connect(monitor.start_raport)
|
||||||
controller.signal_seeking_mode.connect(monitor.start_seeking)
|
controller.signal_seeking_mode.connect(monitor.start_seeking)
|
||||||
|
controller.signal_update_plots.connect(monitor.update_plots)
|
||||||
|
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -343,12 +343,18 @@ class BaseController(QObject):
|
|||||||
def update_settings(self, settings: list[dict]) -> None:
|
def update_settings(self, settings: list[dict]) -> None:
|
||||||
...
|
...
|
||||||
|
|
||||||
def raport_mode (self, filepath: str) -> None:
|
def raport_mode (self) -> None:
|
||||||
...
|
...
|
||||||
|
|
||||||
def seeking_mode(self) -> None:
|
def seeking_mode(self) -> None:
|
||||||
...
|
...
|
||||||
|
|
||||||
|
def open_file(self, filepath: str) -> None:
|
||||||
|
...
|
||||||
|
|
||||||
|
def update_plots(self) -> None:
|
||||||
|
...
|
||||||
|
|
||||||
class BaseIdealDataBuilder(OptAlgorithm):
|
class BaseIdealDataBuilder(OptAlgorithm):
|
||||||
|
|
||||||
def __init__(self, params: list[dict]):
|
def __init__(self, params: list[dict]):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user