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

Made SpecularDataItem derived from DataItem

Redmine: #1936
parent 0d693950
No related branches found
No related tags found
No related merge requests found
...@@ -23,9 +23,8 @@ const QString SpecularDataItem::P_AXES_UNITS = "Axes Units"; ...@@ -23,9 +23,8 @@ const QString SpecularDataItem::P_AXES_UNITS = "Axes Units";
const QString SpecularDataItem::P_TITLE = "Title"; const QString SpecularDataItem::P_TITLE = "Title";
const QString SpecularDataItem::P_XAXIS = "x-axis"; const QString SpecularDataItem::P_XAXIS = "x-axis";
const QString SpecularDataItem::P_YAXIS = "y-axis"; const QString SpecularDataItem::P_YAXIS = "y-axis";
const QString SpecularDataItem::P_FILE_NAME = "FileName";
SpecularDataItem::SpecularDataItem() : SessionItem(Constants::SpecularDataType) SpecularDataItem::SpecularDataItem() : DataItem(Constants::SpecularDataType)
{ {
ComboProperty units = ComboProperty() << Constants::UnitsNbins; ComboProperty units = ComboProperty() << Constants::UnitsNbins;
addProperty(P_AXES_UNITS, units.variant()); addProperty(P_AXES_UNITS, units.variant());
...@@ -45,27 +44,11 @@ SpecularDataItem::SpecularDataItem() : SessionItem(Constants::SpecularDataType) ...@@ -45,27 +44,11 @@ SpecularDataItem::SpecularDataItem() : SessionItem(Constants::SpecularDataType)
setXaxisTitle("X [nbins]"); setXaxisTitle("X [nbins]");
setYaxisTitle("Signal [a.u.]"); setYaxisTitle("Signal [a.u.]");
// name of the file used to serialize given SpecularDataItem
addProperty(P_FILE_NAME, QStringLiteral("undefined"))->setVisible(false);
mapper()->setOnPropertyChange([this](const QString& name)
{
if(name == P_FILE_NAME)
setLastModified(QDateTime::currentDateTime());
});
mapper()->setOnValueChange([this]()
{
// OutputData was modified
setLastModified(QDateTime::currentDateTime());
});
} }
void SpecularDataItem::setOutputData(OutputData<double>* data) void SpecularDataItem::setOutputData(OutputData<double>* data)
{ {
Q_ASSERT(data); DataItem::setOutputData(data);
m_data.reset(data);
updateAxesZoomLevel(); updateAxesZoomLevel();
updateAxesLabels(); updateAxesLabels();
...@@ -78,11 +61,7 @@ void SpecularDataItem::setOutputData(OutputData<double>* data) ...@@ -78,11 +61,7 @@ void SpecularDataItem::setOutputData(OutputData<double>* data)
void SpecularDataItem::setRawDataVector(const OutputData<double>* data) void SpecularDataItem::setRawDataVector(const OutputData<double>* data)
{ {
if (!m_data->hasSameDimensions(*data)) { DataItem::setRawDataVector(data);
throw GUIHelpers::Error("SpecularDataItem::setRawDataVector() -> Error. "
"Different dimensions of data.");
}
m_data->setRawDataVector(data->getRawDataVector());
emitDataChanged(); emitDataChanged();
} }
...@@ -158,12 +137,6 @@ QString SpecularDataItem::selectedAxesUnits() const ...@@ -158,12 +137,6 @@ QString SpecularDataItem::selectedAxesUnits() const
return combo.getValue(); return combo.getValue();
} }
QString SpecularDataItem::fileName(const QString& projectDir) const
{
QString filename = getItemValue(SpecularDataItem::P_FILE_NAME).toString();
return projectDir.isEmpty() ? filename : projectDir + QStringLiteral("/") + filename;
}
void SpecularDataItem::setLowerX(double xmin) void SpecularDataItem::setLowerX(double xmin)
{ {
getItem(P_XAXIS)->setItemValue(BasicAxisItem::P_MIN, xmin); getItem(P_XAXIS)->setItemValue(BasicAxisItem::P_MIN, xmin);
...@@ -283,13 +256,3 @@ void SpecularDataItem::resetView() ...@@ -283,13 +256,3 @@ void SpecularDataItem::resetView()
setAxesRangeToData(); setAxesRangeToData();
computeDataRange(); computeDataRange();
} }
QDateTime SpecularDataItem::lastModified() const
{
return m_last_modified;
}
void SpecularDataItem::setLastModified(const QDateTime &dtime)
{
m_last_modified = dtime;
}
...@@ -15,30 +15,25 @@ ...@@ -15,30 +15,25 @@
#ifndef SPECULARDATAITEM_H #ifndef SPECULARDATAITEM_H
#define SPECULARDATAITEM_H #define SPECULARDATAITEM_H
#include "SessionItem.h" #include "DataItem.h"
#include "OutputData.h"
#include <QDateTime>
class AmplitudeAxisItem; class AmplitudeAxisItem;
class BasicAxisItem; class BasicAxisItem;
class MaskContainerItem; class MaskContainerItem;
class ProjectionContainerItem; class ProjectionContainerItem;
class BA_CORE_API_ SpecularDataItem : public SessionItem class BA_CORE_API_ SpecularDataItem : public DataItem
{ {
public: public:
static const QString P_TITLE; static const QString P_TITLE;
static const QString P_AXES_UNITS; static const QString P_AXES_UNITS;
static const QString P_XAXIS; static const QString P_XAXIS;
static const QString P_YAXIS; static const QString P_YAXIS;
static const QString P_FILE_NAME;
SpecularDataItem(); SpecularDataItem();
OutputData<double>* getOutputData() { return m_data.get(); } void setOutputData(OutputData<double>* data) override;
const OutputData<double>* getOutputData() const { return m_data.get(); } void setRawDataVector(const OutputData<double>* data) override;
void setOutputData(OutputData<double>* data);
void setRawDataVector(const OutputData<double>* data);
//! Number of bins in data //! Number of bins in data
int getNbins() const; int getNbins() const;
...@@ -65,8 +60,6 @@ public: ...@@ -65,8 +60,6 @@ public:
QString selectedAxesUnits() const; QString selectedAxesUnits() const;
QString fileName(const QString& projectDir = QString()) const;
void updateDataRange(); void updateDataRange();
void computeDataRange(); void computeDataRange();
QPair<double, double> dataRange() const; QPair<double, double> dataRange() const;
...@@ -77,9 +70,6 @@ public: ...@@ -77,9 +70,6 @@ public:
void resetView(); void resetView();
QDateTime lastModified() const;
void setLastModified(const QDateTime& dtime);
public slots: public slots:
void setLowerX(double xmin); void setLowerX(double xmin);
void setUpperX(double xmax); void setUpperX(double xmax);
...@@ -93,9 +83,6 @@ public slots: ...@@ -93,9 +83,6 @@ public slots:
private: private:
void updateAxesZoomLevel(); void updateAxesZoomLevel();
void updateAxesLabels(); void updateAxesLabels();
std::unique_ptr<OutputData<double>> m_data; //!< simulation results
QDateTime m_last_modified;
}; };
#endif // SPECULARDATAITEM_H #endif // SPECULARDATAITEM_H
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