diff --git a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewpythonwrapper.cpp b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewpythonwrapper.cpp index d2ec111cf2..b9e2e26d7a 100644 --- a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewpythonwrapper.cpp +++ b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewpythonwrapper.cpp @@ -64,12 +64,6 @@ static PyObject * simulation(const QString &pFileName, QObject::connect(simulation, &SimulationSupport::Simulation::runStarting, pSimulationExperimentViewWidget, &SimulationExperimentViewWidget::startingRun); - // Let the Simulation Experiment view widget know when we want to clear - // simulation results - - QObject::connect(simulation, &SimulationSupport::Simulation::clearResults, - pSimulationExperimentViewWidget, &SimulationExperimentViewWidget::clearSimulationResults); - // Return our simulation wrapped into a Python object return PythonQt::priv()->wrapQObject(simulation); diff --git a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp index 8224f25599..d3c4117f78 100644 --- a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp +++ b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.cpp @@ -127,6 +127,8 @@ SimulationExperimentViewSimulationWidget::SimulationExperimentViewSimulationWidg connect(mSimulation->data(), &SimulationSupport::SimulationData::dataModified, this, &SimulationExperimentViewSimulationWidget::simulationDataModified); + connect(mSimulation->results(), &SimulationSupport::SimulationResults::resultsReset, + this, &SimulationExperimentViewSimulationWidget::simulationResultsReset); // Allow for things to be dropped on us @@ -1453,12 +1455,6 @@ void SimulationExperimentViewSimulationWidget::clearSimulationResults() // realign themselves)... mSimulation->results()->reset(); - - // Update our simulation mode and check for results - - updateSimulationMode(); - - mViewWidget->checkSimulationResults(mSimulation->fileName(), Task::ResetRuns); setUpdatesEnabled(true); } @@ -3654,6 +3650,21 @@ void SimulationExperimentViewSimulationWidget::simulationDataModified(bool pIsMo //============================================================================== +void SimulationExperimentViewSimulationWidget::simulationResultsReset() +{ + setUpdatesEnabled(false); + // Update our simulation mode and check for results + // Note: see clearSimulationResults() for the reason behing temporarily + // disabling updates... + + updateSimulationMode(); + + mViewWidget->checkSimulationResults(mSimulation->fileName(), Task::ResetRuns); + setUpdatesEnabled(true); +} + +//============================================================================== + void SimulationExperimentViewSimulationWidget::simulationPropertyChanged(Core::Property *pProperty) { // Update our simulation properties, as well as our plots diff --git a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.h b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.h index f3a2d8d228..3d82c76b7b 100644 --- a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.h +++ b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewsimulationwidget.h @@ -390,6 +390,7 @@ private slots: void simulationError(const QString &pMessage); void simulationDataModified(bool pIsModified); + void simulationResultsReset(); void simulationPropertyChanged(Core::Property *pProperty); void solversPropertyChanged(Core::Property *pProperty); diff --git a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.cpp b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.cpp index 69747d3003..3ee6c469f0 100644 --- a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.cpp +++ b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.cpp @@ -585,19 +585,6 @@ void SimulationExperimentViewWidget::startingRun(const QString &pFileName) //============================================================================== -void SimulationExperimentViewWidget::clearSimulationResults(const QString &pFileName) -{ - // Clear the simulation results for the given file name - - SimulationExperimentViewSimulationWidget *simulationWidget = mSimulationWidgets.value(pFileName); - - if (simulationWidget != nullptr) { - simulationWidget->clearSimulationResults(); - } -} - -//============================================================================== - void SimulationExperimentViewWidget::simulationWidgetSplitterMoved(const QIntList &pSizes) { // The splitter of our simulation widget has moved, so keep track of its new diff --git a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.h b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.h index 1af1225dd8..d70a7eb908 100644 --- a/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.h +++ b/src/plugins/simulation/SimulationExperimentView/src/simulationexperimentviewwidget.h @@ -133,7 +133,6 @@ class SimulationExperimentViewWidget : public Core::ViewWidget public slots: void startingRun(const QString &pFileName); - void clearSimulationResults(const QString &pFileName); private slots: void simulationWidgetSplitterMoved(const QIntList &pSizes); diff --git a/src/plugins/support/SimulationSupport/src/simulation.cpp b/src/plugins/support/SimulationSupport/src/simulation.cpp index 43e70c51e4..56f0052dbc 100644 --- a/src/plugins/support/SimulationSupport/src/simulation.cpp +++ b/src/plugins/support/SimulationSupport/src/simulation.cpp @@ -947,6 +947,10 @@ void SimulationResults::reset() deleteDataStore(); createDataStore(); + + // Let people know that we have been reset + + emit resultsReset(); } //============================================================================== diff --git a/src/plugins/support/SimulationSupport/src/simulation.h b/src/plugins/support/SimulationSupport/src/simulation.h index 1144ecfc81..b6fdc11d4c 100644 --- a/src/plugins/support/SimulationSupport/src/simulation.h +++ b/src/plugins/support/SimulationSupport/src/simulation.h @@ -305,6 +305,9 @@ class SIMULATIONSUPPORT_EXPORT SimulationResults : public SimulationObject double realValue(double pPoint, DataStore::DataStoreVariable *pVoi, DataStore::DataStoreVariable *pVariable) const; +signals: + void resultsReset(); + public slots: void reload(); @@ -409,7 +412,6 @@ class SIMULATIONSUPPORT_EXPORT Simulation : public QObject signals: void runStarting(const QString &pFileName); - void clearResults(const QString &pFileName); void running(bool pIsResuming); void paused(); diff --git a/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp b/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp index d76359f77a..95c6329420 100644 --- a/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp +++ b/src/plugins/support/SimulationSupport/src/simulationsupportpythonwrapper.cpp @@ -397,11 +397,9 @@ void SimulationSupportPythonWrapper::reset(Simulation *pSimulation, bool pAll) void SimulationSupportPythonWrapper::clearResults(Simulation *pSimulation) { - // Get our widget to clear our results - // Note: we get the widget to do this as it needs to clear all associated - // graphs... + // Reset our simulation results - emit pSimulation->clearResults(pSimulation->fileName()); + pSimulation->results()->reset(); } //==============================================================================