SolverLog: Add code base.

mesh
Pierre-Antoine Rouby 2023-06-19 11:53:05 +02:00
parent dccf1a82ac
commit faffebe361
5 changed files with 91 additions and 9 deletions

View File

@ -37,9 +37,9 @@ class Study(Serializable):
lst = [ lst = [
StudyNetworkReachChecker(), StudyNetworkReachChecker(),
StudyGeometryChecker(), StudyGeometryChecker(),
DummyOK(), # DummyOK(),
DummyWARNING(), # DummyWARNING(),
DummyERROR(), # DummyERROR(),
] ]
return lst return lst

View File

@ -40,6 +40,7 @@ class CheckListWindow(ASubMainWindow, ListedSubWindow):
self._study = study self._study = study
self._config = config self._config = config
self._solver = solver self._solver = solver
self._parent = parent
super(CheckListWindow, self).__init__( super(CheckListWindow, self).__init__(
name=self._title, ui="CheckList", parent=parent name=self._title, ui="CheckList", parent=parent
@ -139,7 +140,7 @@ class CheckListWindow(ASubMainWindow, ListedSubWindow):
self.find(QPushButton, "pushButton_retry").setEnabled(True) self.find(QPushButton, "pushButton_retry").setEnabled(True)
errors = any(filter(lambda c: c.is_error(), self._checker_list)) errors = any(filter(lambda c: c.is_error(), self._checker_list))
if errors: if not errors:
self.find(QPushButton, "pushButton_ok").setEnabled(True) self.find(QPushButton, "pushButton_ok").setEnabled(True)
self.update_statusbar() self.update_statusbar()
@ -167,5 +168,5 @@ class CheckListWindow(ASubMainWindow, ListedSubWindow):
self.end() self.end()
def accept(self): def accept(self):
print("ok") self._parent.solver_log(self._solver)
self.end() self.end()

View File

@ -28,7 +28,7 @@ from View.InitialConditions.Window import InitialConditionsWindow
from View.Stricklers.Window import StricklersWindow from View.Stricklers.Window import StricklersWindow
from View.Sections.Window import SectionsWindow from View.Sections.Window import SectionsWindow
from View.SolverParameters.Window import SolverParametersWindow from View.SolverParameters.Window import SolverParametersWindow
from View.RunSolver.Window import SelectSolverWindow from View.RunSolver.Window import SelectSolverWindow, SolverLogWindow
from View.CheckList.Window import CheckListWindow from View.CheckList.Window import CheckListWindow
from Model.Study import Study from Model.Study import Study
@ -391,6 +391,15 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
) )
check.show() check.show()
def solver_log(self, solver):
sol = SolverLogWindow(
study = self.model,
config = self.conf,
solver = solver,
parent = self
)
sol.show()
# TODO: Delete me ! # TODO: Delete me !
############### ###############
# DUMMY STUFF # # DUMMY STUFF #

View File

@ -2,7 +2,7 @@
from tools import trace, timer from tools import trace, timer
from View.ASubWindow import ASubWindow from View.ASubWindow import ASubWindow, ASubMainWindow
from View.ListedSubWindow import ListedSubWindow from View.ListedSubWindow import ListedSubWindow
from PyQt5.QtGui import ( from PyQt5.QtGui import (
@ -12,7 +12,7 @@ from PyQt5.QtGui import (
from PyQt5.QtCore import ( from PyQt5.QtCore import (
Qt, QVariant, QAbstractTableModel, Qt, QVariant, QAbstractTableModel,
QCoreApplication, QModelIndex, pyqtSlot, QCoreApplication, QModelIndex, pyqtSlot,
QRect, QRect, QTimer,
) )
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
@ -66,3 +66,65 @@ class SelectSolverWindow(ASubWindow, ListedSubWindow):
) )
super(SelectSolverWindow, self).accept() super(SelectSolverWindow, self).accept()
class SolverLogWindow(ASubMainWindow, ListedSubWindow):
def __init__(self, title="Solver logs",
study=None, config=None,
solver=None, parent=None):
self._title = title
self._study = study
self._config = config
self._solver = solver
super(SolverLogWindow, self).__init__(
name=self._title, ui="SolverLog", parent=parent
)
self.ui.setWindowTitle(self._title)
self.setup_action()
self.setup_alarm()
self.setup_connections()
self._alarm.start(500)
def setup_action(self):
self.find(QAction, "action_start").setEnabled(False)
self.find(QAction, "action_pause").setEnabled(True)
self.find(QAction, "action_stop").setEnabled(True)
def setup_alarm(self):
self._alarm = QTimer()
def setup_connections(self):
self.find(QAction, "action_start").triggered.connect(self.start)
self.find(QAction, "action_pause").triggered.connect(self.pause)
self.find(QAction, "action_stop").triggered.connect(self.stop)
self._alarm.timeout.connect(self.update)
def update(self):
print("update")
def start(self):
print("start")
self.find(QAction, "action_start").setEnabled(False)
self.find(QAction, "action_pause").setEnabled(True)
self.find(QAction, "action_stop").setEnabled(True)
def pause(self):
print("pause")
self.find(QAction, "action_start").setEnabled(True)
self.find(QAction, "action_pause").setEnabled(False)
self.find(QAction, "action_stop").setEnabled(True)
def stop(self):
print("stop")
self.find(QAction, "action_start").setEnabled(True)
self.find(QAction, "action_pause").setEnabled(False)
self.find(QAction, "action_stop").setEnabled(False)

View File

@ -16,7 +16,17 @@
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="0" column="0">
<widget class="QTextEdit" name="textEdit"/> <widget class="QTextEdit" name="textEdit">
<property name="documentTitle">
<string notr="true"/>
</property>
<property name="undoRedoEnabled">
<bool>false</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>