Skip to content

Commit

Permalink
Simulation support (Python): reworked our clearResults() wrapper.
Browse files Browse the repository at this point in the history
Indeed, it was working as expected from the GUI, i.e. the results were properly cleared, but not from a Python shell since we used to emit a signal that was only handled by our Simulation Experiment view.
  • Loading branch information
agarny committed Nov 20, 2019
1 parent 1523fd2 commit 39954b7
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 31 deletions.
Expand Up @@ -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);
Expand Down
Expand Up @@ -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

Expand Down Expand Up @@ -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);
}

Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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);
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -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);
Expand Down
4 changes: 4 additions & 0 deletions src/plugins/support/SimulationSupport/src/simulation.cpp
Expand Up @@ -947,6 +947,10 @@ void SimulationResults::reset()

deleteDataStore();
createDataStore();

// Let people know that we have been reset

emit resultsReset();
}

//==============================================================================
Expand Down
4 changes: 3 additions & 1 deletion src/plugins/support/SimulationSupport/src/simulation.h
Expand Up @@ -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();

Expand Down Expand Up @@ -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();
Expand Down
Expand Up @@ -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();
}

//==============================================================================
Expand Down

0 comments on commit 39954b7

Please sign in to comment.