diff --git a/GUI/coregui/Models/SimulationDataModel.cpp b/GUI/coregui/Models/SimulationDataModel.cpp index edfe48695d5636db0029b8ac699ccb1e5d3eb8cd..83ad33f9813eefceabea2ea46c3889cd7435dee0 100644 --- a/GUI/coregui/Models/SimulationDataModel.cpp +++ b/GUI/coregui/Models/SimulationDataModel.cpp @@ -42,3 +42,10 @@ void SimulationDataModel::addSimulationParameters(QString name, SimulationParame m_simulation_parameters.insert(name, p_simulation_parameters); } } + +void SimulationDataModel::addJob(QString name, JobModel *p_job) +{ + if (!m_jobs.contains(name)) { + m_jobs.insert(name, p_job); + } +} diff --git a/GUI/coregui/Models/SimulationDataModel.h b/GUI/coregui/Models/SimulationDataModel.h index 68b93ae760c2c61ec303cd414d56ccf97311dba7..276d1cf94d0ba87e505a6b56747d8f3f11222d1e 100644 --- a/GUI/coregui/Models/SimulationDataModel.h +++ b/GUI/coregui/Models/SimulationDataModel.h @@ -19,6 +19,7 @@ #include "ISampleBuilder.h" #include "Instrument.h" #include "SimulationParameters.h" +#include "JobModel.h" #include <QMap> #include <QString> @@ -50,6 +51,10 @@ public: //! \return a list containing the SimulationParamters objects QMap<QString, SimulationParameters*> getSimulationParameterList() { return m_simulation_parameters; } + //! retrieve a list of the started jobs + //! \return a list containing the started jobs + QMap<QString, JobModel*> getJobs() { return m_jobs; } + //! add sample to sample list void addSample(QString name, ISample *p_sample); @@ -64,11 +69,15 @@ public: //! add simulation parameters to list void addSimulationParameters(QString name, SimulationParameters *p_simulation_parameters); + + //! add job to list + void addJob(QString name, JobModel *p_job); private: QMap<QString, ISample*> m_samples; QMap<QString, ISampleBuilder*> m_sample_builders; QMap<QString, Instrument*> m_instruments; QMap<QString, SimulationParameters*> m_simulation_parameters; + QMap<QString, JobModel*> m_jobs; }; diff --git a/GUI/coregui/Views/SimulationView.cpp b/GUI/coregui/Views/SimulationView.cpp index 8983dc34f794a437fac0781e5223b92b9da92f53..6160c1c4e2ccc7de3142685454c8e3a00e683355 100644 --- a/GUI/coregui/Views/SimulationView.cpp +++ b/GUI/coregui/Views/SimulationView.cpp @@ -15,6 +15,7 @@ #include <QMessageBox> #include <QFileDialog> #include <QDir> +#include <QDateTime> SimulationView::SimulationView(SimulationDataModel *p_simulation_data_model, QWidget *parent) : QWidget(parent) @@ -116,6 +117,7 @@ void SimulationView::onRunSimulation() p_sim->setInstrument(*p_instrument); JobModel *p_new_job = new JobModel(p_sim); connect(p_new_job, SIGNAL(finished()), this, SLOT(onJobFinished())); + mp_simulation_data_model->addJob(getUniqueJobName(), p_new_job); p_new_job->start(); // initialize a Simulation object and run it QMessageBox::information(this, tr("Simulation Started"), @@ -152,3 +154,9 @@ void SimulationView::onJobFinished() QMessageBox::information(this, tr("Simulation Job Finished"), tr("A simulation job has finished.")); } + +QString SimulationView::getUniqueJobName() const +{ + QString result = QDateTime::currentDateTime().toString("yyyy.MM.dd_hh:mm:ss"); + return result; +} diff --git a/GUI/coregui/Views/SimulationView.h b/GUI/coregui/Views/SimulationView.h index 0d7e18d003dc2c19b0c1ba56ef17366ddcbce9be..deccbfd33349a8b8002f0ead86422c572a5d0774 100644 --- a/GUI/coregui/Views/SimulationView.h +++ b/GUI/coregui/Views/SimulationView.h @@ -2,6 +2,7 @@ #define SIMULATIONVIEW_H #include <QWidget> +#include <QString> class SimulationDataModel; class QComboBox; @@ -21,6 +22,7 @@ public slots: void onJobFinished(); private: + QString getUniqueJobName() const; SimulationDataModel *mp_simulation_data_model; QComboBox *instrumentSelectionBox; QComboBox *sampleSelectionBox;