Skip to content

Commit

Permalink
ticket:2909 Allow deleting the intermediate compilation files
Browse files Browse the repository at this point in the history
  • Loading branch information
adeas31 committed Oct 5, 2017
1 parent 90af743 commit 126db43
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 55 deletions.
10 changes: 9 additions & 1 deletion OMEdit/OMEditGUI/Options/OptionsDialog.cpp
Expand Up @@ -521,6 +521,9 @@ void OptionsDialog::readSimulationSettings()
if (mpSettings->contains("simulation/closeSimulationOutputWidgetsBeforeSimulation")) {
mpSimulationPage->getCloseSimulationOutputWidgetsBeforeSimulationCheckBox()->setChecked(mpSettings->value("simulation/closeSimulationOutputWidgetsBeforeSimulation").toBool());
}
if (mpSettings->contains("simulation/deleteIntermediateCompilationFiles")) {
mpSimulationPage->getDeleteIntermediateCompilationFilesCheckBox()->setChecked(mpSettings->value("simulation/deleteIntermediateCompilationFiles").toBool());
}
if (mpSettings->contains("simulation/outputMode")) {
mpSimulationPage->setOutputMode(mpSettings->value("simulation/outputMode").toString());
}
Expand Down Expand Up @@ -1049,6 +1052,7 @@ void OptionsDialog::saveSimulationSettings()
mpSettings->setValue("simulation/saveClassBeforeSimulation", mpSimulationPage->getSaveClassBeforeSimulationCheckBox()->isChecked());
mpSettings->setValue("simulation/switchToPlottingPerspectiveAfterSimulation", mpSimulationPage->getSwitchToPlottingPerspectiveCheckBox()->isChecked());
mpSettings->setValue("simulation/closeSimulationOutputWidgetsBeforeSimulation", mpSimulationPage->getCloseSimulationOutputWidgetsBeforeSimulationCheckBox()->isChecked());
mpSettings->setValue("simulation/deleteIntermediateCompilationFiles", mpSimulationPage->getDeleteIntermediateCompilationFilesCheckBox()->isChecked());
mpSettings->setValue("simulation/outputMode", mpSimulationPage->getOutputMode());
}

Expand Down Expand Up @@ -3294,6 +3298,9 @@ SimulationPage::SimulationPage(OptionsDialog *pOptionsDialog)
/* Close completed SimulationOutputWidgets before simulation checkbox */
mpCloseSimulationOutputWidgetsBeforeSimulationCheckBox = new QCheckBox(tr("Close completed simulation output windows before simulation"));
mpCloseSimulationOutputWidgetsBeforeSimulationCheckBox->setChecked(true);
/* Delete intermediate compilation files checkbox */
mpDeleteIntermediateCompilationFilesCheckBox = new QCheckBox(tr("Delete intermediate compilation files"));
mpDeleteIntermediateCompilationFilesCheckBox->setChecked(true);
// simulation output format
mpOutputGroupBox = new QGroupBox(Helper::output);
mpStructuredRadioButton = new QRadioButton(tr("Structured"));
Expand Down Expand Up @@ -3332,7 +3339,8 @@ SimulationPage::SimulationPage(OptionsDialog *pOptionsDialog)
pSimulationLayout->addWidget(mpSaveClassBeforeSimulationCheckBox, 7, 0, 1, 3);
pSimulationLayout->addWidget(mpSwitchToPlottingPerspectiveCheckBox, 8, 0, 1, 3);
pSimulationLayout->addWidget(mpCloseSimulationOutputWidgetsBeforeSimulationCheckBox, 9, 0, 1, 3);
pSimulationLayout->addWidget(mpOutputGroupBox, 10, 0, 1, 3);
pSimulationLayout->addWidget(mpDeleteIntermediateCompilationFilesCheckBox, 10, 0, 1, 3);
pSimulationLayout->addWidget(mpOutputGroupBox, 11, 0, 1, 3);
mpSimulationGroupBox->setLayout(pSimulationLayout);
// set the layout
QVBoxLayout *pLayout = new QVBoxLayout;
Expand Down
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/Options/OptionsDialog.h
Expand Up @@ -570,6 +570,7 @@ class SimulationPage : public QWidget
QCheckBox* getSaveClassBeforeSimulationCheckBox() {return mpSaveClassBeforeSimulationCheckBox;}
QCheckBox* getSwitchToPlottingPerspectiveCheckBox() {return mpSwitchToPlottingPerspectiveCheckBox;}
QCheckBox* getCloseSimulationOutputWidgetsBeforeSimulationCheckBox() {return mpCloseSimulationOutputWidgetsBeforeSimulationCheckBox;}
QCheckBox* getDeleteIntermediateCompilationFilesCheckBox() {return mpDeleteIntermediateCompilationFilesCheckBox;}
void setOutputMode(QString value);
QString getOutputMode();
private:
Expand All @@ -591,6 +592,7 @@ class SimulationPage : public QWidget
QCheckBox *mpSaveClassBeforeSimulationCheckBox;
QCheckBox *mpSwitchToPlottingPerspectiveCheckBox;
QCheckBox *mpCloseSimulationOutputWidgetsBeforeSimulationCheckBox;
QCheckBox *mpDeleteIntermediateCompilationFilesCheckBox;
QGroupBox *mpOutputGroupBox;
QRadioButton *mpStructuredRadioButton;
QRadioButton *mpFormattedTextRadioButton;
Expand Down
121 changes: 67 additions & 54 deletions OMEdit/OMEditGUI/Simulation/SimulationOutputWidget.cpp
Expand Up @@ -233,65 +233,68 @@ SimulationOutputWidget::SimulationOutputWidget(SimulationOptions simulationOptio
mpCompilationOutputTextBox->setFont(QFont(Helper::monospacedFontInfo.family()));
mpGeneratedFilesTabWidget->addTab(mpCompilationOutputTextBox, tr("Compilation"));
mpGeneratedFilesTabWidget->setTabEnabled(1, false);
mGeneratedFilesList << ".c"
<< ".o"
<< "_01exo.c"
<< "_01exo.o"
<< "_02nls.c"
<< "_02nls.o"
<< "_03lsy.c"
<< "_03lsy.o"
<< "_04set.c"
<< "_04set.o"
<< "_05evt.c"
<< "_05evt.o"
<< "_06inz.c"
<< "_06inz.o"
<< "_07dly.c"
<< "_07dly.o"
<< "_08bnd.c"
<< "_08bnd.o"
<< "_09alg.c"
<< "_09alg.o"
<< "_10asr.c"
<< "_10asr.o"
<< "_11mix.c"
<< "_11mix.o"
<< "_11mix.h"
<< "_12jac.c"
<< "_12jac.o"
<< "_12jac.h"
<< "_13opt.c"
<< "_13opt.o"
<< "_13opt.h"
<< "_14lnz.c"
<< "_14lnz.o"
<< "_15syn.c"
<< "_15syn.o"
<< "_16dae.c"
<< "_16dae.o"
<< "_16dae.h"
<< "_17inl.c"
<< "_17inl.o"
<< "_functions.c"
<< "_functions.o"
<< "_functions.h"
<< "_records.c"
<< "_records.o"
<< "_includes.h"
<< "_literals.h"
<< "_model.h"
<< ".makefile";
if (mSimulationOptions.getShowGeneratedFiles()) {
QString workingDirectory = mSimulationOptions.getWorkingDirectory();
QString outputFile = mSimulationOptions.getOutputFileName();
/* className.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append(".c"));
/* className_01exo.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_01exo.c"));
/* className_02nls.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_02nls.c"));
/* className_03lsy.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_03lsy.c"));
/* className_04set.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_04set.c"));
/* className_05evt.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_05evt.c"));
/* className_06inz.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_06inz.c"));
/* className_07dly.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_07dly.c"));
/* className_08bnd.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_08bnd.c"));
/* className_09alg.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_09alg.c"));
/* className_10asr.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_10asr.c"));
/* className_11mix.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_11mix.c"));
/* className_11mix.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_11mix.h"));
/* className_12jac.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_12jac.c"));
/* className_12jac.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_12jac.h"));
/* className_13opt.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_13opt.c"));
/* className_14lnz.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_14lnz.c"));
/* className_functions.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_functions.c"));
/* className_records.c tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_records.c"));
/* className_11mix.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_11mix.h"));
/* className_12jac.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_12jac.h"));
/* className_13opt.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_13opt.h"));
/* className_functions.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_functions.h"));
/* className_includes.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_includes.h"));
/* className_literals.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_literals.h"));
/* className_model.h tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_model.h"));
foreach (QString fileName, mGeneratedFilesList) {
// filter *.o files and .makefile
if (!fileName.endsWith(".o") && fileName.compare(".makefile") != 0) {
addGeneratedFileTab(QString("%1/%2%3").arg(workingDirectory, outputFile, fileName));
}
}
/* className_info.json tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_info.json"));
addGeneratedFileTab(QString("%1/%2%3").arg(workingDirectory, outputFile).arg("_info.json"));
/* className_init.xml tab */
addGeneratedFileTab(QString(workingDirectory).append("/").append(outputFile).append("_init.xml"));
addGeneratedFileTab(QString("%1/%2%3").arg(workingDirectory, outputFile).arg("_init.xml"));
}
// layout
QGridLayout *pMainLayout = new QGridLayout;
Expand Down Expand Up @@ -587,6 +590,16 @@ void SimulationOutputWidget::simulationProcessFinished(int exitCode, QProcess::E
mpCancelButton->setEnabled(false);
MainWindow::instance()->getSimulationDialog()->simulationProcessFinished(mSimulationOptions, mResultFileLastModifiedDateTime);
mpArchivedSimulationItem->setStatus(Helper::finished);
// remove the generated files
if (OptionsDialog::instance()->getSimulationPage()->getDeleteIntermediateCompilationFilesCheckBox()->isChecked()) {
QString workingDirectory = mSimulationOptions.getWorkingDirectory();
QString outputFile = mSimulationOptions.getOutputFileName();
foreach (QString fileName, mGeneratedFilesList) {
if (QFile::exists(QString("%1/%2%3").arg(workingDirectory, outputFile, fileName))) {
QFile::remove(QString("%1/%2%3").arg(workingDirectory, outputFile, fileName));
}
}
}
}

/*!
Expand Down
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/Simulation/SimulationOutputWidget.h
Expand Up @@ -98,6 +98,7 @@ class SimulationOutputWidget : public QWidget
QProgressBar *mpProgressBar;
QPushButton *mpCancelButton;
QTabWidget *mpGeneratedFilesTabWidget;
QList<QString> mGeneratedFilesList;
SimulationOutputHandler *mpSimulationOutputHandler;
bool mIsOutputStructured;
QTextBrowser *mpSimulationOutputTextBrowser;
Expand Down

0 comments on commit 126db43

Please sign in to comment.