diff --git a/GUI/coregui/Models/DataViewUtils.cpp b/GUI/coregui/Models/DataViewUtils.cpp index 6ba163040da8f332c4dc9ffe156769940463d35f..6094ffa5776d0e31f757ee4736b5b9708afbf90a 100644 --- a/GUI/coregui/Models/DataViewUtils.cpp +++ b/GUI/coregui/Models/DataViewUtils.cpp @@ -18,6 +18,7 @@ #include "GUI/coregui/Models/DataItem.h" #include "GUI/coregui/Models/DataPropertyContainer.h" #include "GUI/coregui/Models/DomainObjectBuilder.h" +#include "GUI/coregui/Models/InstrumentItems.h" #include "GUI/coregui/Models/JobItem.h" #include "GUI/coregui/Models/JobItemUtils.h" @@ -28,7 +29,7 @@ std::unique_ptr<IUnitConverter> getConverter(Data1DViewItem* view_item) auto job_item = view_item->jobItem(); ASSERT(job_item->instrumentItem()); - return DomainObjectBuilder::createUnitConverter(job_item->instrumentItem()); + return job_item->instrumentItem()->createUnitConverter(); } Axes::Units selectedUnits(Data1DViewItem* view_item) diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp index cd6f7f19100152bd12dfa781fdd129d4afba4dd3..de7c3e3671b58b712061c43a6b4017d92dc1dc29 100644 --- a/GUI/coregui/Models/DomainObjectBuilder.cpp +++ b/GUI/coregui/Models/DomainObjectBuilder.cpp @@ -125,9 +125,3 @@ DomainObjectBuilder::buildInstrument(const InstrumentItem& instrumentItem) { return instrumentItem.createInstrument(); } - -std::unique_ptr<IUnitConverter> -DomainObjectBuilder::createUnitConverter(const InstrumentItem* instrumentItem) -{ - return instrumentItem->createUnitConverter(); -} diff --git a/GUI/coregui/Models/DomainObjectBuilder.h b/GUI/coregui/Models/DomainObjectBuilder.h index bd9f2fb152e5dd7ead21d841518bc61633eb040f..48264b04eae0fa64a00c4df3b9de66ef3bd96198 100644 --- a/GUI/coregui/Models/DomainObjectBuilder.h +++ b/GUI/coregui/Models/DomainObjectBuilder.h @@ -27,14 +27,13 @@ class InstrumentItem; class IUnitConverter; namespace DomainObjectBuilder { + std::unique_ptr<MultiLayer> buildMultiLayer(const SessionItem& multilayer_item); std::unique_ptr<Layer> buildLayer(const SessionItem& item); std::unique_ptr<ParticleLayout> buildParticleLayout(const SessionItem& item); std::unique_ptr<IInterferenceFunction> buildInterferenceFunction(const SessionItem& item); std::unique_ptr<Instrument> buildInstrument(const InstrumentItem& instrumentItem); -//! Creates a unit converter corresponding to the given instrument item -std::unique_ptr<IUnitConverter> createUnitConverter(const InstrumentItem* instrumentItem); }; // namespace DomainObjectBuilder #endif // BORNAGAIN_GUI_COREGUI_MODELS_DOMAINOBJECTBUILDER_H diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp index 4f99a8075eeb589a70a799d5ff4ec83e0df638c7..03f0989b8d66b48687520b066b248efa4158dc4c 100644 --- a/GUI/coregui/Models/JobItemUtils.cpp +++ b/GUI/coregui/Models/JobItemUtils.cpp @@ -67,7 +67,7 @@ void JobItemUtils::updateDataAxes(DataItem* intensityItem, const InstrumentItem* Axes::Units requested_units = axesUnitsFromName(intensityItem->selectedAxesUnits()); - const auto converter = DomainObjectBuilder::createUnitConverter(instrumentItem); + const auto converter = instrumentItem->createUnitConverter(); auto newData = converter->createOutputData(requested_units); newData->setRawDataVector(intensityItem->getOutputData()->getRawDataVector()); @@ -98,7 +98,7 @@ Axes::Units JobItemUtils::axesUnitsFromName(const QString& name) void JobItemUtils::setIntensityItemAxesUnits(DataItem* intensityItem, const InstrumentItem* instrumentItem) { - const auto converter = DomainObjectBuilder::createUnitConverter(instrumentItem); + const auto converter = instrumentItem->createUnitConverter(); if (!converter) return; setIntensityItemAxesUnits(intensityItem, *converter); @@ -114,7 +114,7 @@ void JobItemUtils::setIntensityItemAxesUnits(DataItem* intensityItem, void JobItemUtils::createDefaultDetectorMap(DataItem* intensityItem, const InstrumentItem* instrumentItem) { - const auto converter = DomainObjectBuilder::createUnitConverter(instrumentItem); + const auto converter = instrumentItem->createUnitConverter(); auto output_data = converter->createOutputData(converter->defaultUnits()); intensityItem->setOutputData(output_data.release()); setIntensityItemAxesUnits(intensityItem, *converter); diff --git a/GUI/coregui/Models/JobModelFunctions.cpp b/GUI/coregui/Models/JobModelFunctions.cpp index e0e1544ef630fcf8d5702e777701cf0542ea16e2..3e0c1908596e5e3732ee0eeaba3d83d76fecab58 100644 --- a/GUI/coregui/Models/JobModelFunctions.cpp +++ b/GUI/coregui/Models/JobModelFunctions.cpp @@ -78,7 +78,7 @@ void JobModelFunctions::initDataView(JobItem* job_item) // also triggers Data1DViewItem::setAxesRangeToData and DataViewUtils::updateAxesTitle by // setting new value of P_AXES_UNITS. - auto converter = DomainObjectBuilder::createUnitConverter(job_item->instrumentItem()); + auto converter = job_item->instrumentItem()->createUnitConverter(); view_item->setItemValue(Data1DViewItem::P_AXES_UNITS, JobItemUtils::availableUnits(*converter).variant()); }