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