Skip to content
Snippets Groups Projects
Commit 66b1baf1 authored by Yurov, Dmitry's avatar Yurov, Dmitry
Browse files

Proper handling of PointwiseAxisItem while copying instrument

Redmine: #2177
parent c6c23f62
No related branches found
No related tags found
No related merge requests found
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "JobModel.h" #include "JobModel.h"
#include "MaskItems.h" #include "MaskItems.h"
#include "MaskUnitsConverter.h" #include "MaskUnitsConverter.h"
#include "PointwiseAxisItem.h"
#include "RealDataItem.h" #include "RealDataItem.h"
namespace JobModelFunctions namespace JobModelFunctions
...@@ -39,7 +40,9 @@ void copyMasksToInstrument(JobItem* jobItem); ...@@ -39,7 +40,9 @@ void copyMasksToInstrument(JobItem* jobItem);
void cropRealData(JobItem* jobItem); void cropRealData(JobItem* jobItem);
void createFitContainers(JobItem* jobItem); void createFitContainers(JobItem* jobItem);
void initDataView(JobItem* jobItem); void initDataView(JobItem* jobItem);
}
PointwiseAxisItem* getPointwiseAxisItem(const InstrumentItem* instrument);
} // namespace
void JobModelFunctions::setupJobItemInstrument(JobItem* jobItem, void JobModelFunctions::setupJobItemInstrument(JobItem* jobItem,
const InstrumentItem* instrumentItem) const InstrumentItem* instrumentItem)
...@@ -48,6 +51,15 @@ void JobModelFunctions::setupJobItemInstrument(JobItem* jobItem, ...@@ -48,6 +51,15 @@ void JobModelFunctions::setupJobItemInstrument(JobItem* jobItem,
SessionItem* instrument = model->copyItem(instrumentItem, jobItem, JobItem::T_INSTRUMENT); SessionItem* instrument = model->copyItem(instrumentItem, jobItem, JobItem::T_INSTRUMENT);
instrument->setItemName(instrumentItem->modelType()); instrument->setItemName(instrumentItem->modelType());
jobItem->getItem(JobItem::P_INSTRUMENT_NAME)->setValue(instrumentItem->itemName()); jobItem->getItem(JobItem::P_INSTRUMENT_NAME)->setValue(instrumentItem->itemName());
if (auto spec_instrument = dynamic_cast<SpecularInstrumentItem*>(instrument)) {
// updating filename
const auto filename = ItemFileNameUtils::instrumentDataFileName(*spec_instrument);
spec_instrument->beamItem()->updateFileName(filename);
// copying axis data
const auto instrument_axis = getPointwiseAxisItem(instrumentItem)->getAxis();
getPointwiseAxisItem(spec_instrument)->setAxis(instrument_axis);
}
} }
//! Setup items intended for storing results of the job. //! Setup items intended for storing results of the job.
...@@ -195,3 +207,14 @@ void JobModelFunctions::createFitContainers(JobItem* jobItem) ...@@ -195,3 +207,14 @@ void JobModelFunctions::createFitContainers(JobItem* jobItem)
minimizerContainerItem = model->insertNewItem( minimizerContainerItem = model->insertNewItem(
Constants::MinimizerContainerType, fitSuiteItem->index(), -1, FitSuiteItem::T_MINIMIZER); Constants::MinimizerContainerType, fitSuiteItem->index(), -1, FitSuiteItem::T_MINIMIZER);
} }
PointwiseAxisItem* JobModelFunctions::getPointwiseAxisItem(const InstrumentItem* instrument)
{
auto spec_instrument = dynamic_cast<const SpecularInstrumentItem*>(instrument);
if (!spec_instrument)
return nullptr;
return dynamic_cast<PointwiseAxisItem*>(
spec_instrument->beamItem()->inclinationAxisGroup()->getChildOfType(
Constants::PointwiseAxisType));
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment