62 QModelIndex parentIndex;
63 for (
int i_row = 0; i_row <
rowCount(parentIndex); ++i_row) {
64 QModelIndex itemIndex =
index(i_row, 0, parentIndex);
81 auto jobItem = insertItem<JobItem>();
107 return topItems<JobItem>();
119 for (
auto jobItem : topItems<JobItem>()) {
120 if (jobItem->getStatus() ==
"Fitting")
137 QVector<SessionItem*> result;
139 for (
auto jobItem : topItems<JobItem>()) {
141 result.push_back(intensityItem);
144 if (
auto data_item = real_data->dataItem())
145 result.push_back(data_item);
146 if (
auto native_data = real_data->nativeData())
147 result.push_back(native_data);
154 result.push_back(axis_group->getChildOfType(
"PointwiseAxis"));
169 refItem->setInstrumentId(jobItem->instrumentItem()->id());
170 ASSERT(refItem->linkedInstrument() == jobItem->instrumentItem());
203 QModelIndex parentIndex;
204 for (
int i_row = 0; i_row <
rowCount(parentIndex); ++i_row) {
205 QModelIndex itemIndex =
index(i_row, 0, parentIndex);
208 if (item->modelType() ==
"JobItem") {
209 QString jobName = item->itemName();
210 if (jobName.startsWith(
"job")) {
211 int job_index = jobName.remove(0, 3).toInt();
212 if (job_index > glob_index)
213 glob_index = job_index;
218 return QString(
"job") + QString::number(++glob_index);
224 parameter->restoreFromBackup();
#define ASSERT(condition)
Defines various axis items.
Defines class FitSuiteItem.
Defines class GUIHelpers functions.
Defines InstrumentItems classes.
Defines class IntensityDataItem.
Defines class JobItemUtils.
Defines auxiliary functions in JobModelFunctions namespace.
Defines class JobQueueData.
Defines class MultiLayerItem.
Defines classes for ParameterTreeItems.
Defines ParameterTreeUtils namespace.
Defines class RealDataItem.
Defines class SimulationOptionsItem.
static const QString T_OUTPUT
static const QString T_PARAMETER_TREE
static const QString T_INSTRUMENT
static const QString T_SIMULATION_OPTIONS
QString getIdentifier() const
static const QString T_REALDATA
static const QString P_SAMPLE_NAME
void runJob(const QModelIndex &index)
JobItem * addJob(const MultiLayerItem *multiLayerItem, const InstrumentItem *instrumentItem, const RealDataItem *realDataItem, const SimulationOptionsItem *optionItem)
Main method to add a job.
void focusRequest(JobItem *item)
void removeJob(const QModelIndex &index)
const JobItem * getJobItemForIndex(const QModelIndex &index) const
QVector< JobItem * > jobItems() const
void cancelJob(const QModelIndex &index)
virtual void readFrom(QXmlStreamReader *reader, MessageService *messageService=0) override
void restoreItem(SessionItem *item)
void restore(JobItem *jobItem)
restore instrument and sample model from backup for given JobItem
JobModel(QObject *parent=0)
JobQueueData * m_queue_data
JobItem * getJobItemForIdentifier(const QString &identifier)
QString generateJobName()
generates job name
void aboutToDeleteJobItem(JobItem *item)
QVector< SessionItem * > nonXMLItems() const override
The JobQueueData class holds all objects/logic to run simulation in a thread.
void focusRequest(JobItem *jobItem)
void removeJob(const QString &identifier)
Remove job from list completely.
void cancelJob(const QString &identifier)
Cancels running job.
void runJob(JobItem *jobItem)
Submits job and run it in a thread.
void onCancelAllJobs()
Cancels all running jobs.
The service to collect messages from different senders.
The ParameterItem class represent a tuning value in a parameter tuning tree.
The RealDataItem class represents intensity data imported from file and intended for fitting.
QString itemName() const
Get item name, return display name if no name is set.
QVector< SessionItem * > children() const
Returns vector of all children.
SessionItem * getItem(const QString &tag="", int row=0) const
Returns item in given row of given tag.
T * copyItem(const T *item_to_copy, SessionItem *new_parent=0, const QString &tag="")
SessionItem * itemForIndex(const QModelIndex &index) const
QVector< T * > topItems() const
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const
virtual int rowCount(const QModelIndex &parent) const
virtual bool removeRows(int row, int count, const QModelIndex &parent)
virtual void readFrom(QXmlStreamReader *reader, MessageService *messageService=0)
The SimulationOptionsItem class holds simulation status (run policy, number of threads,...
GroupItem * inclinationAxisGroup()
SpecularBeamItem * beamItem() const override
void setupJobItemForFit(JobItem *jobItem, const RealDataItem *realDataItem)
Setups JobItem for fit.
void setupJobItemInstrument(JobItem *jobItem, const InstrumentItem *from)
Properly copies instrument into job item.
void setupJobItemSampleData(JobItem *jobItem, const MultiLayerItem *sampleItem)
Properly copies sample and materials into JobItem.
void muteMagnetizationData(JobItem *jobItem)
void setupJobItemOutput(JobItem *jobItem)
Setup items intended for storing results of the job.
void createParameterTree(JobItem *jobItem)
const QString JobModelTag("JobModel")