From 48876db7eb9d9f39b2e0fbab4f6c927423bd0e4d Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Mon, 18 Apr 2016 13:59:56 +0200
Subject: [PATCH] Fixed group property is removed from BeamItem

---
 GUI/coregui/Models/BeamItem.cpp               | 43 ++++++++++---------
 GUI/coregui/Models/SessionItem.cpp            |  3 +-
 GUI/coregui/Models/TransformFromDomain.cpp    |  6 +--
 GUI/coregui/Models/TransformToDomain.cpp      |  6 +--
 .../InstrumentWidgets/BeamEditorWidget.cpp    |  6 +--
 5 files changed, 33 insertions(+), 31 deletions(-)

diff --git a/GUI/coregui/Models/BeamItem.cpp b/GUI/coregui/Models/BeamItem.cpp
index 536387dc3f0..e01fd781be0 100644
--- a/GUI/coregui/Models/BeamItem.cpp
+++ b/GUI/coregui/Models/BeamItem.cpp
@@ -36,9 +36,9 @@ BeamItem::BeamItem() : SessionItem(Constants::BeamType)
 {
     ScientificDoubleProperty intensity(1e+08);
     addProperty(P_INTENSITY, intensity.getVariant())->setLimits(AttLimits::limited(0.0, 1e+32));
-    addGroupProperty(P_WAVELENGTH, Constants::BeamWavelengthType);
-    addGroupProperty(P_INCLINATION_ANGLE, Constants::BeamInclinationAngleType);
-    addGroupProperty(P_AZIMUTHAL_ANGLE, Constants::BeamAzimuthalAngleType);
+    addGroupPropertyTmp(P_WAVELENGTH, Constants::BeamWavelengthType);
+    addGroupPropertyTmp(P_INCLINATION_ANGLE, Constants::BeamInclinationAngleType);
+    addGroupPropertyTmp(P_AZIMUTHAL_ANGLE, Constants::BeamAzimuthalAngleType);
 }
 
 double BeamItem::getIntensity() const
@@ -58,18 +58,19 @@ void BeamItem::setIntensity(double value)
 
 double BeamItem::getWavelength() const
 {
-    SessionItem *beamWavelength = getGroupItem(P_WAVELENGTH);
+    SessionItem *beamWavelength = getItem(P_WAVELENGTH);
     Q_ASSERT(beamWavelength);
-    SessionItem *distributionNoneValueItem =
-            beamWavelength->getGroupItem(BeamDistributionItem::P_DISTRIBUTION,Constants::DistributionNoneType)
-            ->getItem(DistributionNoneItem::P_VALUE);
-    return distributionNoneValueItem->value().toDouble();
+    SessionItem *distributionNoneValueItem =
+            beamWavelength->getGroupItem(BeamDistributionItem::P_DISTRIBUTION,
+                                         Constants::DistributionNoneType)
+            ->getItem(DistributionNoneItem::P_VALUE);
+    return distributionNoneValueItem->value().toDouble();
 }
 
 void BeamItem::setWavelength(double value, const QString &distribution_name)
 {
     Q_UNUSED(distribution_name);
-    SessionItem *beamWavelength = getGroupItem(P_WAVELENGTH);
+    SessionItem *beamWavelength = getItem(P_WAVELENGTH);
     Q_ASSERT(beamWavelength);
     SessionItem *distributionItem = beamWavelength->setGroupProperty(
         BeamDistributionItem::P_DISTRIBUTION, Constants::DistributionNoneType);
@@ -79,18 +80,18 @@ void BeamItem::setWavelength(double value, const QString &distribution_name)
 
 double BeamItem::getInclinationAngle() const
 {
-    SessionItem *angleItem = getGroupItem(P_INCLINATION_ANGLE);
+    SessionItem *angleItem = getItem(P_INCLINATION_ANGLE);
     Q_ASSERT(angleItem);
-    SessionItem *distributionNoneValueItem =
-            angleItem->getGroupItem(BeamDistributionItem::P_DISTRIBUTION,Constants::DistributionNoneType)
-            ->getItem(DistributionNoneItem::P_VALUE);
-    return distributionNoneValueItem->value().toDouble();
+    SessionItem *distributionNoneValueItem =
+            angleItem->getGroupItem(BeamDistributionItem::P_DISTRIBUTION,Constants::DistributionNoneType)
+            ->getItem(DistributionNoneItem::P_VALUE);
+    return distributionNoneValueItem->value().toDouble();
 }
 
 void BeamItem::setInclinationAngle(double value, const QString &distribution_name)
 {
     Q_UNUSED(distribution_name);
-    SessionItem *angleItem = getGroupItem(P_INCLINATION_ANGLE);
+    SessionItem *angleItem = getItem(P_INCLINATION_ANGLE);
     Q_ASSERT(angleItem);
     SessionItem *distributionItem = angleItem->setGroupProperty(
         BeamDistributionItem::P_DISTRIBUTION, Constants::DistributionNoneType);
@@ -100,18 +101,18 @@ void BeamItem::setInclinationAngle(double value, const QString &distribution_nam
 
 double BeamItem::getAzimuthalAngle() const
 {
-    SessionItem *angleItem = getGroupItem(P_AZIMUTHAL_ANGLE);
+    SessionItem *angleItem = getItem(P_AZIMUTHAL_ANGLE);
     Q_ASSERT(angleItem);
-    SessionItem *distributionNoneValueItem =
-            angleItem->getGroupItem(BeamDistributionItem::P_DISTRIBUTION,Constants::DistributionNoneType)
-            ->getItem(DistributionNoneItem::P_VALUE);
-    return distributionNoneValueItem->value().toDouble();
+    SessionItem *distributionNoneValueItem =
+            angleItem->getGroupItem(BeamDistributionItem::P_DISTRIBUTION,Constants::DistributionNoneType)
+            ->getItem(DistributionNoneItem::P_VALUE);
+    return distributionNoneValueItem->value().toDouble();
 }
 
 void BeamItem::setAzimuthalAngle(double value, const QString &distribution_name)
 {
     Q_UNUSED(distribution_name);
-    SessionItem *angleItem = getGroupItem(P_AZIMUTHAL_ANGLE);
+    SessionItem *angleItem = getItem(P_AZIMUTHAL_ANGLE);
     Q_ASSERT(angleItem);
     SessionItem *distributionItem = angleItem->setGroupProperty(
         BeamDistributionItem::P_DISTRIBUTION, Constants::DistributionNoneType);
diff --git a/GUI/coregui/Models/SessionItem.cpp b/GUI/coregui/Models/SessionItem.cpp
index 85bfb8528c0..7016d02fa54 100644
--- a/GUI/coregui/Models/SessionItem.cpp
+++ b/GUI/coregui/Models/SessionItem.cpp
@@ -679,7 +679,8 @@ QString SessionItem::displayName() const
     QString result = data(SessionModel::DisplayNameRole).toString();
 
     if(modelType() == Constants::PropertyType || modelType() == Constants::GroupItemType ||
-       modelType() == Constants::ParameterLabelType) return result;
+       modelType() == Constants::ParameterType || modelType() == Constants::ParameterLabelType)
+        return result;
 
     if(m_parent) {
         QString tag = m_parent->tagFromItem(this);
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index 818cc188a22..40c9b60a60b 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -247,15 +247,15 @@ void TransformFromDomain::setItemFromSample(BeamItem *beamItem, const GISASSimul
         std::string mainParameterName = distributions[i].getMainParameterName();
         if (mainParameterName == pattern_wavelength.toStdString()) {
             BeamDistributionItem *beamWavelength = dynamic_cast<BeamDistributionItem *>(
-                beamItem->getGroupItem(BeamItem::P_WAVELENGTH));
+                beamItem->getItem(BeamItem::P_WAVELENGTH));
             setItemFromSample(beamWavelength, distributions[i]);
         } else if (mainParameterName == pattern_alpha.toStdString()) {
             BeamDistributionItem *inclinationAngle = dynamic_cast<BeamDistributionItem *>(
-                beamItem->getGroupItem(BeamItem::P_INCLINATION_ANGLE));
+                beamItem->getItem(BeamItem::P_INCLINATION_ANGLE));
             setItemFromSample(inclinationAngle, distributions[i]);
         } else if (mainParameterName == pattern_phi.toStdString()) {
             BeamDistributionItem *azimuthalAngle = dynamic_cast<BeamDistributionItem *>(
-                beamItem->getGroupItem(BeamItem::P_AZIMUTHAL_ANGLE));
+                beamItem->getItem(BeamItem::P_AZIMUTHAL_ANGLE));
             setItemFromSample(azimuthalAngle, distributions[i]);
         }
     }
diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp
index f93b053f314..f9b7ea7c36f 100644
--- a/GUI/coregui/Models/TransformToDomain.cpp
+++ b/GUI/coregui/Models/TransformToDomain.cpp
@@ -358,21 +358,21 @@ void TransformToDomain::addDistributionParametersToSimulation(const SessionItem
     pattern_phi.beginsWith("*").add(BeamType).add(Phi);
     if (beam_item.modelType() == Constants::BeamType) {
         if (auto beamWavelength
-            = dynamic_cast<BeamWavelengthItem *>(beam_item.getGroupItem(BeamItem::P_WAVELENGTH))) {
+            = dynamic_cast<BeamWavelengthItem *>(beam_item.getItem(BeamItem::P_WAVELENGTH))) {
             auto P_par_distr = beamWavelength->getParameterDistributionForName(
                         pattern_wavelength.toStdString());
             if (P_par_distr)
                 simulation->addParameterDistribution(*P_par_distr);
         }
         if (auto inclinationAngle = dynamic_cast<BeamInclinationAngleItem *>(
-                beam_item.getGroupItem(BeamItem::P_INCLINATION_ANGLE))) {
+                beam_item.getItem(BeamItem::P_INCLINATION_ANGLE))) {
             auto P_par_distr = inclinationAngle->getParameterDistributionForName(
                         pattern_alpha.toStdString());
             if (P_par_distr)
                 simulation->addParameterDistribution(*P_par_distr);
         }
         if (auto azimuthalAngle = dynamic_cast<BeamAzimuthalAngleItem *>(
-                beam_item.getGroupItem(BeamItem::P_AZIMUTHAL_ANGLE))) {
+                beam_item.getItem(BeamItem::P_AZIMUTHAL_ANGLE))) {
             auto P_par_distr = azimuthalAngle->getParameterDistributionForName(
                         pattern_phi.toStdString());
             if (P_par_distr)
diff --git a/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp b/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp
index 8cdeb0f472a..4fca8aae557 100644
--- a/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/BeamEditorWidget.cpp
@@ -98,14 +98,14 @@ void BeamEditorWidget::setBeamItem(BeamItem *beamItem)
 
     m_intensityEditor->addItem(m_beamItem->getItem(BeamItem::P_INTENSITY));
 
-    SessionItem *wavelengthItem = m_beamItem->getGroupItem(BeamItem::P_WAVELENGTH);
+    SessionItem *wavelengthItem = m_beamItem->getItem(BeamItem::P_WAVELENGTH);
     m_wavelengthPresenter->addPropertyItems(wavelengthItem->getItem(BeamDistributionItem::P_DISTRIBUTION));
 
     SessionItem *inclinationAngleItem
-            = m_beamItem->getGroupItem(BeamItem::P_INCLINATION_ANGLE);
+            = m_beamItem->getItem(BeamItem::P_INCLINATION_ANGLE);
     m_inclinationAnglePresenter->addPropertyItems(inclinationAngleItem->getItem(BeamDistributionItem::P_DISTRIBUTION));
 
-    SessionItem *azimuthalAngleItem = m_beamItem->getGroupItem(BeamItem::P_AZIMUTHAL_ANGLE);
+    SessionItem *azimuthalAngleItem = m_beamItem->getItem(BeamItem::P_AZIMUTHAL_ANGLE);
     m_azimuthalAnglePresenter->addPropertyItems(azimuthalAngleItem->getItem(BeamDistributionItem::P_DISTRIBUTION));
 }
 
-- 
GitLab