From 0d693950195e6ca83e7b3d07c4203686e8457b30 Mon Sep 17 00:00:00 2001 From: Dmitry Yurov <d.yurov@fz-juelich.de> Date: Mon, 12 Feb 2018 16:52:34 +0100 Subject: [PATCH] Make IntensityDataItem derived from DataItem Redmine: #1936 --- GUI/coregui/Models/IntensityDataItem.cpp | 44 ++---------------------- GUI/coregui/Models/IntensityDataItem.h | 21 +++-------- 2 files changed, 7 insertions(+), 58 deletions(-) diff --git a/GUI/coregui/Models/IntensityDataItem.cpp b/GUI/coregui/Models/IntensityDataItem.cpp index da3341a9a70..276589c57c8 100644 --- a/GUI/coregui/Models/IntensityDataItem.cpp +++ b/GUI/coregui/Models/IntensityDataItem.cpp @@ -42,11 +42,10 @@ const QString IntensityDataItem::P_GRADIENT = "Gradient"; const QString IntensityDataItem::P_XAXIS = "x-axis"; const QString IntensityDataItem::P_YAXIS = "y-axis"; const QString IntensityDataItem::P_ZAXIS = "color-axis"; -const QString IntensityDataItem::P_FILE_NAME = "FileName"; const QString IntensityDataItem::T_MASKS = "Mask tag"; const QString IntensityDataItem::T_PROJECTIONS = "Projection tag"; -IntensityDataItem::IntensityDataItem() : SessionItem(Constants::IntensityDataType) +IntensityDataItem::IntensityDataItem() : DataItem(Constants::IntensityDataType) { ComboProperty units = ComboProperty() << Constants::UnitsNbins; addProperty(P_AXES_UNITS, units.variant()); @@ -69,32 +68,15 @@ IntensityDataItem::IntensityDataItem() : SessionItem(Constants::IntensityDataTyp setXaxisTitle("X [nbins]"); setYaxisTitle("Y [nbins]"); - // name of the file used to serialize given IntensityDataItem - addProperty(P_FILE_NAME, QStringLiteral("undefined"))->setVisible(false); - registerTag(T_MASKS, 0, -1, QStringList() << Constants::MaskContainerType); setDefaultTag(T_MASKS); registerTag(T_PROJECTIONS, 0, -1, QStringList() << Constants::ProjectionContainerType); - - mapper()->setOnPropertyChange([this](const QString& name) - { - if(name == P_FILE_NAME) - setLastModified(QDateTime::currentDateTime()); - }); - - mapper()->setOnValueChange([this]() - { - // OutputData was modified - setLastModified(QDateTime::currentDateTime()); - }); - } void IntensityDataItem::setOutputData(OutputData<double>* data) { - Q_ASSERT(data); - m_data.reset(data); + DataItem::setOutputData(data); updateAxesZoomLevel(); updateAxesLabels(); @@ -107,11 +89,7 @@ void IntensityDataItem::setOutputData(OutputData<double>* data) void IntensityDataItem::setRawDataVector(const OutputData<double>* data) { - if (!m_data->hasSameDimensions(*data)) { - throw GUIHelpers::Error("IntensityDataItem::setRawDataVector() -> Error. " - "Different dimensions of data."); - } - m_data->setRawDataVector(data->getRawDataVector()); + DataItem::setRawDataVector(data); emitDataChanged(); } @@ -221,12 +199,6 @@ QString IntensityDataItem::selectedAxesUnits() const return combo.getValue(); } -QString IntensityDataItem::fileName(const QString& projectDir) const -{ - QString filename = getItemValue(IntensityDataItem::P_FILE_NAME).toString(); - return projectDir.isEmpty() ? filename : projectDir + QStringLiteral("/") + filename; -} - void IntensityDataItem::setLowerX(double xmin) { getItem(P_XAXIS)->setItemValue(BasicAxisItem::P_MIN, xmin); @@ -416,13 +388,3 @@ ProjectionContainerItem* IntensityDataItem::projectionContainerItem() { return dynamic_cast<ProjectionContainerItem*>(getItem(IntensityDataItem::T_PROJECTIONS)); } - -QDateTime IntensityDataItem::lastModified() const -{ - return m_last_modified; -} - -void IntensityDataItem::setLastModified(const QDateTime &dtime) -{ - m_last_modified = dtime; -} diff --git a/GUI/coregui/Models/IntensityDataItem.h b/GUI/coregui/Models/IntensityDataItem.h index 0c8372630b9..10585d8daae 100644 --- a/GUI/coregui/Models/IntensityDataItem.h +++ b/GUI/coregui/Models/IntensityDataItem.h @@ -15,15 +15,13 @@ #ifndef INTENSITYDATAITEM_H #define INTENSITYDATAITEM_H -#include "SessionItem.h" -#include "OutputData.h" -#include <QDateTime> +#include "DataItem.h" class BasicAxisItem; class MaskContainerItem; class ProjectionContainerItem; -class BA_CORE_API_ IntensityDataItem : public SessionItem +class BA_CORE_API_ IntensityDataItem : public DataItem { public: static const QString P_PROJECTIONS_FLAG; @@ -34,16 +32,13 @@ public: static const QString P_XAXIS; static const QString P_YAXIS; static const QString P_ZAXIS; - static const QString P_FILE_NAME; static const QString T_MASKS; static const QString T_PROJECTIONS; IntensityDataItem(); - OutputData<double>* getOutputData() { return m_data.get(); } - const OutputData<double>* getOutputData() const { return m_data.get(); } - void setOutputData(OutputData<double>* data); - void setRawDataVector(const OutputData<double>* data); + void setOutputData(OutputData<double>* data) override; + void setRawDataVector(const OutputData<double>* data) override; int getNbinsX() const; int getNbinsY() const; @@ -80,8 +75,6 @@ public: QString selectedAxesUnits() const; - QString fileName(const QString& projectDir = QString()) const; - void updateDataRange(); void computeDataRange(); QPair<double, double> dataRange() const; @@ -98,9 +91,6 @@ public: MaskContainerItem* maskContainerItem(); ProjectionContainerItem* projectionContainerItem(); - QDateTime lastModified() const; - void setLastModified(const QDateTime& dtime); - public slots: void setLowerX(double xmin); void setUpperX(double xmax); @@ -118,9 +108,6 @@ public slots: private: void updateAxesZoomLevel(); void updateAxesLabels(); - - std::unique_ptr<OutputData<double>> m_data; //!< simulation results - QDateTime m_last_modified; }; #endif // INTENSITYDATAITEM_H -- GitLab