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 = [
StudyNetworkReachChecker(),
StudyGeometryChecker(),
DummyOK(),
DummyWARNING(),
DummyERROR(),
# DummyOK(),
# DummyWARNING(),
# DummyERROR(),
]
return lst

View File

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

View File

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

View File

@ -2,7 +2,7 @@
from tools import trace, timer
from View.ASubWindow import ASubWindow
from View.ASubWindow import ASubWindow, ASubMainWindow
from View.ListedSubWindow import ListedSubWindow
from PyQt5.QtGui import (
@ -12,7 +12,7 @@ from PyQt5.QtGui import (
from PyQt5.QtCore import (
Qt, QVariant, QAbstractTableModel,
QCoreApplication, QModelIndex, pyqtSlot,
QRect,
QRect, QTimer,
)
from PyQt5.QtWidgets import (
@ -66,3 +66,65 @@ class SelectSolverWindow(ASubWindow, ListedSubWindow):
)
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">
<layout class="QGridLayout" name="gridLayout">
<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>
</layout>
</widget>