Skip to content

Commit

Permalink
ticket:3852
Browse files Browse the repository at this point in the history
Allow saving simulation settings without doing simulation.
  • Loading branch information
adeas31 committed Apr 18, 2016
1 parent a8650dc commit 2f6120e
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 19 deletions.
66 changes: 50 additions & 16 deletions OMEdit/OMEditGUI/Simulation/SimulationDialog.cpp
Expand Up @@ -501,25 +501,32 @@ void SimulationDialog::setUpForm()
mpIntervalTextBox->setValidator(pDoubleValidator);
mpToleranceTextBox->setValidator(pDoubleValidator);
// Create the buttons
mpSaveButton = new QPushButton(Helper::save);
mpSaveButton->setAutoDefault(false);
mpSaveButton->setToolTip(tr("Save simulation settings inside model"));
connect(mpSaveButton, SIGNAL(clicked()), this, SLOT(save()));
mpSaveAndSimulateButton = new QPushButton(tr("Save && Simulate"));
mpSaveAndSimulateButton->setAutoDefault(false);
mpSaveAndSimulateButton->setToolTip(tr("Save simulation settings inside model & simulate"));
connect(mpSaveAndSimulateButton, SIGNAL(clicked()), this, SLOT(saveAndSimulate()));
mpSimulateButton = new QPushButton(Helper::simulate);
mpSimulateButton->setAutoDefault(true);
connect(mpSimulateButton, SIGNAL(clicked()), this, SLOT(simulate()));
mpCancelButton = new QPushButton(Helper::cancel);
mpCancelButton->setAutoDefault(false);
connect(mpCancelButton, SIGNAL(clicked()), this, SLOT(reject()));
// save simulations options
mpSaveSimulationCheckbox = new QCheckBox(tr("Save simulation settings inside model"));
// adds buttons to the button box
mpButtonBox = new QDialogButtonBox(Qt::Horizontal);
mpButtonBox->addButton(mpSaveButton, QDialogButtonBox::ActionRole);
mpButtonBox->addButton(mpSaveAndSimulateButton, QDialogButtonBox::ActionRole);
mpButtonBox->addButton(mpSimulateButton, QDialogButtonBox::ActionRole);
mpButtonBox->addButton(mpCancelButton, QDialogButtonBox::ActionRole);
// Create a layout
QGridLayout *pMainLayout = new QGridLayout;
pMainLayout->addWidget(mpSimulationHeading, 0, 0, 1, 2);
pMainLayout->addWidget(mpHorizontalLine, 1, 0, 1, 2);
pMainLayout->addWidget(mpSimulationTabWidget, 2, 0, 1, 2);
pMainLayout->addWidget(mpSaveSimulationCheckbox, 3, 0);
pMainLayout->addWidget(mpButtonBox, 3, 1);
pMainLayout->addWidget(mpSimulationHeading, 0, 0);
pMainLayout->addWidget(mpHorizontalLine, 1, 0);
pMainLayout->addWidget(mpSimulationTabWidget, 2, 0);
pMainLayout->addWidget(mpButtonBox, 3, 0);
setLayout(pMainLayout);
}

Expand Down Expand Up @@ -569,7 +576,8 @@ void SimulationDialog::initializeFields(bool isReSimulate, SimulationOptions sim
}
mpCflagsTextBox->setEnabled(true);
mpFileNameTextBox->setEnabled(true);
mpSaveSimulationCheckbox->setEnabled(true);
mpSaveButton->setEnabled(true);
mpSaveAndSimulateButton->setEnabled(true);
mpSimulateButton->setText(Helper::simulate);
} else {
mIsReSimulate = true;
Expand Down Expand Up @@ -685,8 +693,8 @@ void SimulationDialog::initializeFields(bool isReSimulate, SimulationOptions sim
}
mpAdditionalSimulationFlagsTextBox->setText(simulationOptions.getAdditionalSimulationFlags());
// save simulation settings
mpSaveSimulationCheckbox->setChecked(false);
mpSaveSimulationCheckbox->setDisabled(true);
mpSaveButton->setEnabled(false);
mpSaveAndSimulateButton->setEnabled(false);
mpSimulateButton->setText(Helper::reSimulate);
}
}
Expand Down Expand Up @@ -921,12 +929,14 @@ void SimulationDialog::createAndShowSimulationOutputWidget(SimulationOptions sim
}

/*!
Saves the simulation options in the model.
*/
void SimulationDialog::saveSimulationOptions()
* \brief SimulationDialog::saveSimulationSettings
* Saves the simulation settings in the model.
*/
void SimulationDialog::saveSimulationSettings()
{
if (mIsReSimulate || !mpSaveSimulationCheckbox->isChecked())
if (mIsReSimulate) {
return;
}

QString oldExperimentAnnotation = "annotate=experiment(";
// if the class has experiment annotation then read it.
Expand Down Expand Up @@ -1177,6 +1187,32 @@ void SimulationDialog::showArchivedSimulation(QTreeWidgetItem *pTreeWidgetItem)
}
}

/*!
* \brief SimulationDialog::save
* Slot activated when mpSaveButton clicked signal is raised.\n
* Saves the simulation settings in the model.
*/
void SimulationDialog::save()
{
if (validate()) {
saveSimulationSettings();
accept();
}
}

/*!
* \brief SimulationDialog::saveAndSimulate
* Slot activated when mpSaveAndSimulateButton clicked signal is raised.\n
* Saves the simulation settings in the model and simulate the model.
*/
void SimulationDialog::saveAndSimulate()
{
if (validate()) {
saveSimulationSettings();
simulate();
}
}

/*!
* \brief SimulationDialog::simulate
* Slot activated when mpSimulateButton clicked signal is raised.\n
Expand Down Expand Up @@ -1218,8 +1254,6 @@ void SimulationDialog::simulate()
}
mpMainWindow->getOMCProxy()->setCommandLineOptions("+profiling=" + mpProfilingComboBox->currentText());
simulationOptions = createSimulationOptions();
// before simulating save the simulation options.
saveSimulationOptions();
// show the progress bar
mpMainWindow->getStatusBar()->showMessage(tr("Translating %1.").arg(mClassName));
mpMainWindow->getProgressBar()->setRange(0, 0);
Expand Down
9 changes: 6 additions & 3 deletions OMEdit/OMEditGUI/Simulation/SimulationDialog.h
Expand Up @@ -111,7 +111,6 @@ class SimulationDialog : public QDialog
QLineEdit *mpDasslMaxStepSizeTextBox;
Label *mpDasslMaxIntegrationOrderLabel;
QSpinBox *mpDasslMaxIntegrationOrderSpinBox;
QCheckBox *mpSaveSimulationCheckbox;
Label *mpCflagsLabel;
QLineEdit *mpCflagsTextBox;
Label *mpNumberOfProcessorsLabel;
Expand Down Expand Up @@ -173,8 +172,10 @@ class SimulationDialog : public QDialog
QWidget *mpArchivedSimulationsTab;
QTreeWidget *mpArchivedSimulationsTreeWidget;
// buttons
QPushButton *mpCancelButton;
QPushButton *mpSaveButton;
QPushButton *mpSaveAndSimulateButton;
QPushButton *mpSimulateButton;
QPushButton *mpCancelButton;
QDialogButtonBox *mpButtonBox;
QList<SimulationOutputWidget*> mSimulationOutputWidgetsList;
LibraryTreeItem *mpLibraryTreeItem;
Expand All @@ -189,7 +190,7 @@ class SimulationDialog : public QDialog
SimulationOptions createSimulationOptions();
void createAndShowSimulationOutputWidget(SimulationOptions simulationOptions);
void showSimulationOutputWidget(SimulationOutputWidget *pSimulationOutputWidget);
void saveSimulationOptions();
void saveSimulationSettings();
public:
void reSimulate(SimulationOptions simulationOptions);
void showAlgorithmicDebugger(SimulationOptions simulationOptions);
Expand All @@ -206,6 +207,8 @@ public slots:
void browseEquationSystemInitializationFile();
void showSimulationFlagsHelp();
void showArchivedSimulation(QTreeWidgetItem *pTreeWidgetItem);
void save();
void saveAndSimulate();
void simulate();
private slots:
void resultFileNameChanged(QString text);
Expand Down

0 comments on commit 2f6120e

Please sign in to comment.