From 3d6d27e3b6d78f547c5ca86010f5fce5d5d20291 Mon Sep 17 00:00:00 2001 From: Tobias Knopff <t.knopff@fz-juelich.de> Date: Mon, 7 Jun 2021 11:28:46 +0200 Subject: [PATCH] Use string constants for resolution function item type names --- GUI/Models/DetectorItems.cpp | 2 +- GUI/Models/GroupInfoCatalog.cpp | 7 ++++--- GUI/Models/ItemCatalog.cpp | 4 ++-- GUI/Models/ResolutionFunctionItems.cpp | 8 ++++++-- GUI/Models/ResolutionFunctionItems.h | 5 +++++ GUI/Models/TransformFromDomain.cpp | 2 +- Tests/UnitTests/GUI/TestDetectorItems.cpp | 3 ++- 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/GUI/Models/DetectorItems.cpp b/GUI/Models/DetectorItems.cpp index cfac4d17331..3df3d87862d 100644 --- a/GUI/Models/DetectorItems.cpp +++ b/GUI/Models/DetectorItems.cpp @@ -145,7 +145,7 @@ void DetectorItem::update_resolution_function_tooltips() { auto& resfuncItem = groupItem<ResolutionFunctionItem>(DetectorItem::P_RESOLUTION_FUNCTION); - if (resfuncItem.modelType() == "ResolutionFunction2DGaussian") { + if (resfuncItem.modelType() == ResolutionFunction2DGaussianItem::M_TYPE) { QString units = modelType() == SphericalDetectorItem::M_TYPE ? "deg" : "mm"; resfuncItem.getItem(ResolutionFunction2DGaussianItem::P_SIGMA_X) diff --git a/GUI/Models/GroupInfoCatalog.cpp b/GUI/Models/GroupInfoCatalog.cpp index 45e6ad9fe2c..bc388ad4c86 100644 --- a/GUI/Models/GroupInfoCatalog.cpp +++ b/GUI/Models/GroupInfoCatalog.cpp @@ -22,6 +22,7 @@ #include "GUI/Models/PointwiseAxisItem.h" #include "GUI/Models/RealLimitsItems.h" #include "GUI/Models/RectangularDetectorItem.h" +#include "GUI/Models/ResolutionFunctionItems.h" #include "GUI/Models/SphericalDetectorItem.h" GroupInfoCatalog::GroupInfoCatalog() @@ -149,9 +150,9 @@ GroupInfoCatalog::GroupInfoCatalog() addInfo(info); info = GroupInfo("Resolution function group"); - info.add("ResolutionFunctionNone", "None"); - info.add("ResolutionFunction2DGaussian", "2D Gaussian"); - info.setDefaultType("ResolutionFunctionNone"); + info.add(ResolutionFunctionNoneItem::M_TYPE, "None"); + info.add(ResolutionFunction2DGaussianItem::M_TYPE, "2D Gaussian"); + info.setDefaultType(ResolutionFunctionNoneItem::M_TYPE); addInfo(info); info = GroupInfo("Minimizer library group"); diff --git a/GUI/Models/ItemCatalog.cpp b/GUI/Models/ItemCatalog.cpp index 74b43559c4b..fa64e9c8d4c 100644 --- a/GUI/Models/ItemCatalog.cpp +++ b/GUI/Models/ItemCatalog.cpp @@ -192,8 +192,8 @@ ItemCatalog::ItemCatalog() addItem<SpecularBeamInclinationItem>(); addItem<SpecularBeamWavelengthItem>(); - add("ResolutionFunctionNone", create_new<ResolutionFunctionNoneItem>); - add("ResolutionFunction2DGaussian", create_new<ResolutionFunction2DGaussianItem>); + addItem<ResolutionFunctionNoneItem>(); + addItem<ResolutionFunction2DGaussianItem>(); add("MaskContainer", create_new<MaskContainerItem>); add("RectangleMask", create_new<RectangleItem>); diff --git a/GUI/Models/ResolutionFunctionItems.cpp b/GUI/Models/ResolutionFunctionItems.cpp index bf47edc53a3..a2c226d3d34 100644 --- a/GUI/Models/ResolutionFunctionItems.cpp +++ b/GUI/Models/ResolutionFunctionItems.cpp @@ -19,8 +19,10 @@ ResolutionFunctionItem::ResolutionFunctionItem(const QString& name) : SessionIte /* --------------------------------------------------------------------------------------------- */ +const QString ResolutionFunctionNoneItem::M_TYPE = "ResolutionFunctionNone"; + ResolutionFunctionNoneItem::ResolutionFunctionNoneItem() - : ResolutionFunctionItem("ResolutionFunctionNone") + : ResolutionFunctionItem(M_TYPE) { } @@ -35,8 +37,10 @@ ResolutionFunctionNoneItem::createResolutionFunction(double) const const QString ResolutionFunction2DGaussianItem::P_SIGMA_X = QString::fromStdString("SigmaX"); const QString ResolutionFunction2DGaussianItem::P_SIGMA_Y = QString::fromStdString("SigmaY"); +const QString ResolutionFunction2DGaussianItem::M_TYPE = "ResolutionFunction2DGaussian"; + ResolutionFunction2DGaussianItem::ResolutionFunction2DGaussianItem() - : ResolutionFunctionItem("ResolutionFunction2DGaussian") + : ResolutionFunctionItem(M_TYPE) { addProperty(P_SIGMA_X, 0.02) ->setLimits(RealLimits::lowerLimited(0.0)) diff --git a/GUI/Models/ResolutionFunctionItems.h b/GUI/Models/ResolutionFunctionItems.h index 9c2d60564bd..7aa76eb29c6 100644 --- a/GUI/Models/ResolutionFunctionItems.h +++ b/GUI/Models/ResolutionFunctionItems.h @@ -33,6 +33,8 @@ public: class BA_CORE_API_ ResolutionFunctionNoneItem : public ResolutionFunctionItem { public: + static const QString M_TYPE; + ResolutionFunctionNoneItem(); std::unique_ptr<IResolutionFunction2D> createResolutionFunction(double scale = 1.0) const; }; @@ -42,6 +44,9 @@ class BA_CORE_API_ ResolutionFunction2DGaussianItem : public ResolutionFunctionI public: static const QString P_SIGMA_X; static const QString P_SIGMA_Y; + + static const QString M_TYPE; + ResolutionFunction2DGaussianItem(); std::unique_ptr<IResolutionFunction2D> createResolutionFunction(double scale = 1.0) const; }; diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp index e8373ed47ae..1e1b25c35d5 100644 --- a/GUI/Models/TransformFromDomain.cpp +++ b/GUI/Models/TransformFromDomain.cpp @@ -321,7 +321,7 @@ void TransformFromDomain::setDetectorResolution(DetectorItem* detector_item, if (auto resfunc = dynamic_cast<const ResolutionFunction2DGaussian*>( p_convfunc->getResolutionFunction2D())) { SessionItem* item = detector_item->setResolutionFunctionType - ("ResolutionFunction2DGaussian"); + (ResolutionFunction2DGaussianItem::M_TYPE); double scale(1.0); if (detector_item->modelType() == SphericalDetectorItem::M_TYPE) scale = 1. / Units::deg; diff --git a/Tests/UnitTests/GUI/TestDetectorItems.cpp b/Tests/UnitTests/GUI/TestDetectorItems.cpp index 587a763033f..f0ade3f9a87 100644 --- a/Tests/UnitTests/GUI/TestDetectorItems.cpp +++ b/Tests/UnitTests/GUI/TestDetectorItems.cpp @@ -6,6 +6,7 @@ #include "GUI/Models/InstrumentItems.h" #include "GUI/Models/InstrumentModel.h" #include "GUI/Models/RectangularDetectorItem.h" +#include "GUI/Models/ResolutionFunctionItems.h" #include "Tests/GTestWrapper/google_test.h" class TestDetectorItems : public ::testing::Test { @@ -35,7 +36,7 @@ TEST_F(TestDetectorItems, test_resolutionFunction) DetectorItem* detectorItem = instrument->detectorItem(); - detectorItem->setResolutionFunctionType("ResolutionFunction2DGaussian"); + detectorItem->setResolutionFunctionType(ResolutionFunction2DGaussianItem::M_TYPE); auto detector = detectorItem->createDetector(); auto convol = -- GitLab