From 2adca5e77d54d7cf7041a78a84a9aa7107759af5 Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Mon, 6 Feb 2017 17:50:43 +0100
Subject: [PATCH] Minimal cleanup in BeamItems, default limits for
 BeamWavelength changed.

---
 GUI/coregui/Models/BeamAngleItems.h         |  6 ++----
 GUI/coregui/Models/BeamDistributionItem.cpp | 11 ++---------
 GUI/coregui/Models/BeamDistributionItem.h   |  3 ++-
 GUI/coregui/Models/BeamWavelengthItem.cpp   |  6 ++++++
 GUI/coregui/Models/BeamWavelengthItem.h     |  4 +---
 GUI/coregui/Models/DistributionItems.cpp    |  2 +-
 6 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/GUI/coregui/Models/BeamAngleItems.h b/GUI/coregui/Models/BeamAngleItems.h
index f1e726efcea..d662d151d1b 100644
--- a/GUI/coregui/Models/BeamAngleItems.h
+++ b/GUI/coregui/Models/BeamAngleItems.h
@@ -22,8 +22,7 @@
 class BA_CORE_API_ BeamAzimuthalAngleItem : public BeamDistributionItem
 {
 public:
-    explicit BeamAzimuthalAngleItem();
-    virtual ~BeamAzimuthalAngleItem(){}
+    BeamAzimuthalAngleItem();
 
     double azimuthalAngle() const;
 
@@ -34,8 +33,7 @@ protected:
 class BA_CORE_API_ BeamInclinationAngleItem : public BeamDistributionItem
 {
 public:
-    explicit BeamInclinationAngleItem();
-    virtual ~BeamInclinationAngleItem(){}
+    BeamInclinationAngleItem();
 
     double inclinationAngle() const;
 
diff --git a/GUI/coregui/Models/BeamDistributionItem.cpp b/GUI/coregui/Models/BeamDistributionItem.cpp
index 1919500fd7d..a6b5c84d0eb 100644
--- a/GUI/coregui/Models/BeamDistributionItem.cpp
+++ b/GUI/coregui/Models/BeamDistributionItem.cpp
@@ -24,7 +24,7 @@
 
 const QString BeamDistributionItem::P_DISTRIBUTION = "Distribution";
 
-BeamDistributionItem::BeamDistributionItem(const QString name)
+BeamDistributionItem::BeamDistributionItem(const QString& name)
     : SessionItem(name)
 {
     addGroupProperty(P_DISTRIBUTION, Constants::DistributionExtendedGroup);
@@ -35,15 +35,8 @@ BeamDistributionItem::BeamDistributionItem(const QString name)
     mapper()->setOnChildPropertyChange(
                 [this](SessionItem* item, const QString &)
     {
-        if(item->modelType() == Constants::GroupItemType) {
+        if(item->modelType() == Constants::GroupItemType)
             initDistributionItem();
-        }
-//        if (item->modelType() == Constants::IntensityDataType
-//            && name == IntensityDataItem::P_AXES_UNITS) {
-//            auto intensityItem = dynamic_cast<IntensityDataItem *>(item);
-//            JobItemHelper::updateDataAxes(intensityItem, getInstrumentItem());
-
-//        }
     });
 
 }
diff --git a/GUI/coregui/Models/BeamDistributionItem.h b/GUI/coregui/Models/BeamDistributionItem.h
index 3780f31deed..323e157d659 100644
--- a/GUI/coregui/Models/BeamDistributionItem.h
+++ b/GUI/coregui/Models/BeamDistributionItem.h
@@ -28,7 +28,7 @@ class BA_CORE_API_ BeamDistributionItem : public SessionItem
 {
 public:
     static const QString P_DISTRIBUTION;
-    explicit BeamDistributionItem(const QString name = QString());
+    explicit BeamDistributionItem(const QString& name);
     virtual ~BeamDistributionItem(){}
 
     std::unique_ptr<ParameterDistribution> getParameterDistributionForName(
@@ -37,6 +37,7 @@ public:
     virtual double meanValue() const;
 
 protected:
+//    virtual RealLimits limits() const;
     void initDistributionItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution1D() const;
diff --git a/GUI/coregui/Models/BeamWavelengthItem.cpp b/GUI/coregui/Models/BeamWavelengthItem.cpp
index a743ea0883b..f9b45c59be3 100644
--- a/GUI/coregui/Models/BeamWavelengthItem.cpp
+++ b/GUI/coregui/Models/BeamWavelengthItem.cpp
@@ -19,6 +19,12 @@
 BeamWavelengthItem::BeamWavelengthItem()
     : BeamDistributionItem(Constants::BeamWavelengthType)
 {
+    SessionItem *distribution = dynamic_cast<DistributionNoneItem *>(getGroupItem(P_DISTRIBUTION));
+    Q_ASSERT(distribution);
+    auto value = distribution->getItem(DistributionNoneItem::P_VALUE);
+    value->setLimits(RealLimits::positive());
+    value->setDecimals(4);
+    value->setValue(0.1);
 }
 
 //! Returns wavelength. In the case of distribution applied, returns its mean.
diff --git a/GUI/coregui/Models/BeamWavelengthItem.h b/GUI/coregui/Models/BeamWavelengthItem.h
index fe24cfdd0be..5d15aea3668 100644
--- a/GUI/coregui/Models/BeamWavelengthItem.h
+++ b/GUI/coregui/Models/BeamWavelengthItem.h
@@ -21,10 +21,8 @@
 
 class BA_CORE_API_ BeamWavelengthItem : public BeamDistributionItem
 {
-
 public:
-    explicit BeamWavelengthItem();
-    virtual ~BeamWavelengthItem(){}
+    BeamWavelengthItem();
 
     double wavelength() const;
 };
diff --git a/GUI/coregui/Models/DistributionItems.cpp b/GUI/coregui/Models/DistributionItems.cpp
index 2a4fe762b5b..92fd54fd876 100644
--- a/GUI/coregui/Models/DistributionItems.cpp
+++ b/GUI/coregui/Models/DistributionItems.cpp
@@ -65,7 +65,7 @@ const QString DistributionNoneItem::P_VALUE = "Value";
 
 DistributionNoneItem::DistributionNoneItem() : DistributionItem(Constants::DistributionNoneType)
 {
-    addProperty(P_VALUE, 0.1)->setLimits(RealLimits::lowerLimited(1e-4));
+    addProperty(P_VALUE, 0.1)->setLimits(RealLimits::limitless());
     getItem(P_VALUE)->setDecimals(4);
 }
 
-- 
GitLab