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

Minor speed up in handling imported data

parent 3b45b820
No related branches found
No related tags found
No related merge requests found
......@@ -144,7 +144,7 @@ void RealDataItem::setImportData(ImportDataInfo data) {
QString units_name = data.unitsLabel();
getItem(P_NATIVE_UNITS)->setValue(units_name);
item<DataItem>(T_NATIVE_DATA).setOutputData(data.intensityData().release());
item<DataItem>(T_NATIVE_DATA).setOutputData(std::move(data).intensityData().release());
}
bool RealDataItem::holdsDimensionalData() const
......
......@@ -45,7 +45,9 @@ ImportDataInfo::ImportDataInfo(ImportDataInfo&& other)
}
ImportDataInfo::ImportDataInfo(std::unique_ptr<OutputData<double>> data, AxesUnits units)
: m_data(std::move(data))
: m_data(units == AxesUnits::NBINS && data
? ImportDataUtils::CreateSimplifiedOutputData(*data)
: std::move(data))
, m_units(units)
{
checkValidity();
......@@ -65,12 +67,16 @@ ImportDataInfo::operator bool() const
return static_cast<bool>(m_data);
}
std::unique_ptr<OutputData<double> > ImportDataInfo::intensityData() const
std::unique_ptr<OutputData<double> > ImportDataInfo::intensityData() const &
{
if (!m_data)
return nullptr;
return m_units == AxesUnits::NBINS ? ImportDataUtils::CreateSimplifiedOutputData(*m_data)
: std::unique_ptr<OutputData<double>>(m_data->clone());
return std::unique_ptr<OutputData<double>>(m_data->clone());
}
std::unique_ptr<OutputData<double> > ImportDataInfo::intensityData() &&
{
return std::move(m_data);
}
size_t ImportDataInfo::dataRank() const
......
......@@ -35,7 +35,8 @@ public:
operator bool() const;
std::unique_ptr<OutputData<double>> intensityData() const;
std::unique_ptr<OutputData<double>> intensityData() const &;
std::unique_ptr<OutputData<double>> intensityData() &&;
size_t dataRank() const;
QString unitsLabel() const;
QString axisLabel(size_t axis_index) 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