From cc9717b1a54280fbcf34d385ef6a6d0c68175566 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Mon, 1 Aug 2022 19:07:48 +0200
Subject: [PATCH] MinizeSettingsWidget: replacing createComboBox

---
 GUI/Model/Job/MinimizerItem.cpp          |  7 +++++++
 GUI/Model/Job/MinimizerItem.h            |  3 ++-
 GUI/View/Fit/MinimizerSettingsWidget.cpp | 12 +++++++++---
 GUI/View/Tool/WidgetUtils.cpp            |  1 +
 4 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/GUI/Model/Job/MinimizerItem.cpp b/GUI/Model/Job/MinimizerItem.cpp
index 78650f15574..e7823c44d32 100644
--- a/GUI/Model/Job/MinimizerItem.cpp
+++ b/GUI/Model/Job/MinimizerItem.cpp
@@ -74,6 +74,13 @@ QString MinimizerContainerItem::currentMinimizer() const
     return minimizerCombo().currentValue();
 }
 
+void MinimizerContainerItem::setCurrentMinimizer(const QString& name)
+{
+    ComboProperty combo = minimizerCombo();
+    combo.setCurrentValue(name);
+    setItemValue(P_MINIMIZERS, combo.variant());
+}
+
 ComboProperty MinimizerContainerItem::minimizerCombo() const
 {
     return getItemValue(P_MINIMIZERS).value<ComboProperty>();
diff --git a/GUI/Model/Job/MinimizerItem.h b/GUI/Model/Job/MinimizerItem.h
index 14331d6aa91..2b75a25af68 100644
--- a/GUI/Model/Job/MinimizerItem.h
+++ b/GUI/Model/Job/MinimizerItem.h
@@ -53,9 +53,10 @@ public:
     MinimizerContainerItem();
 
     QString currentMinimizer() const;
+    void setCurrentMinimizer(const QString& name);
     ComboProperty minimizerCombo() const;
-    MinimizerItem* currentMinimizerItem() const;
     SelectionDescriptor<QString> minimizers() const;
+    MinimizerItem* currentMinimizerItem() const;
 
     QString currentNormFunction() const;
     ComboProperty normFunctionCombo() const;
diff --git a/GUI/View/Fit/MinimizerSettingsWidget.cpp b/GUI/View/Fit/MinimizerSettingsWidget.cpp
index 3384efe0550..51c3b889dc0 100644
--- a/GUI/View/Fit/MinimizerSettingsWidget.cpp
+++ b/GUI/View/Fit/MinimizerSettingsWidget.cpp
@@ -55,9 +55,15 @@ void MinimizerSettingsWidget::setMinItem(MinimizerContainerItem* minimizerItem)
     if (!m_currentItem)
         return;
 
-    m_mainLayout->addRow("Minimizer:", GUI::Util::createComboBoxUpdScrollFromDescriptor(
-                                           m_currentItem->minimizers(), &m_updaters,
-                                           [=](int) { createMimimizerEdits(); }));
+    m_mainLayout->addRow("Minimizer:", GUI::Util::createComboBoxUpdScroll(
+        [=] { return m_currentItem->minimizerCombo(); },
+        [=](const QString& newVal) {
+            m_currentItem->setCurrentMinimizer(newVal);
+            createMimimizerEdits();
+        }, &m_updaters));
+//    m_mainLayout->addRow("Minimizer:", GUI::Util::createComboBoxUpdScrollFromDescriptor(
+//                                           m_currentItem->minimizers(), &m_updaters,
+//                                           [=](int) { createMimimizerEdits(); }));
 
     auto* w = new QWidget(this);
     m_minimizerLayout = new QFormLayout(w);
diff --git a/GUI/View/Tool/WidgetUtils.cpp b/GUI/View/Tool/WidgetUtils.cpp
index 04106a3e732..b94cce7ad1e 100644
--- a/GUI/View/Tool/WidgetUtils.cpp
+++ b/GUI/View/Tool/WidgetUtils.cpp
@@ -35,6 +35,7 @@ QComboBox* GUI::Util::createComboBox(function<ComboProperty()> comboFunction,
     combo->addItems(comboFunction().values());
     combo->setMaxCount(comboFunction().values().size());
     combo->setToolTip(comboFunction().toolTip());
+    qInfo() << comboFunction().currentValue() << comboFunction().toolTip();
     combo->setCurrentText(comboFunction().currentValue());
 
     if (comboFunction().toolTips().size() == combo->count())
-- 
GitLab