diff --git a/src/View/CheckList/Window.py b/src/View/CheckList/Window.py index 4c40ad1faba8ada49537efc0e233f9a1e51cc69b..b02522bcf6c78ba2a45d422b3030c4ea0425c46d 100644 --- a/src/View/CheckList/Window.py +++ b/src/View/CheckList/Window.py @@ -18,8 +18,7 @@ from tools import trace, timer -from View.ASubWindow import ASubMainWindow -from View.ListedSubWindow import ListedSubWindow +from View.Tools.PamhyrWindow import PamhyrWindow from PyQt5.QtGui import ( QKeySequence, @@ -44,30 +43,31 @@ from View.CheckList.Worker import Worker _translate = QCoreApplication.translate -class CheckListWindow(ASubMainWindow, ListedSubWindow): +class CheckListWindow(PamhyrWindow): + _pamhyr_ui = "CheckList" + _pamhyr_name = "Check list" signalStatus = pyqtSignal(str) - def __init__(self, title="Check list", - autorun:bool=True, + def __init__(self, autorun:bool=True, study=None, config=None, solver=None, parent=None): - self._title = title + " - " + study.name - self._autorun = autorun - - self._study = study - self._config = config self._solver = solver - self._parent = parent + + name = self._pamhyr_name + " - " + study.name super(CheckListWindow, self).__init__( - name=self._title, ui="CheckList", parent=parent + title = name, + study = study, + config = config, + options = [], + parent = parent ) - self.ui.setWindowTitle(self._title) self._checker_list = ( - self._study.checkers() + self._solver.checkers() + self._study.checkers() + + self._solver.checkers() ) self.setup_table() diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index 002ee11bd6cca88bae89848fd83b17dd4f41810f..01e7a3b0804a12a90df1373f721e6ef5d5ec6d88 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -52,10 +52,10 @@ from View.Stricklers.Window import StricklersWindow from View.Frictions.Window import FrictionsWindow from View.SedimentLayers.Window import SedimentLayersWindow from View.SedimentLayers.Reach.Window import ReachSedimentLayersWindow -# from View.SolverParameters.Window import SolverParametersWindow -# from View.RunSolver.Window import SelectSolverWindow, SolverLogWindow -# from View.CheckList.Window import CheckListWindow -# from View.Results.Window import ResultsWindow +from View.SolverParameters.Window import SolverParametersWindow +from View.RunSolver.Window import SelectSolverWindow, SolverLogWindow +from View.CheckList.Window import CheckListWindow +from View.Results.Window import ResultsWindow # from View.Debug.Window import ReplWindow from Model.Study import Study diff --git a/src/View/Results/Window.py b/src/View/Results/Window.py index 251f5a13930d5173f70f9e143db13af49fcc2bf4..4009c83624fe4daebbd49f35ac2186c82a2f57ed 100644 --- a/src/View/Results/Window.py +++ b/src/View/Results/Window.py @@ -21,8 +21,7 @@ from datetime import datetime from tools import trace, timer -from View.ASubWindow import ASubMainWindow -from View.ListedSubWindow import ListedSubWindow +from View.Tools.PamhyrWindow import PamhyrWindow from PyQt5.QtGui import ( QKeySequence, @@ -63,23 +62,32 @@ _translate = QCoreApplication.translate logger = logging.getLogger() -class ResultsWindow(ASubMainWindow, ListedSubWindow): - def __init__(self, title="Results", - study=None, solver=None, results=None, +class ResultsWindow(PamhyrWindow): + _pamhyr_ui = "Results" + _pamhyr_name = "Results" + + def __init__(self, study=None, config=None, + solver=None, results=None, parent=None): - self._study = study self._solver = solver self._results = results self._timestamps = sorted(list(self._results.get("timestamps"))) - self.setup_title(title) + name = ( + self._pamhyr_name + " - " + + study.name + " - " + + self._solver.name + " - " + + self._results.date + ) super(ResultsWindow, self).__init__( - name=title, ui="Results", parent=parent + title = name, + study = study, + config = config, + parent=parent ) - self.setup_sc() self.setup_table() self.setup_graph() self.setup_slider() @@ -96,14 +104,6 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow): + self._results.date ) - def setup_sc(self): - self._undo_stack = QUndoStack() - - self.undo_sc = QShortcut(QKeySequence.Undo, self) - self.redo_sc = QShortcut(QKeySequence.Redo, self) - self.copy_sc = QShortcut(QKeySequence.Copy, self) - self.paste_sc = QShortcut(QKeySequence.Paste, self) - def setup_table(self): retranslate() self._table = {} @@ -289,11 +289,6 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow): self._status_label.setText(txt) def setup_connections(self): - self.undo_sc.activated.connect(self.undo) - self.redo_sc.activated.connect(self.redo) - self.copy_sc.activated.connect(self.copy) - self.paste_sc.activated.connect(self.paste) - fun = { "reach": self._set_current_reach, "profile": self._set_current_profile, @@ -411,14 +406,14 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow): timestamp = self._timestamps[self._slider_time.value()] self.update(timestamp = timestamp) - def copy(self): + def _copy(self): logger.info("TODO: copy") - def paste(self): + def _paste(self): logger.info("TODO: paste") - def undo(self): + def _undo(self): self._table.undo() - def redo(self): + def _redo(self): self._table.redo() diff --git a/src/View/RunSolver/Log/Window.py b/src/View/RunSolver/Log/Window.py index 93d42165492ade7584584cb5e465b38d5aca3d87..2a33311f36669b2f217d0221150c197c5455a596 100644 --- a/src/View/RunSolver/Log/Window.py +++ b/src/View/RunSolver/Log/Window.py @@ -22,8 +22,7 @@ import os from queue import Queue from tools import trace, timer -from View.ASubWindow import ASubWindow, ASubMainWindow -from View.ListedSubWindow import ListedSubWindow +from View.Tools.PamhyrWindow import PamhyrDialog, PamhyrWindow from PyQt5.QtGui import ( QKeySequence, @@ -45,24 +44,23 @@ from PyQt5.QtWidgets import ( _translate = QCoreApplication.translate -class SolverLogFileWindow(ASubMainWindow, ListedSubWindow): - def __init__(self, title="Solver logs", - file_name = None, +class SolverLogFileWindow(PamhyrWindow): + _pamhyr_ui = "SolverLogFile" + _pamhyr_name = "Solver logs" + + def __init__(self, file_name = None, study=None, config=None, solver=None, parent=None): - self._title = title - self._parent = parent - - self._study = study - self._config = config self._solver = solver - self._file_name = file_name super(SolverLogFileWindow, self).__init__( - name=self._title, ui="SolverLogFile", parent=parent + title = self._pamhyr_name, + study = study, + config = config, + options = [], + parent = parent ) - self.ui.setWindowTitle(self._title) self.setup_action() self.setup_connections() diff --git a/src/View/RunSolver/Window.py b/src/View/RunSolver/Window.py index 226d4da5fb43cfd2c64ad3c9e26535ad97e6e218..72a65d455367029edc183ea0539cc7b61ece75bf 100644 --- a/src/View/RunSolver/Window.py +++ b/src/View/RunSolver/Window.py @@ -23,8 +23,7 @@ import tempfile from queue import Queue from tools import trace, timer -from View.ASubWindow import ASubWindow, ASubMainWindow -from View.ListedSubWindow import ListedSubWindow +from View.Tools.PamhyrWindow import PamhyrDialog, PamhyrWindow from PyQt5.QtGui import ( QKeySequence, @@ -56,20 +55,21 @@ _translate = QCoreApplication.translate logger = logging.getLogger() -class SelectSolverWindow(ASubWindow, ListedSubWindow): - def __init__(self, title="Select solver", - study=None, config=None, - parent=None): - self._title = title +class SelectSolverWindow(PamhyrDialog): + _pamhyr_ui = "SelectSolver" + _pamhyr_name = "Select solver" - self._study = study - self._config = config + def __init__(self, study=None, config=None, + parent=None): self._solver = None super(SelectSolverWindow, self).__init__( - name=self._title, ui="SelectSolver", parent=parent + title = self._pamhyr_name, + study = study, + config = config, + options = [], + parent = parent ) - self.ui.setWindowTitle(self._title) self.setup_combobox() self.setup_connections() @@ -101,24 +101,22 @@ class SelectSolverWindow(ASubWindow, ListedSubWindow): super(SelectSolverWindow, self).accept() +class SolverLogWindow(PamhyrWindow): + _pamhyr_ui = "SolverLog" + _pamhyr_name = "Solver Log" -class SolverLogWindow(ASubMainWindow, ListedSubWindow): - def __init__(self, title="Solver logs", - study=None, config=None, + def __init__(self, study=None, config=None, solver=None, parent=None): - self._title = title - self._parent = parent - - self._study = study - self._config = config self._solver = solver - self._results = None super(SolverLogWindow, self).__init__( - name=self._title, ui="SolverLog", parent=parent + title = self._pamhyr_name, + study = study, + config = config, + options = [], + parent = parent ) - self.ui.setWindowTitle(self._title) self.setup_action() self.setup_alarm() diff --git a/src/View/SolverParameters/Window.py b/src/View/SolverParameters/Window.py index c04eebc7ed777cbdcc384d17442cce8f0eb5fb7d..a3b225a6221f34cfc0a9f308281fd8e1a6a79315 100644 --- a/src/View/SolverParameters/Window.py +++ b/src/View/SolverParameters/Window.py @@ -20,8 +20,7 @@ import logging from tools import trace, timer -from View.ASubWindow import ASubMainWindow -from View.ListedSubWindow import ListedSubWindow +from View.Tools.PamhyrWindow import PamhyrWindow from PyQt5.QtGui import ( QKeySequence, @@ -51,23 +50,28 @@ _translate = QCoreApplication.translate logger = logging.getLogger() -class SolverParametersWindow(ASubMainWindow, ListedSubWindow): - def __init__(self, title="Solver parameters", study=None, parent=None): +class SolverParametersWindow(PamhyrWindow): + _pamhyr_ui = "SolverParameters" + _pamhyr_name = "Solver parameters" + + def __init__(self, study=None, config=None, parent=None): # Init tanslate dictionary tr.init() - self._title = title + " - " + study.name + name = self._pamhyr_name + " - " + study.name super(SolverParametersWindow, self).__init__( - name=title, ui="SolverParameters", parent=parent + title = name, + study = study, + config = config, + options = ['copy'], + parent = parent ) - self._study = study self._params = self._study.river.parameters self.setup_sc() self.setup_table() - self.setup_connections() self.ui.setWindowTitle(self._title) @@ -77,10 +81,10 @@ class SolverParametersWindow(ASubMainWindow, ListedSubWindow): for st in solver_type_list: self._undo_stack[st] = QUndoStack() - self.undo_sc = QShortcut(QKeySequence.Undo, self) - self.redo_sc = QShortcut(QKeySequence.Redo, self) - self.copy_sc = QShortcut(QKeySequence.Copy, self) - self.paste_sc = QShortcut(QKeySequence.Paste, self) + self._undo_sc = QShortcut(QKeySequence.Undo, self) + self._redo_sc = QShortcut(QKeySequence.Redo, self) + self._undo_sc.activated.connect(self._undo) + self._redo_sc.activated.connect(self._redo) def setup_table(self): self._table = {} @@ -115,31 +119,24 @@ class SolverParametersWindow(ASubMainWindow, ListedSubWindow): # Create tab self._tab_widget.addTab(widget, f"{solver_long_name[st]}") - - def setup_connections(self): - self.undo_sc.activated.connect(self.undo) - self.redo_sc.activated.connect(self.redo) - self.copy_sc.activated.connect(self.copy) - self.paste_sc.activated.connect(self.paste) - def current_tab(self): return self.find(QTabWidget, "tabWidget")\ .currentWidget()\ .objectName()\ .replace("tab_", "") - def undo(self): + def _undo(self): tab = self.current_tab() self._table[tab].undo() self._set_current_reach() - def redo(self): + def _redo(self): tab = self.current_tab() self._table[tab].redo() self._set_current_reach() - def copy(self): + def _copy(self): logger.info("TODO: copy") - def paste(self): + def _paste(self): logger.info("TODO: paste")