From a984bde534e0ce284f59ca6d802dae9f75cf8442 Mon Sep 17 00:00:00 2001 From: Tobias Knopff <t.knopff@fz-juelich.de> Date: Tue, 4 May 2021 11:34:40 +0200 Subject: [PATCH] Make DataItem::P_AXES_UNITS private --- GUI/coregui/DataLoaders/QREDataLoader.cpp | 4 ++-- GUI/coregui/Models/DataItem.cpp | 15 +++++++++++++++ GUI/coregui/Models/DataItem.h | 7 ++++++- GUI/coregui/Models/IntensityDataItem.cpp | 4 ++-- GUI/coregui/Models/JobItem.cpp | 2 +- GUI/coregui/Models/JobItemUtils.cpp | 2 +- GUI/coregui/Models/RealDataItem.cpp | 3 ++- GUI/coregui/Models/SpecularDataItem.cpp | 4 ++-- .../Views/FitWidgets/FitComparisonController.cpp | 2 +- .../InstrumentWidgets/DetectorMaskDelegate.cpp | 2 +- .../Views/IntensityDataWidgets/ColorMap.cpp | 2 +- .../Views/SpecularDataWidgets/SpecularPlot.cpp | 2 +- 12 files changed, 35 insertions(+), 14 deletions(-) diff --git a/GUI/coregui/DataLoaders/QREDataLoader.cpp b/GUI/coregui/DataLoaders/QREDataLoader.cpp index f9b4d4b6a1f..298cb003ef9 100644 --- a/GUI/coregui/DataLoaders/QREDataLoader.cpp +++ b/GUI/coregui/DataLoaders/QREDataLoader.cpp @@ -557,8 +557,8 @@ void QREDataLoader::createOutputDataFromParsingResult(RealDataItem* item) const SpecularDataItem* specularItem = item->specularDataItem(); ComboProperty combo = ComboProperty() << units_name; - specularItem->setItemValue(SpecularDataItem::P_AXES_UNITS, combo.variant()); - specularItem->getItem(SpecularDataItem::P_AXES_UNITS)->setVisible(true); + specularItem->setAxesUnits(combo); + specularItem->getAxesUnitsItem()->setVisible(true); auto label_map = AxisNames::specAxis; const auto xAxisTitle = QString::fromStdString(label_map[Axes::Coords::QSPACE]); diff --git a/GUI/coregui/Models/DataItem.cpp b/GUI/coregui/Models/DataItem.cpp index c7bfdd81616..dd6b6a18ea3 100644 --- a/GUI/coregui/Models/DataItem.cpp +++ b/GUI/coregui/Models/DataItem.cpp @@ -90,6 +90,21 @@ QString DataItem::selectedCoords() const return combo.getValue(); } +void DataItem::setAxesUnits(const ComboProperty& units) +{ + setItemValue(P_AXES_UNITS, units.variant()); +} + +SessionItem* DataItem::getAxesUnitsItem() const +{ + return getItem(P_AXES_UNITS); +} + +bool DataItem::isAxesUnitsPropertyName(const QString& name) +{ + return name == P_AXES_UNITS; +} + DataItem::DataItem(const QString& modelType) : SessionItem(modelType) { // name of the file used to serialize given IntensityDataItem diff --git a/GUI/coregui/Models/DataItem.h b/GUI/coregui/Models/DataItem.h index 8ab0d2c885c..eec5c2d5955 100644 --- a/GUI/coregui/Models/DataItem.h +++ b/GUI/coregui/Models/DataItem.h @@ -21,6 +21,7 @@ #include <QDateTime> #include <mutex> +class ComboProperty; class ImportDataInfo; class InstrumentItem; @@ -32,9 +33,9 @@ class InstrumentItem; class BA_CORE_API_ DataItem : public SessionItem, public SaveLoadInterface { private: static const QString P_FILE_NAME; + static const QString P_AXES_UNITS; public: - static const QString P_AXES_UNITS; OutputData<double>* getOutputData() { return m_data.get(); } const OutputData<double>* getOutputData() const { return m_data.get(); } @@ -58,6 +59,10 @@ public: QString selectedCoords() const; + void setAxesUnits(const ComboProperty& units); + SessionItem* getAxesUnitsItem() const; + static bool isAxesUnitsPropertyName(const QString& name); + virtual void setXaxisTitle(const QString& title) = 0; virtual void setYaxisTitle(const QString& title) = 0; virtual void setAxesRangeToData() = 0; diff --git a/GUI/coregui/Models/IntensityDataItem.cpp b/GUI/coregui/Models/IntensityDataItem.cpp index a9387823a67..6b9d6b95947 100644 --- a/GUI/coregui/Models/IntensityDataItem.cpp +++ b/GUI/coregui/Models/IntensityDataItem.cpp @@ -234,8 +234,8 @@ void IntensityDataItem::reset(ImportDataInfo data) { ASSERT(data.unitsLabel() == "nbins"); ComboProperty combo = ComboProperty() << data.unitsLabel(); - setItemValue(IntensityDataItem::P_AXES_UNITS, combo.variant()); - getItem(IntensityDataItem::P_AXES_UNITS)->setVisible(true); + setAxesUnits(combo); + getAxesUnitsItem()->setVisible(true); setXaxisTitle(data.axisLabel(0)); setYaxisTitle(data.axisLabel(1)); diff --git a/GUI/coregui/Models/JobItem.cpp b/GUI/coregui/Models/JobItem.cpp index 791be4d035e..1d90da71bba 100644 --- a/GUI/coregui/Models/JobItem.cpp +++ b/GUI/coregui/Models/JobItem.cpp @@ -90,7 +90,7 @@ JobItem::JobItem() : SessionItem("JobItem") mapper()->setOnChildPropertyChange([this](SessionItem* item, const QString& name) { if (item->parent() == this && dynamic_cast<DataItem*>(item) - && name == DataItem::P_AXES_UNITS) + && DataItem::isAxesUnitsPropertyName(name)) dynamic_cast<DataItem*>(item)->updateCoords(instrumentItem()); }); diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp index c2dd4df2f74..6dc14916a62 100644 --- a/GUI/coregui/Models/JobItemUtils.cpp +++ b/GUI/coregui/Models/JobItemUtils.cpp @@ -107,7 +107,7 @@ void JobItemUtils::setIntensityItemCoords(DataItem* intensityItem, void JobItemUtils::setIntensityItemCoords(DataItem* intensityItem, const ICoordSystem& converter) { ComboProperty combo = availableUnits(converter); - intensityItem->setItemValue(DataItem::P_AXES_UNITS, combo.variant()); + intensityItem->setAxesUnits(combo); } void JobItemUtils::createDefaultDetectorMap(DataItem* intensityItem, diff --git a/GUI/coregui/Models/RealDataItem.cpp b/GUI/coregui/Models/RealDataItem.cpp index 81091b0488c..e7bfe494450 100644 --- a/GUI/coregui/Models/RealDataItem.cpp +++ b/GUI/coregui/Models/RealDataItem.cpp @@ -70,7 +70,8 @@ RealDataItem::RealDataItem() : SessionItem("RealData") mapper()->setOnChildPropertyChange([this](SessionItem* item, const QString& name) { auto data_item = dynamic_cast<DataItem*>(item); - if (!data_item || !linkedInstrument() || name != DataItem::P_AXES_UNITS) + if (!data_item || !linkedInstrument() + || DataItem::isAxesUnitsPropertyName(name)) return; mapper()->setActive(false); diff --git a/GUI/coregui/Models/SpecularDataItem.cpp b/GUI/coregui/Models/SpecularDataItem.cpp index 1deeed93381..88a2fdd1d9b 100644 --- a/GUI/coregui/Models/SpecularDataItem.cpp +++ b/GUI/coregui/Models/SpecularDataItem.cpp @@ -149,8 +149,8 @@ std::vector<int> SpecularDataItem::shape() const void SpecularDataItem::reset(ImportDataInfo data) { ComboProperty combo = ComboProperty() << data.unitsLabel(); - setItemValue(SpecularDataItem::P_AXES_UNITS, combo.variant()); - getItem(SpecularDataItem::P_AXES_UNITS)->setVisible(true); + setAxesUnits(combo); + getAxesUnitsItem()->setVisible(true); setXaxisTitle(data.axisLabel(0)); setYaxisTitle(data.axisLabel(1)); diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp index 6f42427bcb5..92ac0d04c0e 100644 --- a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp +++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp @@ -177,7 +177,7 @@ void DiffItemController::subscribe() // on diff item units change m_diff_item->mapper()->setOnPropertyChange( [this](const QString& name) { - if (name == DataItem::P_AXES_UNITS) + if (DataItem::isAxesUnitsPropertyName(name)) m_diff_item->updateCoords(m_current_item->instrumentItem()); }, this); diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp index 4cab14fadb2..40959d74c67 100644 --- a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp +++ b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp @@ -73,5 +73,5 @@ void DetectorMaskDelegate::createIntensityDataItem() JobItemUtils::createDefaultDetectorMap(m_intensityItem, instrument); m_intensityItem->getOutputData()->setAllTo(1.0); - m_intensityItem->getItem(DataItem::P_AXES_UNITS)->setEnabled(false); + m_intensityItem->getAxesUnitsItem()->setEnabled(false); } diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp index bdd0c12a135..38878e917e0 100644 --- a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp +++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp @@ -115,7 +115,7 @@ void ColorMap::onPropertyChanged(const QString& property_name) } else if (property_name == IntensityDataItem::P_IS_INTERPOLATED) { m_colorMap->setInterpolate(intensityItem()->isInterpolated()); replot(); - } else if (property_name == DataItem::P_AXES_UNITS) { + } else if (DataItem::isAxesUnitsPropertyName(property_name)) { setAxesRangeFromItem(intensityItem()); replot(); } diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp index e76cc5bb26e..b39ab181dbe 100644 --- a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp +++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp @@ -75,7 +75,7 @@ void SpecularPlot::onPropertyChanged(const QString& property_name) if (m_block_update) return; - if (property_name == DataItem::P_AXES_UNITS) { + if (DataItem::isAxesUnitsPropertyName(property_name)) { setAxesRangeFromItem(specularItem()); replot(); } -- GitLab