diff --git a/GUI/Model/Mini/MimoCatalog.cpp b/GUI/Model/Mini/MimoCatalog.cpp deleted file mode 100644 index 5f17af560d7c6b6598b7844b0f37b2641177f7b9..0000000000000000000000000000000000000000 --- a/GUI/Model/Mini/MimoCatalog.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// ************************************************************************************************ -// -// BornAgain: simulate and fit reflection and scattering -// -//! @file GUI/Model/Mini/MimoCatalog.cpp -//! @brief Implements class MimoCatalog. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************************************ - -#include "GUI/Model/Mini/MimoCatalog.h" -#include "Fit/Kernel/MinimizerFactory.h" -#include "GUI/Model/Util/String.h" - -//! Returns ComboProperty representing list of algorithms defined for given minimizerType. - -ComboProperty MimoCatalog::algorithmCombo(const QString& minimizerType) -{ - auto result = ComboProperty::fromList(algorithmNames(minimizerType)); - result.setToolTips(algorithmDescriptions(minimizerType)); - return result; -} - -//! Returns list of algorithm names defined for given minimizer. - -QStringList MimoCatalog::algorithmNames(const QString& minimizerType) -{ - std::vector<std::string> algos = - MinimizerFactory::catalog().algorithmNames(minimizerType.toStdString()); - return GUI::Util::String::fromStdStrings(algos); -} - -//! Returns list of algoritm descriptions defined for given minimizer. - -QStringList MimoCatalog::algorithmDescriptions(const QString& minimizerType) -{ - std::vector<std::string> descr = - MinimizerFactory::catalog().algorithmDescriptions(minimizerType.toStdString()); - return GUI::Util::String::fromStdStrings(descr); -} diff --git a/GUI/Model/Mini/MimoCatalog.h b/GUI/Model/Mini/MimoCatalog.h deleted file mode 100644 index ff6b33bd7f4e74b74ba47a293baf180c64f503e4..0000000000000000000000000000000000000000 --- a/GUI/Model/Mini/MimoCatalog.h +++ /dev/null @@ -1,29 +0,0 @@ -// ************************************************************************************************ -// -// BornAgain: simulate and fit reflection and scattering -// -//! @file GUI/Model/Mini/MimoCatalog.h -//! @brief Defines class MimoCatalog. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************************************ - -#ifndef BORNAGAIN_GUI_MODEL_MINI_MIMOCATALOG_H -#define BORNAGAIN_GUI_MODEL_MINI_MIMOCATALOG_H - -#include "GUI/Model/Descriptor/ComboProperty.h" - -//! Minimizer model catalog, with the list of available minimizers/algorithms. - -namespace MimoCatalog { - ComboProperty algorithmCombo(const QString& minimizerType); - - QStringList algorithmNames(const QString& minimizerType); - QStringList algorithmDescriptions(const QString& minimizerType); -}; - -#endif // BORNAGAIN_GUI_MODEL_MINI_MIMOCATALOG_H diff --git a/GUI/Model/Mini/MinimizerItems.cpp b/GUI/Model/Mini/MinimizerItems.cpp index 139cf12ab3a5114df6092c30662b93ef24efd2cc..562d4dab632a32e3bd810c71cd7badf562d828c4 100644 --- a/GUI/Model/Mini/MinimizerItems.cpp +++ b/GUI/Model/Mini/MinimizerItems.cpp @@ -14,15 +14,18 @@ #include "GUI/Model/Mini/MinimizerItems.h" #include "Base/Util/Assert.h" +#include "Fit/Kernel/MinimizerFactory.h" #include "Fit/Suite/GSLLevenbergMarquardtMinimizer.h" #include "Fit/Suite/GSLMultiMinimizer.h" #include "Fit/Suite/GeneticMinimizer.h" #include "Fit/Suite/Minuit2Minimizer.h" #include "Fit/Suite/SimAnMinimizer.h" -#include "GUI/Model/Mini/MimoCatalog.h" +#include "GUI/Model/Descriptor/ComboProperty.h" +#include "GUI/Model/Util/String.h" #include "GUI/Model/Util/UtilXML.h" #include "Sim/Fitting/ObjectiveMetric.h" #include "Sim/Fitting/ObjectiveMetricUtil.h" + #include <QMap> namespace { @@ -75,13 +78,37 @@ namespace { QMap<QString, QString> algorithm_minimizer_map; // TODO make this a class member +//! Returns list of algorithm names defined for given minimizer. +QStringList algorithmNames(const QString& minimizerType) +{ + std::vector<std::string> algos = + MinimizerFactory::catalog().algorithmNames(minimizerType.toStdString()); + return GUI::Util::String::fromStdStrings(algos); +} + +//! Returns list of algoritm descriptions defined for given minimizer. +QStringList algorithmDescriptions(const QString& minimizerType) +{ + std::vector<std::string> descr = + MinimizerFactory::catalog().algorithmDescriptions(minimizerType.toStdString()); + return GUI::Util::String::fromStdStrings(descr); +} + +//! Returns ComboProperty representing list of algorithms defined for given minimizerType. +ComboProperty algorithmCombo(const QString& minimizerType) +{ + auto result = ComboProperty::fromList(algorithmNames(minimizerType)); + result.setToolTips(algorithmDescriptions(minimizerType)); + return result; +} + QString add_algorithm_from_minimizer_to_list_and_map(MinimizerType minimizer_type, QStringList& common_algorithms_list, QStringList& common_algorithms_descriptions) { QString minimizer_name = minimizerTypeToName(minimizer_type); - QStringList algorithms = MimoCatalog::algorithmNames(minimizer_name); - QStringList descriptions = MimoCatalog::algorithmDescriptions(minimizer_name); + QStringList algorithms = algorithmNames(minimizer_name); + QStringList descriptions = algorithmDescriptions(minimizer_name); ASSERT(algorithms.size() == descriptions.size()); for (int i = 0; i < algorithms.size(); i++) { @@ -339,7 +366,7 @@ MinuitMinimizerItem::MinuitMinimizerItem() , m_max_func_calls(0) { QString minimizer_name = minimizerTypeToName(MinimizerType::Minuit2); - m_algorithm = MimoCatalog::algorithmCombo(minimizer_name); + m_algorithm = ::algorithmCombo(minimizer_name); } MinuitMinimizerItem::~MinuitMinimizerItem() = default; @@ -429,7 +456,7 @@ GSLMultiMinimizerItem::GSLMultiMinimizerItem() , m_max_iterations(0) { QString minimizer_name = minimizerTypeToName(MinimizerType::GSLMultiMin); - m_algorithm = MimoCatalog::algorithmCombo(minimizer_name); + m_algorithm = ::algorithmCombo(minimizer_name); } GSLMultiMinimizerItem::~GSLMultiMinimizerItem() = default;