diff --git a/src/plugins/simulation/SimulationExperimentView/i18n/SimulationExperimentView_fr.ts b/src/plugins/simulation/SimulationExperimentView/i18n/SimulationExperimentView_fr.ts
index 9bd336e708..1735e9a2af 100644
--- a/src/plugins/simulation/SimulationExperimentView/i18n/SimulationExperimentView_fr.ts
+++ b/src/plugins/simulation/SimulationExperimentView/i18n/SimulationExperimentView_fr.ts
@@ -556,22 +556,6 @@
aucun
-
-
- Information :
-
-
-
- Erreur :
-
-
-
- Attention :
-
-
-
- Fatal :
-
le modèle a besoin à la fois d'un solveur EDO et d'un solveur ALN, mais aucun n'est disponible
@@ -664,6 +648,14 @@
%1 avec %2
+
+
+ %1 :
+
+
+
+ Erreur :
+
QObject
diff --git a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp
index 3d1b8d30ef..bbf4157f33 100644
--- a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp
+++ b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp
@@ -955,34 +955,13 @@ void SimulationExperimentViewSimulationWidget::initialize(bool pReloadingView)
// it/them
for (const auto &simulationIssue : simulationIssues) {
- QString issueType;
-
- switch (simulationIssue.type()) {
- case SimulationSupport::SimulationIssue::Type::Information:
- issueType = tr("Information:");
-
- break;
- case SimulationSupport::SimulationIssue::Type::Error:
- issueType = tr("Error:");
-
- break;
- case SimulationSupport::SimulationIssue::Type::Warning:
- issueType = tr("Warning:");
-
- break;
- case SimulationSupport::SimulationIssue::Type::Fatal:
- issueType = tr("Fatal:");
-
- break;
- }
-
if ((simulationIssue.line() != 0) && (simulationIssue.column() != 0)) {
information += QString(QString()+OutputTab+"[%1:%2] %3 %4."+OutputBrLn).arg(simulationIssue.line())
.arg(simulationIssue.column())
- .arg(issueType,
+ .arg(tr("%1:").arg(simulationIssue.typeAsString()),
Core::formatMessage(simulationIssue.message().toHtmlEscaped()));
} else {
- information += QString(QString()+OutputTab+"%1 %2."+OutputBrLn).arg(issueType,
+ information += QString(QString()+OutputTab+"%1 %2."+OutputBrLn).arg(tr("%1:").arg(simulationIssue.typeAsString()),
Core::formatMessage(simulationIssue.message().toHtmlEscaped()));
}
}
diff --git a/src/plugins/support/SimulationSupport/i18n/SimulationSupport_fr.ts b/src/plugins/support/SimulationSupport/i18n/SimulationSupport_fr.ts
index 874894af2d..9fe83de6d2 100644
--- a/src/plugins/support/SimulationSupport/i18n/SimulationSupport_fr.ts
+++ b/src/plugins/support/SimulationSupport/i18n/SimulationSupport_fr.ts
@@ -22,33 +22,17 @@
OpenCOR::SimulationSupport::SimulationSupportPythonWrapper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ La simulation a des problèmes blocants et ne peut donc pas être exécutée.
-
+ La simulation a un environnement d'exécution invalide et ne peut donc pas être exécutée.
-
+ La mémoire requise pour la simulation n'a pas pu être allouée.
@@ -57,5 +41,21 @@
Le solveur demandé (%1) n'a pas pu être trouvé.
+
+
+ Information
+
+
+
+ Erreur
+
+
+
+ Attention
+
+
+
+ Fatal
+
diff --git a/src/plugins/support/SimulationSupport/src/simulation.cpp b/src/plugins/support/SimulationSupport/src/simulation.cpp
index fd2295844f..a860877ca8 100644
--- a/src/plugins/support/SimulationSupport/src/simulation.cpp
+++ b/src/plugins/support/SimulationSupport/src/simulation.cpp
@@ -77,6 +77,28 @@ SimulationIssue::Type SimulationIssue::type() const
//==============================================================================
+QString SimulationIssue::typeAsString() const
+{
+ // Return the issue's type as a string
+
+ switch (mType) {
+ case SimulationSupport::SimulationIssue::Type::Information:
+ return QObject::tr("Information");
+ case SimulationSupport::SimulationIssue::Type::Error:
+ return QObject::tr("Error");
+ case SimulationSupport::SimulationIssue::Type::Warning:
+ return QObject::tr("Warning");
+ case SimulationSupport::SimulationIssue::Type::Fatal:
+ return QObject::tr("Fatal");
+ }
+
+ return "???";
+ // Note: we can't reach this point, but without it we may, at compilation
+ // time, be told that not all control paths return a value...
+}
+
+//==============================================================================
+
int SimulationIssue::line() const
{
// Return the issue's line
diff --git a/src/plugins/support/SimulationSupport/src/simulation.h b/src/plugins/support/SimulationSupport/src/simulation.h
index b0c2bc9d9b..1960261ab1 100644
--- a/src/plugins/support/SimulationSupport/src/simulation.h
+++ b/src/plugins/support/SimulationSupport/src/simulation.h
@@ -102,6 +102,8 @@ class SIMULATIONSUPPORT_EXPORT SimulationIssue
explicit SimulationIssue(Type pType, const QString &pMessage);
Type type() const;
+ QString typeAsString() const;
+
int line() const;
int column() const;
QString message() const;
diff --git a/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp b/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp
index 2e97a42cdf..50cb4ccd36 100644
--- a/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp
+++ b/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp
@@ -400,44 +400,23 @@ void SimulationSupportPythonWrapper::clearResults(Simulation *pSimulation)
//==============================================================================
-PyObject *SimulationSupportPythonWrapper::issues(Simulation *pSimulation) const
+PyObject * SimulationSupportPythonWrapper::issues(Simulation *pSimulation) const
{
- // Return a list of any issues the simulation has
+ // Return a list of issues the simulation has
PyObject *issuesList = PyList_New(0);
-
auto simulationIssues = pSimulation->issues();
for (const auto &simulationIssue : simulationIssues) {
- QString issueType;
QString information;
- switch (simulationIssue.type()) {
- case SimulationSupport::SimulationIssue::Type::Information:
- issueType = tr("Information");
-
- break;
- case SimulationSupport::SimulationIssue::Type::Error:
- issueType = tr("Error");
-
- break;
- case SimulationSupport::SimulationIssue::Type::Warning:
- issueType = tr("Warning");
-
- break;
- case SimulationSupport::SimulationIssue::Type::Fatal:
- issueType = tr("Fatal");
-
- break;
- }
-
if ((simulationIssue.line() != 0) && (simulationIssue.column() != 0)) {
information = QString("[%1:%2] %3: %4.").arg(simulationIssue.line())
- .arg(simulationIssue.column())
- .arg(issueType,
- Core::formatMessage(simulationIssue.message()));
+ .arg(simulationIssue.column())
+ .arg(simulationIssue.typeAsString(),
+ Core::formatMessage(simulationIssue.message()));
} else {
- information = QString("%1: %2.").arg(issueType,
+ information = QString("%1: %2.").arg(simulationIssue.typeAsString(),
Core::formatMessage(simulationIssue.message()));
}
@@ -453,6 +432,8 @@ void SimulationSupportPythonWrapper::setStartingPoint(SimulationData *pSimulatio
double pStartingPoint,
bool pRecompute)
{
+ // Set the starting point of our simulation
+
pSimulationData->setStartingPoint(pStartingPoint, pRecompute);
}
@@ -461,6 +442,8 @@ void SimulationSupportPythonWrapper::setStartingPoint(SimulationData *pSimulatio
void SimulationSupportPythonWrapper::setEndingPoint(SimulationData *pSimulationData,
double pEndingPoint)
{
+ // Set the ending point of our simulation
+
pSimulationData->setEndingPoint(pEndingPoint);
}
@@ -469,6 +452,8 @@ void SimulationSupportPythonWrapper::setEndingPoint(SimulationData *pSimulationD
void SimulationSupportPythonWrapper::setPointInterval(SimulationData *pSimulationData,
double pPointInterval)
{
+ // Set the point interval for our simulation
+
pSimulationData->setPointInterval(pPointInterval);
}
@@ -494,16 +479,10 @@ void SimulationSupportPythonWrapper::setNlaSolver(SimulationData *pSimulationDat
//==============================================================================
-PyObject * SimulationSupportPythonWrapper::algebraic(SimulationData *pSimulationData) const
-{
- return DataStore::DataStorePythonWrapper::dataStoreValuesDict(pSimulationData->algebraicValues(),
- &(pSimulationData->simulationDataUpdatedFunction()));
-}
-
-//==============================================================================
-
PyObject * SimulationSupportPythonWrapper::constants(SimulationData *pSimulationData) const
{
+ // Return our constants values
+
return DataStore::DataStorePythonWrapper::dataStoreValuesDict(pSimulationData->constantsValues(),
&(pSimulationData->simulationDataUpdatedFunction()));
}
@@ -512,6 +491,8 @@ PyObject * SimulationSupportPythonWrapper::constants(SimulationData *pSimulation
PyObject * SimulationSupportPythonWrapper::rates(SimulationData *pSimulationData) const
{
+ // Return our rates values
+
return DataStore::DataStorePythonWrapper::dataStoreValuesDict(pSimulationData->ratesValues(),
&(pSimulationData->simulationDataUpdatedFunction()));
}
@@ -520,28 +501,37 @@ PyObject * SimulationSupportPythonWrapper::rates(SimulationData *pSimulationData
PyObject * SimulationSupportPythonWrapper::states(SimulationData *pSimulationData) const
{
+ // Return our states values
+
return DataStore::DataStorePythonWrapper::dataStoreValuesDict(pSimulationData->statesValues(),
&(pSimulationData->simulationDataUpdatedFunction()));
}
//==============================================================================
-DataStore::DataStoreVariable * SimulationSupportPythonWrapper::points(SimulationResults *pSimulationResults) const
+PyObject * SimulationSupportPythonWrapper::algebraic(SimulationData *pSimulationData) const
{
- return pSimulationResults->pointsVariable();
+ // Return our algebraic values
+
+ return DataStore::DataStorePythonWrapper::dataStoreValuesDict(pSimulationData->algebraicValues(),
+ &(pSimulationData->simulationDataUpdatedFunction()));
}
//==============================================================================
-PyObject * SimulationSupportPythonWrapper::algebraic(SimulationResults *pSimulationResults) const
+DataStore::DataStoreVariable * SimulationSupportPythonWrapper::points(SimulationResults *pSimulationResults) const
{
- return DataStore::DataStorePythonWrapper::dataStoreVariablesDict(pSimulationResults->algebraicVariables());
+ // Return our points variable
+
+ return pSimulationResults->pointsVariable();
}
//==============================================================================
PyObject * SimulationSupportPythonWrapper::constants(SimulationResults *pSimulationResults) const
{
+ // Return our constants variables
+
return DataStore::DataStorePythonWrapper::dataStoreVariablesDict(pSimulationResults->constantsVariables());
}
@@ -549,6 +539,8 @@ PyObject * SimulationSupportPythonWrapper::constants(SimulationResults *pSimulat
PyObject * SimulationSupportPythonWrapper::rates(SimulationResults *pSimulationResults) const
{
+ // Return our rates variables
+
return DataStore::DataStorePythonWrapper::dataStoreVariablesDict(pSimulationResults->ratesVariables());
}
@@ -556,11 +548,22 @@ PyObject * SimulationSupportPythonWrapper::rates(SimulationResults *pSimulationR
PyObject * SimulationSupportPythonWrapper::states(SimulationResults *pSimulationResults) const
{
+ // Return our states variables
+
return DataStore::DataStorePythonWrapper::dataStoreVariablesDict(pSimulationResults->statesVariables());
}
//==============================================================================
+PyObject * SimulationSupportPythonWrapper::algebraic(SimulationResults *pSimulationResults) const
+{
+ // Return our algebraic variables
+
+ return DataStore::DataStorePythonWrapper::dataStoreVariablesDict(pSimulationResults->algebraicVariables());
+}
+
+//==============================================================================
+
void SimulationSupportPythonWrapper::simulationError(const QString &pErrorMessage)
{
// Keep track of the given error message
diff --git a/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.h b/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.h
index 9f2475e47e..6654327e46 100644
--- a/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.h
+++ b/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.h
@@ -89,17 +89,17 @@ public slots:
void setNlaSolver(OpenCOR::SimulationSupport::SimulationData *pSimulationData,
const QString &pNlaSolverName);
- PyObject * algebraic(OpenCOR::SimulationSupport::SimulationData *pSimulationData) const;
PyObject * constants(OpenCOR::SimulationSupport::SimulationData *pSimulationData) const;
PyObject * rates(OpenCOR::SimulationSupport::SimulationData *pSimulationData) const;
PyObject * states(OpenCOR::SimulationSupport::SimulationData *pSimulationData) const;
+ PyObject * algebraic(OpenCOR::SimulationSupport::SimulationData *pSimulationData) const;
OpenCOR::DataStore::DataStoreVariable * points(OpenCOR::SimulationSupport::SimulationResults *pSimulationResults) const;
- PyObject * algebraic(OpenCOR::SimulationSupport::SimulationResults *pSimulationResults) const;
PyObject * constants(OpenCOR::SimulationSupport::SimulationResults *pSimulationResults) const;
PyObject * states(OpenCOR::SimulationSupport::SimulationResults *pSimulationResults) const;
PyObject * rates(OpenCOR::SimulationSupport::SimulationResults *pSimulationResults) const;
+ PyObject * algebraic(OpenCOR::SimulationSupport::SimulationResults *pSimulationResults) const;
private slots:
void simulationError(const QString &pErrorMessage);