Skip to content
Snippets Groups Projects
Commit 05d9a90e authored by Matthias Puchner's avatar Matthias Puchner
Browse files

adapt JobItem to MultiLayerItem changes

parent 285881dd
No related branches found
No related tags found
1 merge request!570remove SessionModel/Item from SampleModel and all related items
...@@ -38,6 +38,7 @@ namespace Tags { ...@@ -38,6 +38,7 @@ namespace Tags {
const QString SimulationOptions("SimulationOptions"); const QString SimulationOptions("SimulationOptions");
const QString Materials("Materials"); const QString Materials("Materials");
const QString ParameterContainer("ParameterContainer"); const QString ParameterContainer("ParameterContainer");
const QString Sample("Sample");
} // namespace Tags } // namespace Tags
} // namespace } // namespace
...@@ -47,7 +48,6 @@ JobItem::JobItem() : SessionItem(M_TYPE) ...@@ -47,7 +48,6 @@ JobItem::JobItem() : SessionItem(M_TYPE)
{ {
setItemName(M_TYPE); setItemName(M_TYPE);
addProperty(P_IDENTIFIER, QString())->setVisible(false); addProperty(P_IDENTIFIER, QString())->setVisible(false);
addProperty(P_SAMPLE_NAME, QString())->setEditable(false);
addProperty(P_INSTRUMENT_NAME, QString())->setEditable(false); addProperty(P_INSTRUMENT_NAME, QString())->setEditable(false);
addProperty(P_WITH_FITTING, false)->setVisible(false); addProperty(P_WITH_FITTING, false)->setVisible(false);
...@@ -60,7 +60,6 @@ JobItem::JobItem() : SessionItem(M_TYPE) ...@@ -60,7 +60,6 @@ JobItem::JobItem() : SessionItem(M_TYPE)
addProperty(P_PROGRESS, 0)->setVisible(false); addProperty(P_PROGRESS, 0)->setVisible(false);
addProperty(P_PRESENTATION_TYPE, QVariant::Type::Invalid)->setVisible(false); addProperty(P_PRESENTATION_TYPE, QVariant::Type::Invalid)->setVisible(false);
registerTag(T_SAMPLE, 1, 1, {MultiLayerItem::M_TYPE});
registerTag(T_INSTRUMENT, 1, 1, registerTag(T_INSTRUMENT, 1, 1,
{GISASInstrumentItem::M_TYPE, OffSpecularInstrumentItem::M_TYPE, {GISASInstrumentItem::M_TYPE, OffSpecularInstrumentItem::M_TYPE,
SpecularInstrumentItem::M_TYPE, DepthProbeInstrumentItem::M_TYPE}); SpecularInstrumentItem::M_TYPE, DepthProbeInstrumentItem::M_TYPE});
...@@ -245,12 +244,12 @@ bool JobItem::runInBackground() const ...@@ -245,12 +244,12 @@ bool JobItem::runInBackground() const
MultiLayerItem* JobItem::sampleItem() MultiLayerItem* JobItem::sampleItem()
{ {
return dynamic_cast<MultiLayerItem*>(getItem(T_SAMPLE)); return &m_multiLayerItem;
} }
MultiLayerItem* JobItem::copySampleIntoJob(const MultiLayerItem* sample) MultiLayerItem* JobItem::copySampleIntoJob(const MultiLayerItem* sample)
{ {
model()->copyItem(sample, this, T_SAMPLE); m_multiLayerItem.initFrom(sample);
// initialize finder-function of items with material // initialize finder-function of items with material
for (auto* itemWithMaterial : sampleItem()->itemsWithMaterial()) { for (auto* itemWithMaterial : sampleItem()->itemsWithMaterial()) {
...@@ -258,7 +257,7 @@ MultiLayerItem* JobItem::copySampleIntoJob(const MultiLayerItem* sample) ...@@ -258,7 +257,7 @@ MultiLayerItem* JobItem::copySampleIntoJob(const MultiLayerItem* sample)
[=](const QString& id) { return materialItems().materialFromIdentifier(id); }); [=](const QString& id) { return materialItems().materialFromIdentifier(id); });
} }
return sampleItem(); return &m_multiLayerItem;
} }
InstrumentItem* JobItem::instrumentItem() const InstrumentItem* JobItem::instrumentItem() const
...@@ -354,12 +353,7 @@ Data1DViewItem* JobItem::createDataViewItem() ...@@ -354,12 +353,7 @@ Data1DViewItem* JobItem::createDataViewItem()
QString JobItem::sampleName() const QString JobItem::sampleName() const
{ {
return getItemValue(P_SAMPLE_NAME).toString(); return m_multiLayerItem.sampleName();
}
void JobItem::setSampleName(const QString& name)
{
getItem(P_SAMPLE_NAME)->setValue(name);
} }
QString JobItem::instrumentName() const QString JobItem::instrumentName() const
...@@ -394,6 +388,10 @@ void JobItem::writeNonSessionItems(QXmlStreamWriter* writer) const ...@@ -394,6 +388,10 @@ void JobItem::writeNonSessionItems(QXmlStreamWriter* writer) const
m_materials.writeContentTo(writer); m_materials.writeContentTo(writer);
writer->writeEndElement(); writer->writeEndElement();
writer->writeStartElement(Tags::Sample);
m_multiLayerItem.writeContentTo(writer);
writer->writeEndElement();
writer->writeStartElement(Tags::ParameterContainer); writer->writeStartElement(Tags::ParameterContainer);
m_parameterContainer.writeContentTo(writer); m_parameterContainer.writeContentTo(writer);
writer->writeEndElement(); writer->writeEndElement();
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "GUI/Model/Fit/ParameterTreeItems.h" #include "GUI/Model/Fit/ParameterTreeItems.h"
#include "GUI/Model/Job/JobStatus.h" // enum cannot be forward declared #include "GUI/Model/Job/JobStatus.h" // enum cannot be forward declared
#include "GUI/Model/Material/MaterialModel.h" #include "GUI/Model/Material/MaterialModel.h"
#include "GUI/Model/Sample/MultiLayerItem.h"
#include "GUI/Model/Session/SessionItem.h" #include "GUI/Model/Session/SessionItem.h"
#include "GUI/Model/Session/SessionModel.h" // call to model() from templated fct #include "GUI/Model/Session/SessionModel.h" // call to model() from templated fct
#include "GUI/Model/Session/SimulationOptionsItem.h" #include "GUI/Model/Session/SimulationOptionsItem.h"
...@@ -33,7 +34,6 @@ class Instrument2DItem; ...@@ -33,7 +34,6 @@ class Instrument2DItem;
class InstrumentItem; class InstrumentItem;
class IntensityDataItem; class IntensityDataItem;
class MaterialItemContainer; class MaterialItemContainer;
class MultiLayerItem;
class ParameterContainerItem; class ParameterContainerItem;
class RealDataItem; class RealDataItem;
class SimulationOptionsItem; class SimulationOptionsItem;
...@@ -41,7 +41,6 @@ class SimulationOptionsItem; ...@@ -41,7 +41,6 @@ class SimulationOptionsItem;
class BA_CORE_API_ JobItem : public SessionItem { class BA_CORE_API_ JobItem : public SessionItem {
private: private:
static constexpr auto P_IDENTIFIER{"Identifier"}; static constexpr auto P_IDENTIFIER{"Identifier"};
static constexpr auto P_SAMPLE_NAME{"Sample"};
static constexpr auto P_INSTRUMENT_NAME{"Instrument"}; static constexpr auto P_INSTRUMENT_NAME{"Instrument"};
static constexpr auto P_WITH_FITTING{"With fitting"}; static constexpr auto P_WITH_FITTING{"With fitting"};
static constexpr auto P_STATUS{"Status"}; static constexpr auto P_STATUS{"Status"};
...@@ -50,7 +49,6 @@ private: ...@@ -50,7 +49,6 @@ private:
static constexpr auto P_COMMENTS{"Comments"}; static constexpr auto P_COMMENTS{"Comments"};
static constexpr auto P_PROGRESS{"Progress"}; static constexpr auto P_PROGRESS{"Progress"};
static constexpr auto P_PRESENTATION_TYPE{"Presentation type"}; static constexpr auto P_PRESENTATION_TYPE{"Presentation type"};
static constexpr auto T_SAMPLE{"Sample tag"};
static constexpr auto T_MATERIAL_CONTAINER{"Material container tag"}; static constexpr auto T_MATERIAL_CONTAINER{"Material container tag"};
static constexpr auto T_INSTRUMENT{"Instrument tag"}; static constexpr auto T_INSTRUMENT{"Instrument tag"};
static constexpr auto T_OUTPUT{"Output tag"}; static constexpr auto T_OUTPUT{"Output tag"};
...@@ -134,7 +132,6 @@ public: ...@@ -134,7 +132,6 @@ public:
Data1DViewItem* createDataViewItem(); Data1DViewItem* createDataViewItem();
QString sampleName() const; QString sampleName() const;
void setSampleName(const QString& name);
QString instrumentName() const; QString instrumentName() const;
void setInstrumentName(const QString& name); void setInstrumentName(const QString& name);
...@@ -155,6 +152,7 @@ private: ...@@ -155,6 +152,7 @@ private:
SimulationOptionsItem m_simulationOptionsItem; SimulationOptionsItem m_simulationOptionsItem;
MaterialModel m_materials; MaterialModel m_materials;
ParameterContainerItem m_parameterContainer; ParameterContainerItem m_parameterContainer;
MultiLayerItem m_multiLayerItem;
}; };
template <typename T> T* JobItem::setDataType() template <typename T> T* JobItem::setDataType()
......
...@@ -62,13 +62,8 @@ JobItem* JobModel::addJob(const MultiLayerItem* multiLayerItem, ...@@ -62,13 +62,8 @@ JobItem* JobModel::addJob(const MultiLayerItem* multiLayerItem,
GUI::Model::JobFunctions::setupJobItemSampleData(jobItem, multiLayerItem); GUI::Model::JobFunctions::setupJobItemSampleData(jobItem, multiLayerItem);
GUI::Model::JobFunctions::setupJobItemInstrument(jobItem, instrumentItem); GUI::Model::JobFunctions::setupJobItemInstrument(jobItem, instrumentItem);
// TODO: remove when specular instrument is ready for magnetization
if (instrumentItem->is<SpecularInstrumentItem>())
GUI::Model::JobFunctions::muteMagnetizationData(jobItem);
jobItem->copySimulationOptionsIntoJob(optionItem); jobItem->copySimulationOptionsIntoJob(optionItem);
jobItem->setSampleName(multiLayerItem->sampleName());
GUI::Model::ParameterTreeUtils::createParameterTree(jobItem, true); GUI::Model::ParameterTreeUtils::createParameterTree(jobItem, true);
GUI::Model::JobFunctions::setupJobItemOutput(jobItem); GUI::Model::JobFunctions::setupJobItemOutput(jobItem);
......
...@@ -126,7 +126,6 @@ void GUI::Model::JobFunctions::setupJobItemSampleData(JobItem* jobItem, ...@@ -126,7 +126,6 @@ void GUI::Model::JobFunctions::setupJobItemSampleData(JobItem* jobItem,
const MultiLayerItem* sampleItem) const MultiLayerItem* sampleItem)
{ {
MultiLayerItem* multilayer = jobItem->copySampleIntoJob(sampleItem); MultiLayerItem* multilayer = jobItem->copySampleIntoJob(sampleItem);
multilayer->setSampleName(MultiLayerItem::M_TYPE);
// copy used materials into material container // copy used materials into material container
for (auto* itemWithMaterial : sampleItem->itemsWithMaterial()) { for (auto* itemWithMaterial : sampleItem->itemsWithMaterial()) {
...@@ -199,12 +198,6 @@ void GUI::Model::JobFunctions::setupJobItemForFit(JobItem* jobItem, ...@@ -199,12 +198,6 @@ void GUI::Model::JobFunctions::setupJobItemForFit(JobItem* jobItem,
createFitContainers(jobItem); createFitContainers(jobItem);
} }
void GUI::Model::JobFunctions::muteMagnetizationData(JobItem* jobItem)
{
MultiLayerItem* sample = jobItem->sampleItem();
sample->externalFieldItem()->setVisible(false);
}
void GUI::Model::JobFunctions::copyRealDataItem(JobItem* jobItem, const RealDataItem* realDataItem) void GUI::Model::JobFunctions::copyRealDataItem(JobItem* jobItem, const RealDataItem* realDataItem)
{ {
if (!realDataItem) if (!realDataItem)
......
...@@ -39,8 +39,6 @@ void setupJobItemOutput(JobItem* jobItem); ...@@ -39,8 +39,6 @@ void setupJobItemOutput(JobItem* jobItem);
void setupJobItemForFit(JobItem* jobItem, const RealDataItem* realDataItem); void setupJobItemForFit(JobItem* jobItem, const RealDataItem* realDataItem);
void muteMagnetizationData(JobItem* jobItem);
//! Copy RealDataItem to jobItem intended for fitting. //! Copy RealDataItem to jobItem intended for fitting.
void copyRealDataItem(JobItem* jobItem, const RealDataItem* realDataItem); void copyRealDataItem(JobItem* jobItem, const RealDataItem* realDataItem);
......
...@@ -150,6 +150,7 @@ void GUI::Model::ParameterTreeUtils::createParameterTree(JobItem* jobItem, ...@@ -150,6 +150,7 @@ void GUI::Model::ParameterTreeUtils::createParameterTree(JobItem* jobItem,
// SessionModel migration. Compare also to handling in // SessionModel migration. Compare also to handling in
// LayerForm::updateLayerPositionDependentElements() // LayerForm::updateLayerPositionDependentElements()
// dto. for totalDensity of particle layout // dto. for totalDensity of particle layout
// #baMigration if !jobItemIsSpecularJob() -> no external field of multilayer!
for (auto* layer : jobItem->sampleItem()->layers()) { for (auto* layer : jobItem->sampleItem()->layers()) {
const bool isFirstLayer = jobItem->sampleItem()->layers().first() == layer; const bool isFirstLayer = jobItem->sampleItem()->layers().first() == layer;
const bool isLastLayer = jobItem->sampleItem()->layers().last() == layer; const bool isLastLayer = jobItem->sampleItem()->layers().last() == layer;
......
...@@ -38,6 +38,11 @@ MultiLayerItem::MultiLayerItem() ...@@ -38,6 +38,11 @@ MultiLayerItem::MultiLayerItem()
m_crossCorrelationLength = 0; m_crossCorrelationLength = 0;
} }
void MultiLayerItem::initFrom(const MultiLayerItem* other)
{
// #baMigration ++ implement
}
QVector<ItemWithMaterial*> MultiLayerItem::itemsWithMaterial() const QVector<ItemWithMaterial*> MultiLayerItem::itemsWithMaterial() const
{ {
QVector<ItemWithMaterial*> result; QVector<ItemWithMaterial*> result;
......
...@@ -31,6 +31,8 @@ class MultiLayerItem { ...@@ -31,6 +31,8 @@ class MultiLayerItem {
public: public:
MultiLayerItem(); MultiLayerItem();
void initFrom(const MultiLayerItem* other);
QVector<ItemWithMaterial*> itemsWithMaterial() const; QVector<ItemWithMaterial*> itemsWithMaterial() const;
QString sampleName() const; QString sampleName() const;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment