forked from qt-creator/qt-creator
QmlDesigner: Fix bool handling in the list model editor
Task-number: QDS-2581 Change-Id: I47a9ed4ca55532bb7199a6c5dd4894b7adb7d05d Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -51,6 +51,17 @@ public:
|
|||||||
|
|
||||||
QVariant maybeConvertToNumber(const QVariant &value)
|
QVariant maybeConvertToNumber(const QVariant &value)
|
||||||
{
|
{
|
||||||
|
if (value.type() == QVariant::Bool)
|
||||||
|
return value;
|
||||||
|
|
||||||
|
if (value.type() == QVariant::String) {
|
||||||
|
const QString text = value.toString();
|
||||||
|
if (text == "true")
|
||||||
|
return QVariant(true);
|
||||||
|
if (text == "false")
|
||||||
|
return QVariant(false);
|
||||||
|
}
|
||||||
|
|
||||||
bool canConvert = false;
|
bool canConvert = false;
|
||||||
double convertedValue = value.toDouble(&canConvert);
|
double convertedValue = value.toDouble(&canConvert);
|
||||||
if (canConvert) {
|
if (canConvert) {
|
||||||
|
@@ -1310,4 +1310,70 @@ TEST_F(ListModelEditor, ListViewHasModelBinding)
|
|||||||
ElementsAre("pic.png", "poo", 111, IsInvalid())));
|
ElementsAre("pic.png", "poo", 111, IsInvalid())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(ListModelEditor, AddBooleanDisplayValues)
|
||||||
|
{
|
||||||
|
model.setListModel(listModelNode);
|
||||||
|
|
||||||
|
model.setValue(0, 1, true);
|
||||||
|
|
||||||
|
ASSERT_THAT(displayValues(),
|
||||||
|
ElementsAre(ElementsAre(IsInvalid(), true, 1, 42),
|
||||||
|
ElementsAre("pic.png", "bar", 4, IsInvalid()),
|
||||||
|
ElementsAre("pic.png", "poo", 111, IsInvalid())));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ListModelEditor, AddBooleanProperties)
|
||||||
|
{
|
||||||
|
model.setListModel(listModelNode);
|
||||||
|
|
||||||
|
model.setValue(0, 1, true);
|
||||||
|
|
||||||
|
ASSERT_THAT(properties(),
|
||||||
|
ElementsAre(UnorderedElementsAre(IsVariantProperty("name", "foo"),
|
||||||
|
IsVariantProperty("value", true),
|
||||||
|
IsVariantProperty("value2", 42)),
|
||||||
|
UnorderedElementsAre(IsVariantProperty("image", "pic.png"),
|
||||||
|
IsVariantProperty("name", "bar"),
|
||||||
|
IsVariantProperty("value", 4)),
|
||||||
|
UnorderedElementsAre(IsVariantProperty("image", "pic.png"),
|
||||||
|
IsVariantProperty("name", "poo"),
|
||||||
|
IsVariantProperty("value", 111))));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ListModelEditor, AddTrueAsStringProperties)
|
||||||
|
{
|
||||||
|
model.setListModel(listModelNode);
|
||||||
|
|
||||||
|
model.setValue(0, 1, "true");
|
||||||
|
|
||||||
|
ASSERT_THAT(properties(),
|
||||||
|
ElementsAre(UnorderedElementsAre(IsVariantProperty("name", true),
|
||||||
|
IsVariantProperty("value", 1),
|
||||||
|
IsVariantProperty("value2", 42)),
|
||||||
|
UnorderedElementsAre(IsVariantProperty("image", "pic.png"),
|
||||||
|
IsVariantProperty("name", "bar"),
|
||||||
|
IsVariantProperty("value", 4)),
|
||||||
|
UnorderedElementsAre(IsVariantProperty("image", "pic.png"),
|
||||||
|
IsVariantProperty("name", "poo"),
|
||||||
|
IsVariantProperty("value", 111))));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ListModelEditor, AddFalseAsStringProperties)
|
||||||
|
{
|
||||||
|
model.setListModel(listModelNode);
|
||||||
|
|
||||||
|
model.setValue(0, 1, "false");
|
||||||
|
|
||||||
|
ASSERT_THAT(properties(),
|
||||||
|
ElementsAre(UnorderedElementsAre(IsVariantProperty("name", false),
|
||||||
|
IsVariantProperty("value", 1),
|
||||||
|
IsVariantProperty("value2", 42)),
|
||||||
|
UnorderedElementsAre(IsVariantProperty("image", "pic.png"),
|
||||||
|
IsVariantProperty("name", "bar"),
|
||||||
|
IsVariantProperty("value", 4)),
|
||||||
|
UnorderedElementsAre(IsVariantProperty("image", "pic.png"),
|
||||||
|
IsVariantProperty("name", "poo"),
|
||||||
|
IsVariantProperty("value", 111))));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
Reference in New Issue
Block a user