BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
customvariants.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // qt-mvvm: Model-view-view-model framework for large GUI applications
4 //
5 //! @file mvvm/model/mvvm/model/customvariants.h
6 //! @brief Defines class CLASS?
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2020
11 //! @authors Gennady Pospelov et al, Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_MVVM_MODEL_MVVM_MODEL_CUSTOMVARIANTS_H
16 #define BORNAGAIN_MVVM_MODEL_MVVM_MODEL_CUSTOMVARIANTS_H
17 
18 //! @file mvvm/model/mvvm/model/customvariants.h
19 //! Registrations and translations for custom variants.
20 
21 #include "mvvm/core/variant.h"
22 #include "mvvm/model_export.h"
23 #include "mvvm/utils/reallimits.h"
24 #include <QMetaType>
25 #include <string>
26 #include <vector>
27 
28 namespace ModelView {
29 namespace Utils {
30 
31 //! Returns name of variant.
32 MVVM_MODEL_EXPORT std::string VariantName(const Variant& variant);
33 
34 //! Returns type of variant (additionally checks for user type).
35 MVVM_MODEL_EXPORT int VariantType(const Variant& variant);
36 
37 //! Returns true if variants has compatible types.
38 MVVM_MODEL_EXPORT bool CompatibleVariantTypes(const Variant& oldValue, const Variant& newValue);
39 
40 //! Returns true if given variants have same type and value.
41 MVVM_MODEL_EXPORT bool IsTheSame(const Variant& var1, const Variant& var2);
42 
43 //! Converts custom variant to standard variant which Qt views will understand.
44 MVVM_MODEL_EXPORT Variant toQtVariant(const Variant& custom);
45 
46 //! Converts Qt variant to custom variant on board of SessionItem.
47 MVVM_MODEL_EXPORT Variant toCustomVariant(const Variant& standard);
48 
49 //! Returns true in the case of double value based variant.
50 MVVM_MODEL_EXPORT bool IsBoolVariant(const Variant& variant);
51 
52 //! Returns true in the case of double value based variant.
53 MVVM_MODEL_EXPORT bool IsIntVariant(const Variant& variant);
54 
55 //! Returns true in the case of double value based variant.
56 MVVM_MODEL_EXPORT bool IsDoubleVariant(const Variant& variant);
57 
58 //! Returns true in the case of double value based variant.
59 MVVM_MODEL_EXPORT bool IsComboVariant(const Variant& variant);
60 
61 //! Returns true in the case of double value based variant.
62 MVVM_MODEL_EXPORT bool IsStdStringVariant(const Variant& variant);
63 
64 //! Returns true in the case of variant based on std::vector<double>.
65 MVVM_MODEL_EXPORT bool IsDoubleVectorVariant(const Variant& variant);
66 
67 //! Returns true in the case of QColor based variant.
68 MVVM_MODEL_EXPORT bool IsColorVariant(const Variant& variant);
69 
70 //! Returns true in the case of ExternalProperty based variant.
71 MVVM_MODEL_EXPORT bool IsExtPropertyVariant(const Variant& variant);
72 
73 //! Returns true in the case of RealLimits based variant.
74 MVVM_MODEL_EXPORT bool IsRealLimitsVariant(const Variant& variant);
75 
76 } // namespace Utils
77 } // namespace ModelView
78 
79 Q_DECLARE_METATYPE(std::string)
80 Q_DECLARE_METATYPE(std::vector<double>)
81 Q_DECLARE_METATYPE(ModelView::RealLimits)
82 
83 #endif // BORNAGAIN_MVVM_MODEL_MVVM_MODEL_CUSTOMVARIANTS_H
Limits for double.
Definition: reallimits.h:25
MVVM_MODEL_EXPORT bool IsTheSame(const Variant &var1, const Variant &var2)
Returns true if given variants have same type and value.
MVVM_MODEL_EXPORT Variant toCustomVariant(const Variant &standard)
Converts Qt variant to custom variant on board of SessionItem.
MVVM_MODEL_EXPORT bool IsIntVariant(const Variant &variant)
Returns true in the case of double value based variant.
MVVM_MODEL_EXPORT std::string VariantName(const Variant &variant)
Returns name of variant.
MVVM_MODEL_EXPORT bool IsColorVariant(const Variant &variant)
Returns true in the case of QColor based variant.
MVVM_MODEL_EXPORT int VariantType(const Variant &variant)
Returns type of variant (additionally checks for user type).
MVVM_MODEL_EXPORT bool IsDoubleVariant(const Variant &variant)
Returns true in the case of double value based variant.
MVVM_MODEL_EXPORT Variant toQtVariant(const Variant &custom)
Converts custom variant to standard variant which Qt views will understand.
MVVM_MODEL_EXPORT bool CompatibleVariantTypes(const Variant &oldValue, const Variant &newValue)
Returns true if variants has compatible types.
MVVM_MODEL_EXPORT bool IsStdStringVariant(const Variant &variant)
Returns true in the case of double value based variant.
MVVM_MODEL_EXPORT bool IsBoolVariant(const Variant &variant)
Returns true in the case of double value based variant.
MVVM_MODEL_EXPORT bool IsExtPropertyVariant(const Variant &variant)
Returns true in the case of ExternalProperty based variant.
MVVM_MODEL_EXPORT bool IsComboVariant(const Variant &variant)
Returns true in the case of double value based variant.
MVVM_MODEL_EXPORT bool IsDoubleVectorVariant(const Variant &variant)
Returns true in the case of variant based on std::vector<double>.
MVVM_MODEL_EXPORT bool IsRealLimitsVariant(const Variant &variant)
Returns true in the case of RealLimits based variant.
materialitems.h Collection of materials to populate MaterialModel.
Defines class CLASS?
Defines class CLASS?
QVariant Variant
Definition: variant.h:23