Skip to content
Snippets Groups Projects
Commit dde251cd authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

use inheritance to unify calls to createUnitConverter()

parent c2412c50
No related branches found
No related tags found
1 merge request!51simplify creation of UnitConverter%s
Pipeline #35625 passed
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "GUI/coregui/Models/DataItem.h" #include "GUI/coregui/Models/DataItem.h"
#include "GUI/coregui/Models/DataPropertyContainer.h" #include "GUI/coregui/Models/DataPropertyContainer.h"
#include "GUI/coregui/Models/DomainObjectBuilder.h" #include "GUI/coregui/Models/DomainObjectBuilder.h"
#include "GUI/coregui/Models/InstrumentItems.h"
#include "GUI/coregui/Models/JobItem.h" #include "GUI/coregui/Models/JobItem.h"
#include "GUI/coregui/Models/JobItemUtils.h" #include "GUI/coregui/Models/JobItemUtils.h"
...@@ -28,7 +29,7 @@ std::unique_ptr<IUnitConverter> getConverter(Data1DViewItem* view_item) ...@@ -28,7 +29,7 @@ std::unique_ptr<IUnitConverter> getConverter(Data1DViewItem* view_item)
auto job_item = view_item->jobItem(); auto job_item = view_item->jobItem();
ASSERT(job_item->instrumentItem()); ASSERT(job_item->instrumentItem());
return DomainObjectBuilder::createUnitConverter(job_item->instrumentItem()); return job_item->instrumentItem()->createUnitConverter();
} }
Axes::Units selectedUnits(Data1DViewItem* view_item) Axes::Units selectedUnits(Data1DViewItem* view_item)
......
...@@ -125,9 +125,3 @@ DomainObjectBuilder::buildInstrument(const InstrumentItem& instrumentItem) ...@@ -125,9 +125,3 @@ DomainObjectBuilder::buildInstrument(const InstrumentItem& instrumentItem)
{ {
return instrumentItem.createInstrument(); return instrumentItem.createInstrument();
} }
std::unique_ptr<IUnitConverter>
DomainObjectBuilder::createUnitConverter(const InstrumentItem* instrumentItem)
{
return instrumentItem->createUnitConverter();
}
...@@ -27,14 +27,13 @@ class InstrumentItem; ...@@ -27,14 +27,13 @@ class InstrumentItem;
class IUnitConverter; class IUnitConverter;
namespace DomainObjectBuilder { namespace DomainObjectBuilder {
std::unique_ptr<MultiLayer> buildMultiLayer(const SessionItem& multilayer_item); std::unique_ptr<MultiLayer> buildMultiLayer(const SessionItem& multilayer_item);
std::unique_ptr<Layer> buildLayer(const SessionItem& item); std::unique_ptr<Layer> buildLayer(const SessionItem& item);
std::unique_ptr<ParticleLayout> buildParticleLayout(const SessionItem& item); std::unique_ptr<ParticleLayout> buildParticleLayout(const SessionItem& item);
std::unique_ptr<IInterferenceFunction> buildInterferenceFunction(const SessionItem& item); std::unique_ptr<IInterferenceFunction> buildInterferenceFunction(const SessionItem& item);
std::unique_ptr<Instrument> buildInstrument(const InstrumentItem& instrumentItem); 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 }; // namespace DomainObjectBuilder
#endif // BORNAGAIN_GUI_COREGUI_MODELS_DOMAINOBJECTBUILDER_H #endif // BORNAGAIN_GUI_COREGUI_MODELS_DOMAINOBJECTBUILDER_H
...@@ -67,7 +67,7 @@ void JobItemUtils::updateDataAxes(DataItem* intensityItem, const InstrumentItem* ...@@ -67,7 +67,7 @@ void JobItemUtils::updateDataAxes(DataItem* intensityItem, const InstrumentItem*
Axes::Units requested_units = axesUnitsFromName(intensityItem->selectedAxesUnits()); Axes::Units requested_units = axesUnitsFromName(intensityItem->selectedAxesUnits());
const auto converter = DomainObjectBuilder::createUnitConverter(instrumentItem); const auto converter = instrumentItem->createUnitConverter();
auto newData = converter->createOutputData(requested_units); auto newData = converter->createOutputData(requested_units);
newData->setRawDataVector(intensityItem->getOutputData()->getRawDataVector()); newData->setRawDataVector(intensityItem->getOutputData()->getRawDataVector());
...@@ -98,7 +98,7 @@ Axes::Units JobItemUtils::axesUnitsFromName(const QString& name) ...@@ -98,7 +98,7 @@ Axes::Units JobItemUtils::axesUnitsFromName(const QString& name)
void JobItemUtils::setIntensityItemAxesUnits(DataItem* intensityItem, void JobItemUtils::setIntensityItemAxesUnits(DataItem* intensityItem,
const InstrumentItem* instrumentItem) const InstrumentItem* instrumentItem)
{ {
const auto converter = DomainObjectBuilder::createUnitConverter(instrumentItem); const auto converter = instrumentItem->createUnitConverter();
if (!converter) if (!converter)
return; return;
setIntensityItemAxesUnits(intensityItem, *converter); setIntensityItemAxesUnits(intensityItem, *converter);
...@@ -114,7 +114,7 @@ void JobItemUtils::setIntensityItemAxesUnits(DataItem* intensityItem, ...@@ -114,7 +114,7 @@ void JobItemUtils::setIntensityItemAxesUnits(DataItem* intensityItem,
void JobItemUtils::createDefaultDetectorMap(DataItem* intensityItem, void JobItemUtils::createDefaultDetectorMap(DataItem* intensityItem,
const InstrumentItem* instrumentItem) const InstrumentItem* instrumentItem)
{ {
const auto converter = DomainObjectBuilder::createUnitConverter(instrumentItem); const auto converter = instrumentItem->createUnitConverter();
auto output_data = converter->createOutputData(converter->defaultUnits()); auto output_data = converter->createOutputData(converter->defaultUnits());
intensityItem->setOutputData(output_data.release()); intensityItem->setOutputData(output_data.release());
setIntensityItemAxesUnits(intensityItem, *converter); setIntensityItemAxesUnits(intensityItem, *converter);
......
...@@ -78,7 +78,7 @@ void JobModelFunctions::initDataView(JobItem* job_item) ...@@ -78,7 +78,7 @@ void JobModelFunctions::initDataView(JobItem* job_item)
// also triggers Data1DViewItem::setAxesRangeToData and DataViewUtils::updateAxesTitle by // also triggers Data1DViewItem::setAxesRangeToData and DataViewUtils::updateAxesTitle by
// setting new value of P_AXES_UNITS. // 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, view_item->setItemValue(Data1DViewItem::P_AXES_UNITS,
JobItemUtils::availableUnits(*converter).variant()); JobItemUtils::availableUnits(*converter).variant());
} }
......
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