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)
|
||||
{
|
||||
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;
|
||||
double convertedValue = value.toDouble(&canConvert);
|
||||
if (canConvert) {
|
||||
|
@@ -1310,4 +1310,70 @@ TEST_F(ListModelEditor, ListViewHasModelBinding)
|
||||
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
|
||||
|
Reference in New Issue
Block a user