diff --git a/GUI/coregui/DataLoaders/QREDataLoader.cpp b/GUI/coregui/DataLoaders/QREDataLoader.cpp index f9b4d4b6a1fd1292416acb4dcb7e03ce0e8c9694..298cb003ef9668ed6f50f7aa8cfa22b8c1390385 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 c7bfdd816160c85d6592648e7fe7cca7b65accec..dd6b6a18ea3f83131e564fb7e38b0c65797b05c7 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 8ab0d2c885c6347245d48de316e9efac076e4137..eec5c2d59559ecf805d35d6451d9efbcb8697e93 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 a9387823a678215ac1dbde15c00f6a0377f04e4d..6b9d6b959479aab4abd978289e3d95f1d9b38bbf 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 791be4d035e65527a554cad6760f8bcb6eb19001..1d90da71bba17c627d4915ef0c8796701fd88fa3 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 c2dd4df2f74f9e0e7975b2f0d875b3e0ba089519..6dc14916a6231e1c6c7160cf023fcc01f7a79a79 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 81091b0488c285fc0c3a460c5f9a517d274895ba..e7bfe494450c00460f0f5ac281ee3f359f16dc6f 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 1deeed9338102762ef536dec85ad2037889ccfc4..88a2fdd1d9b1cb7c2725beb94f5871c5e63c43d2 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 6f42427bcb59c635e387814a441df22209463235..92ac0d04c0e4b273fec664e189eb304d1ec02fee 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 4cab14fadb2d2dbdd6f9146545252dcc192c8e8d..40959d74c674a513392f0085f99c6a1c9446bf1b 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 bdd0c12a135e83c4274e58557f0e74d4c2cb74c9..38878e917e0363888de906c3b2e6f2d11e78ae25 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 e76cc5bb26e1ac54c89700ad33a80bd264bd6afc..b39ab181dbeb5e457a05686b1f5977bc486ab4d6 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(); }