BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
JobModel.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/JobModel.h
6 //! @brief Defines class JobModel
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_JOBMODEL_H
15 #define BORNAGAIN_GUI_COREGUI_MODELS_JOBMODEL_H
16 
18 class JobQueueData;
19 class JobItem;
20 class MultiLayerItem;
21 class InstrumentItem;
22 class RealDataItem;
24 
25 class JobModel : public SessionModel {
26  Q_OBJECT
27 
28 public:
29  explicit JobModel(QObject* parent = 0);
30  virtual ~JobModel();
31 
32  const JobItem* getJobItemForIndex(const QModelIndex& index) const;
33  JobItem* getJobItemForIndex(const QModelIndex& index);
34 
35  JobItem* getJobItemForIdentifier(const QString& identifier);
36 
37  JobItem* addJob(const MultiLayerItem* multiLayerItem, const InstrumentItem* instrumentItem,
38  const RealDataItem* realDataItem, const SimulationOptionsItem* optionItem);
39 
40  QVector<JobItem*> jobItems() const;
41 
42  void restore(JobItem* jobItem);
43 
44  bool hasUnfinishedJobs();
45 
46  void clear() override;
47  QVector<SessionItem*> nonXMLItems() const override;
48  virtual void readFrom(QXmlStreamReader* reader, MessageService* messageService = 0) override;
49 
50 signals:
52  void focusRequest(JobItem* item);
53  void globalProgress(int);
54 
55 public slots:
56  void onCancelAllJobs();
57  void runJob(const QModelIndex& index);
58  void cancelJob(const QModelIndex& index);
59  void removeJob(const QModelIndex& index);
60 
61 private:
62  QString generateJobName();
63  void restoreItem(SessionItem* item);
65 };
66 
67 #endif // BORNAGAIN_GUI_COREGUI_MODELS_JOBMODEL_H
Defines class SessionModel.
void runJob(const QModelIndex &index)
Definition: JobModel.cpp:179
JobItem * addJob(const MultiLayerItem *multiLayerItem, const InstrumentItem *instrumentItem, const RealDataItem *realDataItem, const SimulationOptionsItem *optionItem)
Main method to add a job.
Definition: JobModel.cpp:73
void focusRequest(JobItem *item)
void removeJob(const QModelIndex &index)
Definition: JobModel.cpp:189
const JobItem * getJobItemForIndex(const QModelIndex &index) const
Definition: JobModel.cpp:46
void globalProgress(int)
QVector< JobItem * > jobItems() const
Definition: JobModel.cpp:105
virtual ~JobModel()
Definition: JobModel.cpp:41
void cancelJob(const QModelIndex &index)
Definition: JobModel.cpp:184
virtual void readFrom(QXmlStreamReader *reader, MessageService *messageService=0) override
Definition: JobModel.cpp:161
void restoreItem(SessionItem *item)
Definition: JobModel.cpp:221
void restore(JobItem *jobItem)
restore instrument and sample model from backup for given JobItem
Definition: JobModel.cpp:111
JobModel(QObject *parent=0)
Definition: JobModel.cpp:32
bool hasUnfinishedJobs()
Definition: JobModel.cpp:116
JobQueueData * m_queue_data
Definition: JobModel.h:64
JobItem * getJobItemForIdentifier(const QString &identifier)
Definition: JobModel.cpp:60
void clear() override
Definition: JobModel.cpp:127
QString generateJobName()
generates job name
Definition: JobModel.cpp:200
void onCancelAllJobs()
Definition: JobModel.cpp:174
void aboutToDeleteJobItem(JobItem *item)
QVector< SessionItem * > nonXMLItems() const override
Definition: JobModel.cpp:135
The JobQueueData class holds all objects/logic to run simulation in a thread.
Definition: JobQueueData.h:28
The service to collect messages from different senders.
The RealDataItem class represents intensity data imported from file and intended for fitting.
Definition: RealDataItem.h:35
virtual QModelIndex parent(const QModelIndex &child) const
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const
The SimulationOptionsItem class holds simulation status (run policy, number of threads,...