From 32abb49a4448baa921e702ba1e06ace3c3241b5b Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Wed, 6 Dec 2017 17:04:55 +0100
Subject: [PATCH] Obsolete GroupProperty_t removed

---
 GUI/coregui/Models/GroupItem.cpp              |  4 -
 GUI/coregui/Models/SessionXML.cpp             | 20 ----
 GUI/coregui/Models/item_constants.h           |  1 -
 .../Views/PropertyEditor/CustomEditors.cpp    | 98 +++++--------------
 .../Views/PropertyEditor/CustomEditors.h      | 47 ++-------
 .../PropertyEditor/PropertyEditorFactory.cpp  | 15 ---
 6 files changed, 30 insertions(+), 155 deletions(-)

diff --git a/GUI/coregui/Models/GroupItem.cpp b/GUI/coregui/Models/GroupItem.cpp
index 570eaa64dce..0d9bbaf6dec 100644
--- a/GUI/coregui/Models/GroupItem.cpp
+++ b/GUI/coregui/Models/GroupItem.cpp
@@ -18,7 +18,6 @@
 #include "GUIHelpers.h"
 #include "GroupItemController.h"
 #include "ComboProperty.h"
-#include <QDebug>
 #include "GUIHelpers.h"
 
 namespace {
@@ -89,11 +88,8 @@ void GroupItem::onValueChange()
     if (!value().canConvert<ComboProperty>())
         throw GUIHelpers::Error("GroupItem::onValueChange() -> Error. Wrong property type");
 
-    qDebug() << "GroupItem::onValueChange()";
-
     ComboProperty property = value().value<ComboProperty>();
     if (property.currentIndex() != m_controller->currentIndex()) {
-        qDebug() << "GroupItem::onValueChange() -> setting index" << property.currentIndex();
         m_controller->setCurrentIndex(property.currentIndex());
         // because of the delay between ComboProperty change and the change in GroupItem here,
         // we have to emit signals once again to inform other views (i.e. views other than the view
diff --git a/GUI/coregui/Models/SessionXML.cpp b/GUI/coregui/Models/SessionXML.cpp
index 7d6defcc325..18116c7530e 100644
--- a/GUI/coregui/Models/SessionXML.cpp
+++ b/GUI/coregui/Models/SessionXML.cpp
@@ -118,11 +118,6 @@ void SessionXML::writeVariant(QXmlStreamWriter* writer, QVariant variant, int ro
 
         }
 
-        else if (type_name == Constants::ObsoleteGroupPropertyType) {
-            QString ff_name = variant.value<ObsoleteGroupProperty_t>()->currentType();
-            writer->writeAttribute(SessionXML::ParameterValueAttribute, ff_name);
-        }
-
         else {
             throw GUIHelpers::Error("SessionModel::writeProperty: Parameter type not supported "
                                     + type_name);
@@ -235,21 +230,6 @@ QString SessionXML::readProperty(QXmlStreamReader* reader, SessionItem* item,
         variant = combo_property.variant();
     }
 
-    else if (parameter_type == Constants::ObsoleteGroupPropertyType) {
-        QString parameter_value
-            = reader->attributes().value(SessionXML::ParameterValueAttribute).toString();
-
-        QVariant v = item->value();
-        if (!v.canConvert<ObsoleteGroupProperty_t>()) {
-            report_error(messageService, item, SET_ITEM_PROPERTY_ERROR,
-                         QStringLiteral("GroupProperty conversion failed"));
-        } else {
-            ObsoleteGroupProperty_t group_property = v.value<ObsoleteGroupProperty_t>();
-            group_property->setCurrentTypeName(parameter_value);
-            variant = QVariant::fromValue<ObsoleteGroupProperty_t>(group_property);
-        }
-    }
-
     else {
         throw GUIHelpers::Error("SessionModel::readProperty: "
                                 "Parameter type not supported"
diff --git a/GUI/coregui/Models/item_constants.h b/GUI/coregui/Models/item_constants.h
index c202334aaec..c603af6f79c 100644
--- a/GUI/coregui/Models/item_constants.h
+++ b/GUI/coregui/Models/item_constants.h
@@ -270,7 +270,6 @@ const QString MaskEditorPresentation = "Mask Editor";
 
 const ModelType ExternalPropertyType = "ExternalProperty";
 const ModelType ComboPropertyType = "ComboProperty";
-const ModelType ObsoleteGroupPropertyType = "ObsoleteGroupProperty_t";
 
 // --- Custom editors for variant propertues ---
 const ModelType DefaultEditorType = "Default";
diff --git a/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp b/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
index 5b2085fc9d2..df0896689a0 100644
--- a/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
+++ b/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
@@ -120,7 +120,7 @@ void ExternalPropertyEditor::initEditor()
 
 // --- CustomComboEditor ---
 
-CustomComboEditor::CustomComboEditor(QWidget* parent)
+ComboPropertyEditor::ComboPropertyEditor(QWidget* parent)
     : CustomEditor(parent)
     , m_box(new QComboBox)
     , m_wheel_event_filter(new WheelEventEater(this))
@@ -139,21 +139,28 @@ CustomComboEditor::CustomComboEditor(QWidget* parent)
     setConnected(true);
 }
 
-QSize CustomComboEditor::sizeHint() const
+QSize ComboPropertyEditor::sizeHint() const
 {
     return m_box->sizeHint();
 }
 
-QSize CustomComboEditor::minimumSizeHint() const
+QSize ComboPropertyEditor::minimumSizeHint() const
 {
     return m_box->minimumSizeHint();
 }
 
-void CustomComboEditor::onIndexChanged(int)
+void ComboPropertyEditor::onIndexChanged(int index)
 {
+    ComboProperty comboProperty = m_data.value<ComboProperty>();
+
+    if (comboProperty.currentIndex() != index) {
+        comboProperty.setCurrentIndex(index);
+        setDataIntern(QVariant::fromValue<ComboProperty>(comboProperty));
+        currentIndexChanged(index);
+    }
 }
 
-void CustomComboEditor::initEditor()
+void ComboPropertyEditor::initEditor()
 {
     setConnected(false);
 
@@ -166,89 +173,30 @@ void CustomComboEditor::initEditor()
 
 //! Returns list of labels for QComboBox
 
-QStringList CustomComboEditor::internLabels()
+QStringList ComboPropertyEditor::internLabels()
 {
-    return QStringList();
+    Q_ASSERT(m_data.canConvert<ComboProperty>());
+    ComboProperty comboProperty = m_data.value<ComboProperty>();
+    return comboProperty.getValues();
 }
 
 //! Returns index for QComboBox.
 
-int CustomComboEditor::internIndex()
+int ComboPropertyEditor::internIndex()
 {
-    return -1;
+    Q_ASSERT(m_data.canConvert<ComboProperty>());
+    ComboProperty comboProperty = m_data.value<ComboProperty>();
+    return comboProperty.currentIndex();
 }
 
-void CustomComboEditor::setConnected(bool isConnected)
+void ComboPropertyEditor::setConnected(bool isConnected)
 {
     if (isConnected)
         connect(m_box, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
-                this, &CustomComboEditor::onIndexChanged, Qt::UniqueConnection);
+                this, &ComboPropertyEditor::onIndexChanged, Qt::UniqueConnection);
     else
         disconnect(m_box, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
-                   this, &CustomComboEditor::onIndexChanged);
-}
-
-// --- GroupPropertyEditor ---
-
-GroupPropertyEditor::GroupPropertyEditor(QWidget* parent)
-    : CustomComboEditor(parent)
-{
-}
-
-void GroupPropertyEditor::onIndexChanged(int index)
-{
-    ObsoleteGroupProperty_t groupProperty = m_data.value<ObsoleteGroupProperty_t>();
-
-    if (groupProperty->currentIndex() != index) {
-        groupProperty->setCurrentIndex(index);
-        setDataIntern(QVariant::fromValue<ObsoleteGroupProperty_t>(groupProperty));
-    }
-}
-
-QStringList GroupPropertyEditor::internLabels()
-{
-    Q_ASSERT(m_data.canConvert<ObsoleteGroupProperty_t>());
-    ObsoleteGroupProperty_t groupProperty = m_data.value<ObsoleteGroupProperty_t>();
-    return groupProperty->itemLabels();
-}
-
-int GroupPropertyEditor::internIndex()
-{
-    Q_ASSERT(m_data.canConvert<ObsoleteGroupProperty_t>());
-    ObsoleteGroupProperty_t groupProperty = m_data.value<ObsoleteGroupProperty_t>();
-    return groupProperty->currentIndex();
-}
-
-// --- ComboPropertyEditor ---
-
-ComboPropertyEditor::ComboPropertyEditor(QWidget* parent)
-    : CustomComboEditor(parent)
-{
-}
-
-void ComboPropertyEditor::onIndexChanged(int index)
-{
-    ComboProperty comboProperty = m_data.value<ComboProperty>();
-
-    if (comboProperty.currentIndex() != index) {
-        comboProperty.setCurrentIndex(index);
-        setDataIntern(QVariant::fromValue<ComboProperty>(comboProperty));
-        currentIndexChanged(index);
-    }
-}
-
-QStringList ComboPropertyEditor::internLabels()
-{
-    Q_ASSERT(m_data.canConvert<ComboProperty>());
-    ComboProperty comboProperty = m_data.value<ComboProperty>();
-    return comboProperty.getValues();
-}
-
-int ComboPropertyEditor::internIndex()
-{
-    Q_ASSERT(m_data.canConvert<ComboProperty>());
-    ComboProperty comboProperty = m_data.value<ComboProperty>();
-    return comboProperty.currentIndex();
+                   this, &ComboPropertyEditor::onIndexChanged);
 }
 
 // --- ScientificDoublePropertyEditor ---
diff --git a/GUI/coregui/Views/PropertyEditor/CustomEditors.h b/GUI/coregui/Views/PropertyEditor/CustomEditors.h
index ff800133fdf..bf2f143b47b 100644
--- a/GUI/coregui/Views/PropertyEditor/CustomEditors.h
+++ b/GUI/coregui/Views/PropertyEditor/CustomEditors.h
@@ -71,17 +71,21 @@ private:
     QString m_extDialogType; //!< Type of the dialog which will be created on button click
 };
 
-//! Common editor for QComboBox-like custom editors.
+//! Editor for ComboProperty variant.
 
-class BA_CORE_API_ CustomComboEditor : public CustomEditor
+class BA_CORE_API_ ComboPropertyEditor : public CustomEditor
 {
     Q_OBJECT
 public:
-    explicit CustomComboEditor(QWidget *parent = nullptr);
+    explicit ComboPropertyEditor(QWidget *parent = nullptr);
 
     QSize sizeHint() const;
     QSize minimumSizeHint() const;
 
+signals:
+    //! Signal which is used only in the context of ComponentFlatView
+    void currentIndexChanged(int);
+
 protected slots:
     virtual void onIndexChanged(int index);
 
@@ -95,43 +99,6 @@ protected:
     class WheelEventEater* m_wheel_event_filter;
 };
 
-//! Editor for GroupProperty variant.
-
-class BA_CORE_API_ GroupPropertyEditor : public CustomComboEditor
-{
-    Q_OBJECT
-public:
-    explicit GroupPropertyEditor(QWidget *parent = nullptr);
-
-protected slots:
-    virtual void onIndexChanged(int index);
-
-protected:
-    QStringList internLabels();
-    int internIndex();
-};
-
-//! Editor for ComboProperty variant.
-
-class BA_CORE_API_ ComboPropertyEditor : public CustomComboEditor
-{
-    Q_OBJECT    
-public:
-    explicit ComboPropertyEditor(QWidget *parent = nullptr);
-
-
-signals:
-    //! Signal which is used only in the context of ComponentFlatView
-    void currentIndexChanged(int);
-
-protected slots:
-    void onIndexChanged(int index);
-
-protected:
-    QStringList internLabels();
-    int internIndex();
-};
-
 //! Editor for ScientificDoubleProperty variant.
 
 class BA_CORE_API_ ScientificDoublePropertyEditor : public CustomEditor
diff --git a/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp b/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp
index 0039b950468..ec234cebafb 100644
--- a/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp
+++ b/GUI/coregui/Views/PropertyEditor/PropertyEditorFactory.cpp
@@ -55,11 +55,6 @@ bool isExternalProperty(const QVariant& variant)
     return variant.canConvert<ExternalProperty>();
 }
 
-bool isGroupProperty(const QVariant& variant)
-{
-    return variant.canConvert<ObsoleteGroupProperty_t>();
-}
-
 bool isComboProperty(const QVariant& variant)
 {
     return variant.canConvert<ComboProperty>();
@@ -81,8 +76,6 @@ bool PropertyEditorFactory::IsCustomVariant(const QVariant& variant)
 {
     if (isExternalProperty(variant))
         return true;
-    if (isGroupProperty(variant))
-        return true;
     if (isComboProperty(variant))
         return true;
     if (isBoolProperty(variant))
@@ -96,8 +89,6 @@ QString PropertyEditorFactory::ToString(const QVariant& variant)
 {
     if (isExternalProperty(variant))
         return variant.value<ExternalProperty>().text();
-    if (isGroupProperty(variant))
-        return variant.value<ObsoleteGroupProperty_t>()->currentLabel();
     if (isComboProperty(variant))
         return variant.value<ComboProperty>().getValue();
     if (isBoolProperty(variant))
@@ -143,12 +134,6 @@ QWidget* PropertyEditorFactory::CreateEditor(const SessionItem& item, QWidget* p
         result = editor;
     }
 
-    else if(isGroupProperty(item.value())) {
-        auto editor = new GroupPropertyEditor;
-        editor->setData(item.value());
-        result = editor;
-    }
-
     else if(isComboProperty(item.value())) {
         auto editor = new ComboPropertyEditor;
         editor->setData(item.value());
-- 
GitLab