BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ParameterTreeUtils.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/ParameterTreeUtils.h
6 //! @brief Defines ParameterTreeUtils namespace
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_PARAMETERTREEUTILS_H
16 #define BORNAGAIN_GUI_COREGUI_MODELS_PARAMETERTREEUTILS_H
17 
18 #include <QPair>
19 #include <QString>
20 #include <functional>
21 
22 class JobItem;
23 class SessionItem;
24 class ParameterItem;
25 
26 //! The ParameterTreeBuilder namespace contains helper functions to create container
27 //! with ParameterItems. The ParameterItem appears in RealTimeView and provides real
28 //! time tuning of MultiLayerItem and InstrumentItem.
29 
30 namespace ParameterTreeUtils {
31 
32 void createParameterTree(JobItem* jobItem);
33 
34 void populateParameterContainer(SessionItem* container, const SessionItem* source);
35 
36 void visitParameterContainer(SessionItem* container, std::function<void(ParameterItem*)> fun);
37 
38 QStringList parameterTreeNames(const SessionItem* source);
39 
40 QStringList translatedParameterTreeNames(const SessionItem* source);
41 
42 QVector<QPair<QString, QString>> parameterDictionary(const SessionItem* source);
43 
44 QString domainNameToParameterName(const QString& domainName, const SessionItem* source);
45 
46 QString parameterNameToDomainName(const QString& parName, const SessionItem* source);
47 
48 SessionItem* parameterNameToLinkedItem(const QString& parName, const SessionItem* source);
49 
50 } // namespace ParameterTreeUtils
51 
52 #endif // BORNAGAIN_GUI_COREGUI_MODELS_PARAMETERTREEUTILS_H
The ParameterItem class represent a tuning value in a parameter tuning tree.
The ParameterTreeBuilder namespace contains helper functions to create container with ParameterItems.
void visitParameterContainer(SessionItem *container, std::function< void(ParameterItem *)> fun)
Visit all ParameterItem in container and execute user function.
QStringList translatedParameterTreeNames(const SessionItem *source)
Creates domain translated list of parameter names for source item.
QString domainNameToParameterName(const QString &domainName, const SessionItem *source)
Converts domain name to parameterItem name.
QStringList parameterTreeNames(const SessionItem *source)
Creates list with parameter names of source item.
QVector< QPair< QString, QString > > parameterDictionary(const SessionItem *source)
Correspondance of parameter name to translated name for all properties found in source in its childre...
QString parameterNameToDomainName(const QString &parName, const SessionItem *source)
Converts parameter name to domain name.
void populateParameterContainer(SessionItem *container, const SessionItem *source)
Populates ParameterContainer with ParameterItem's corresponding to all properties found in a source i...
void createParameterTree(JobItem *jobItem)
SessionItem * parameterNameToLinkedItem(const QString &parName, const SessionItem *source)
Converts parameter item name to the corresponding item in the tree below the source.