Skip to content
Snippets Groups Projects
Commit b612a270 authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

instrument is PolyPtr

parent fe368363
No related branches found
No related tags found
1 merge request!2761Fix serialization and plotting jobs without loaded data
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "GUI/Model/Mask/MasksSet.h" #include "GUI/Model/Mask/MasksSet.h"
#include "GUI/Model/Par/ParameterTreeItems.h" #include "GUI/Model/Par/ParameterTreeItems.h"
#include "GUI/Model/Sample/SampleItem.h" #include "GUI/Model/Sample/SampleItem.h"
#include "GUI/Model/Sim/InstrumentCatalog.h"
#include "GUI/Model/Sim/InstrumentItems.h" #include "GUI/Model/Sim/InstrumentItems.h"
#include "GUI/Model/Sim/SimulationOptionsItem.h" #include "GUI/Model/Sim/SimulationOptionsItem.h"
#include "GUI/Model/ToCore/SimulationToCore.h" #include "GUI/Model/ToCore/SimulationToCore.h"
...@@ -78,13 +79,14 @@ JobItem::JobItem(const SampleItem* sampleItem, const InstrumentItem* instrumentI ...@@ -78,13 +79,14 @@ JobItem::JobItem(const SampleItem* sampleItem, const InstrumentItem* instrumentI
: m_simulation_options_item(std::make_unique<SimulationOptionsItem>(*optionItem)) : m_simulation_options_item(std::make_unique<SimulationOptionsItem>(*optionItem))
, m_parameter_container(std::make_unique<ParameterContainerItem>()) , m_parameter_container(std::make_unique<ParameterContainerItem>())
, m_sample_item(sampleItem->clone()) , m_sample_item(sampleItem->clone())
, m_instrument(instrumentItem->clone())
, m_batch_info(std::make_unique<BatchInfo>()) , m_batch_info(std::make_unique<BatchInfo>())
, m_fit_suite_item(std::make_unique<FitSuiteItem>()) , m_fit_suite_item(std::make_unique<FitSuiteItem>())
{ {
ASSERT(sampleItem); ASSERT(sampleItem);
ASSERT(instrumentItem); ASSERT(instrumentItem);
m_instrument.setCertainItem(instrumentItem->clone());
batchInfo()->setIdentifier(QUuid::createUuid().toString()); batchInfo()->setIdentifier(QUuid::createUuid().toString());
createParameterTree(); createParameterTree();
...@@ -206,7 +208,7 @@ void JobItem::cropRealData() ...@@ -206,7 +208,7 @@ void JobItem::cropRealData()
void JobItem::writeTo(QXmlStreamWriter* w) const void JobItem::writeTo(QXmlStreamWriter* w) const
{ {
XML::writeTaggedElement(w, Tag::SimulationOptions, *m_simulation_options_item); XML::writeTaggedElement(w, Tag::SimulationOptions, *m_simulation_options_item);
XML::writeTaggedElement(w, Tag::Instrument, *m_instrument); XML::writeTaggedElement(w, Tag::Instrument, m_instrument);
XML::writeTaggedElement(w, Tag::Sample, *m_sample_item); XML::writeTaggedElement(w, Tag::Sample, *m_sample_item);
XML::writeTaggedElement(w, Tag::ParameterContainer, *m_parameter_container); XML::writeTaggedElement(w, Tag::ParameterContainer, *m_parameter_container);
XML::writeTaggedElement(w, Tag::BatchInfo, *m_batch_info); XML::writeTaggedElement(w, Tag::BatchInfo, *m_batch_info);
...@@ -235,7 +237,7 @@ void JobItem::readFrom(QXmlStreamReader* r) ...@@ -235,7 +237,7 @@ void JobItem::readFrom(QXmlStreamReader* r)
if (tag == Tag::SimulationOptions) if (tag == Tag::SimulationOptions)
XML::readTaggedElement(r, tag, *m_simulation_options_item); XML::readTaggedElement(r, tag, *m_simulation_options_item);
else if (tag == Tag::Instrument) else if (tag == Tag::Instrument)
XML::readTaggedElement(r, tag, *m_instrument); XML::readTaggedElement(r, tag, m_instrument);
else if (tag == Tag::ParameterContainer) { else if (tag == Tag::ParameterContainer) {
createParameterTree(); createParameterTree();
XML::readTaggedElement(r, tag, *m_parameter_container); XML::readTaggedElement(r, tag, *m_parameter_container);
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#ifndef BORNAGAIN_GUI_MODEL_JOB_JOBITEM_H #ifndef BORNAGAIN_GUI_MODEL_JOB_JOBITEM_H
#define BORNAGAIN_GUI_MODEL_JOB_JOBITEM_H #define BORNAGAIN_GUI_MODEL_JOB_JOBITEM_H
#include "GUI/Model/Descriptor/PolyPtr.h"
#include "GUI/Model/Sim/InstrumentCatalog.h" #include "GUI/Model/Sim/InstrumentCatalog.h"
#include <QThread> #include <QThread>
#include <QXmlStreamReader> #include <QXmlStreamReader>
...@@ -26,7 +27,6 @@ class DataItem; ...@@ -26,7 +27,6 @@ class DataItem;
class Datafield; class Datafield;
class DatafileItem; class DatafileItem;
class FitSuiteItem; class FitSuiteItem;
class InstrumentItem;
class JobWorker; class JobWorker;
class ParameterContainerItem; class ParameterContainerItem;
class ParameterTreeItems; class ParameterTreeItems;
...@@ -64,7 +64,7 @@ public: ...@@ -64,7 +64,7 @@ public:
//... instrument //... instrument
InstrumentItem* instrumentItem() const { return m_instrument.get(); } InstrumentItem* instrumentItem() const { return m_instrument.certainItem(); }
//... simulation options //... simulation options
...@@ -129,7 +129,8 @@ private: ...@@ -129,7 +129,8 @@ private:
std::unique_ptr<SimulationOptionsItem> m_simulation_options_item; std::unique_ptr<SimulationOptionsItem> m_simulation_options_item;
std::unique_ptr<ParameterContainerItem> m_parameter_container; std::unique_ptr<ParameterContainerItem> m_parameter_container;
std::unique_ptr<SampleItem> m_sample_item; std::unique_ptr<SampleItem> m_sample_item;
std::unique_ptr<InstrumentItem> m_instrument; PolyPtr<InstrumentItem, InstrumentCatalog> m_instrument;
std::unique_ptr<BatchInfo> m_batch_info; std::unique_ptr<BatchInfo> m_batch_info;
QString m_activity; QString m_activity;
std::unique_ptr<DataItem> m_simulated_data_item; std::unique_ptr<DataItem> m_simulated_data_item;
......
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