36 return QVariant::fromValue(value);
56 const std::vector<double> vec{1, 2};
79 QVariant bool_variant = QVariant::fromValue(
true);
80 QVariant int_variant = QVariant::fromValue(1);
81 QVariant double_variant = QVariant::fromValue(42.0);
82 QVariant string_variant = QVariant::fromValue(std::string(
"string"));
83 std::vector<double> vec{1, 2};
84 QVariant vector_variant = QVariant::fromValue(vec);
86 QVariant combo_variant = QVariant::fromValue(combo);
87 QVariant color_variant = QVariant::fromValue(QColor(Qt::red));
89 QVariant limits_variant = QVariant::fromValue(
RealLimits());
91 std::vector<QVariant> variants = {bool_variant, int_variant, double_variant,
92 string_variant, vector_variant, combo_variant,
93 color_variant, extprop_variant, limits_variant};
94 for (
size_t i = 0; i < variants.size(); ++i) {
97 for (
size_t j = 0; j < variants.size(); ++j) {
113 const std::vector<double> vec1{1, 2};
114 const std::vector<double> vec2{1, 2, 3};
125 combo4.setValue(
"e2");
127 std::vector<QVariant> variants = {QVariant(),
128 QVariant::fromValue(
true),
129 QVariant::fromValue(
false),
130 QVariant::fromValue(1),
131 QVariant::fromValue(2),
132 QVariant::fromValue(42.0),
133 QVariant::fromValue(43.0),
134 QVariant::fromValue(std::string(
"string1")),
135 QVariant::fromValue(std::string(
"string2")),
136 QVariant::fromValue(vec1),
137 QVariant::fromValue(vec2),
138 QVariant::fromValue(combo1),
139 QVariant::fromValue(combo2),
140 QVariant::fromValue(QColor(Qt::red)),
141 QVariant::fromValue(QColor(Qt::green)),
142 QVariant::fromValue(extprop1),
143 QVariant::fromValue(extprop2),
144 QVariant::fromValue(lim1),
145 QVariant::fromValue(lim2),
146 QVariant::fromValue(combo3),
147 QVariant::fromValue(combo4)};
149 for (
size_t i = 0; i < variants.size(); ++i) {
150 for (
size_t j = 0; j < variants.size(); ++j) {
166 EXPECT_TRUE(
Utils::IsTheSame(QVariant::fromValue(combo1), QVariant::fromValue(combo1)));
169 combo2.setValue(
"a2");
170 EXPECT_FALSE(
Utils::IsTheSame(QVariant::fromValue(combo1), QVariant::fromValue(combo2)));
172 QVariant v1 = QVariant::fromValue(combo1);
173 QVariant v2 = QVariant::fromValue(combo2);
182 QVariant stdstring_variant = QVariant::fromValue(std::string(
"abc"));
183 QVariant qstring_variant = QVariant::fromValue(QString(
"abc"));
186 EXPECT_FALSE(qstring_variant == stdstring_variant);
187 EXPECT_TRUE(qstring_variant == converted);
190 QVariant value(42.0);
202 QVariant stdstring_variant = QVariant::fromValue(std::string(
"abc"));
203 QVariant qstring_variant = QVariant::fromValue(QString(
"abc"));
206 EXPECT_FALSE(qstring_variant == stdstring_variant);
207 EXPECT_TRUE(stdstring_variant == converted);
210 QVariant value(42.0);
223 using is_variant_t = std::function<bool(
const QVariant&)>;
225 std::vector<std::pair<QVariant, is_variant_t>> data = {
236 for (
size_t i = 0; i < data.size(); ++i) {
237 auto is_variant_func = data[i].second;
238 for (
size_t j = 0; j < data.size(); ++j) {
239 auto variant = data[j].first;
241 EXPECT_TRUE(is_variant_func(variant));
243 EXPECT_FALSE(is_variant_func(variant));
QVariant variantFromArgument(const T &value)
Custom property to define list of string values with multiple selections.
void setValue(const std::string &name)
static ComboProperty createFrom(const std::vector< std::string > &values, const std::string ¤t_value={})
Property to carry text, color and identifier.
static RealLimits limited(double left_bound_value, double right_bound_value)
Creates an object bounded from the left and right.
TEST_F(CustomVariantsTest, VariantFromTemplateArgument)
To keep under control implicit type conversion.
const std::string string_type_name
const std::string bool_type_name
const std::string reallimits_type_name
const std::string comboproperty_type_name
const std::string double_type_name
const std::string extproperty_type_name
const std::string vector_double_type_name
const std::string invalid_type_name
const std::string qcolor_type_name
const std::string int_type_name
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.
bool CompatibleVariantTypes(const QVariant &oldValue, const QVariant &newValue)
Returns true if variants has compatible types.