diff --git a/src/controller/__pycache__/controller.cpython-310.pyc b/src/controller/__pycache__/controller.cpython-310.pyc index eebbf40..c93d105 100644 Binary files a/src/controller/__pycache__/controller.cpython-310.pyc and b/src/controller/__pycache__/controller.cpython-310.pyc differ diff --git a/src/controller/__pycache__/monitor.cpython-310.pyc b/src/controller/__pycache__/monitor.cpython-310.pyc index 731d0e7..b2d9573 100644 Binary files a/src/controller/__pycache__/monitor.cpython-310.pyc and b/src/controller/__pycache__/monitor.cpython-310.pyc differ diff --git a/src/controller/controller.py b/src/controller/controller.py index bdb6207..651fdaf 100644 --- a/src/controller/controller.py +++ b/src/controller/controller.py @@ -8,9 +8,13 @@ class Controller(BaseController): signal_widgets = pyqtSignal(list) signal_settings = pyqtSignal(list) + signal_monitor = pyqtSignal(str) def send_widgets(self, widgets: list[QWidget]) -> None: self.signal_widgets.emit(widgets) def push_settings(self, settings: list[dict]) -> None: self.signal_settings.emit(settings) + + def open_custom_file (self, filepath: str) -> None: + self.signal_monitor.emit(filepath) \ No newline at end of file diff --git a/src/controller/monitor.py b/src/controller/monitor.py index 533ed45..c30c446 100644 --- a/src/controller/monitor.py +++ b/src/controller/monitor.py @@ -47,5 +47,9 @@ class DirectoryMonitor(BaseDirectoryMonitor): else: logger.info(f"Failed pushing {str(all_files)}") - + def custom_dir_extract(self, dict_path:str ): + files = os.listdir(dict_path) + if files is not None: + all_files = [os.path.join(dict_path, file) for file in files] + self._mediator.notify(self, all_files) diff --git a/src/gui/__pycache__/mainGui.cpython-310.pyc b/src/gui/__pycache__/mainGui.cpython-310.pyc index bdf7195..aa8edb5 100644 Binary files a/src/gui/__pycache__/mainGui.cpython-310.pyc and b/src/gui/__pycache__/mainGui.cpython-310.pyc differ diff --git a/src/gui/__pycache__/plotter.cpython-310.pyc b/src/gui/__pycache__/plotter.cpython-310.pyc index 47c95e8..863a1d8 100644 Binary files a/src/gui/__pycache__/plotter.cpython-310.pyc and b/src/gui/__pycache__/plotter.cpython-310.pyc differ diff --git a/src/gui/mainGui.py b/src/gui/mainGui.py index 4949ca5..804986e 100644 --- a/src/gui/mainGui.py +++ b/src/gui/mainGui.py @@ -14,6 +14,7 @@ class MainWindow(BaseMainWindow): self.initUI() self.set_style(self) self.settings_button.clicked.connect(self._show_settings) + self.select_dir_button.clicked.connect(self._select_dir) self.operSettings = settingsWindow("params/operator_params.json", 'Operator', self._updater_trigger) self.sysSettings = settingsWindow("params/system_params.json", 'System', self._updater_trigger) @@ -23,9 +24,17 @@ class MainWindow(BaseMainWindow): self.tabWidget.tabCloseRequested.connect(self._close_tab) layout = QtWidgets.QVBoxLayout() layout.addWidget(self.tabWidget) + self.settings_button = QtWidgets.QPushButton("Show settings") self.settings_button.setFixedWidth(160) - layout.addWidget(self.settings_button) + self.select_dir_button = QtWidgets.QPushButton("Open directory") + self.select_dir_button.setFixedWidth(175) + button_layout = QtWidgets.QHBoxLayout() + button_layout.setSpacing(2) + button_layout.addWidget(self.settings_button) + button_layout.addWidget(self.select_dir_button) + + layout.addLayout(button_layout) self.setLayout(layout) def show_plot_tabs(self, plot_widgets: list[QtWidgets.QWidget]) -> None: @@ -63,6 +72,10 @@ class MainWindow(BaseMainWindow): def _close_tab(self, index:int) -> None: self.tabWidget.removeTab(index) + def _select_dir(self): + folder_path = QtWidgets.QFileDialog.getExistingDirectory(self, 'Select directory', "") + if folder_path: + self._controller.open_custom_file(folder_path) diff --git a/src/main.py b/src/main.py index 25919ae..06e1ba2 100644 --- a/src/main.py +++ b/src/main.py @@ -25,6 +25,7 @@ def main(): controller.signal_widgets.connect(window.show_plot_tabs) controller.signal_settings.connect(mediator.push_settings) + controller.signal_monitor.connect(monitor.custom_dir_extract) window.push_settings() diff --git a/src/utils/base/__pycache__/base.cpython-310.pyc b/src/utils/base/__pycache__/base.cpython-310.pyc index 579ebe5..b6502ba 100644 Binary files a/src/utils/base/__pycache__/base.cpython-310.pyc and b/src/utils/base/__pycache__/base.cpython-310.pyc differ diff --git a/src/utils/base/base.py b/src/utils/base/base.py index fdb3c5a..1029b54 100644 --- a/src/utils/base/base.py +++ b/src/utils/base/base.py @@ -254,6 +254,9 @@ class BaseController(QObject): def push_settings(self, settings: list[dict]) -> None: ... + + def open_custom_file (self, filepath: str) -> None: + ... class BaseIdealDataBuilder(OptAlgorithm):