forked from qt-creator/qt-creator
Fixed dynamic property default values.
This commit is contained in:
@@ -179,6 +179,8 @@ static inline int propertyType(const QString &typeName)
|
|||||||
return QMetaType::type("int");
|
return QMetaType::type("int");
|
||||||
else if (typeName == QLatin1String("real"))
|
else if (typeName == QLatin1String("real"))
|
||||||
return QMetaType::type("double");
|
return QMetaType::type("double");
|
||||||
|
else if (typeName == QLatin1String("double"))
|
||||||
|
return QMetaType::type("double");
|
||||||
else if (typeName == QLatin1String("string"))
|
else if (typeName == QLatin1String("string"))
|
||||||
return QMetaType::type("QString");
|
return QMetaType::type("QString");
|
||||||
else if (typeName == QLatin1String("url"))
|
else if (typeName == QLatin1String("url"))
|
||||||
@@ -650,9 +652,16 @@ QVariant TextToModelMerger::convertToVariant(const ModelNode &node,
|
|||||||
|
|
||||||
if (!astType.isEmpty()) {
|
if (!astType.isEmpty()) {
|
||||||
const int type = propertyType(astType);
|
const int type = propertyType(astType);
|
||||||
QVariant value(cleanedValue);
|
if (type == QMetaType::type("QVariant")) {
|
||||||
|
if (cleanedValue.isNull()) // Explicitly isNull, NOT isEmpty!
|
||||||
|
return QVariant(static_cast<QVariant::Type>(type));
|
||||||
|
else
|
||||||
|
return QVariant(cleanedValue);
|
||||||
|
} else {
|
||||||
|
QVariant value = QVariant(cleanedValue);
|
||||||
value.convert(static_cast<QVariant::Type>(type));
|
value.convert(static_cast<QVariant::Type>(type));
|
||||||
return value;
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
const QString typeName = QMetaType::typeName(type);
|
const QString typeName = QMetaType::typeName(type);
|
||||||
return Internal::PropertyParser::read(typeName, astValue, nodeMetaInfo.metaInfo());
|
return Internal::PropertyParser::read(typeName, astValue, nodeMetaInfo.metaInfo());
|
||||||
|
|||||||
@@ -451,13 +451,13 @@ void TestCore::testRewriterDynamicProperties()
|
|||||||
QVERIFY(rootModelNode.hasVariantProperty("d"));
|
QVERIFY(rootModelNode.hasVariantProperty("d"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("d").dynamicTypeName(), QString("double"));
|
QCOMPARE(rootModelNode.variantProperty("d").dynamicTypeName(), QString("double"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("d").value().type(), QVariant::Double);
|
QCOMPARE(rootModelNode.variantProperty("d").value().type(), QVariant::Double);
|
||||||
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("b").value().toDouble(), 0.0);
|
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("d").value().toDouble(), 0.0);
|
||||||
|
|
||||||
QVERIFY(rootModelNode.hasVariantProperty("dd"));
|
QVERIFY(rootModelNode.hasVariantProperty("dd"));
|
||||||
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("dd").value().toDouble(), 1.1);
|
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("dd").value().toDouble(), 1.1);
|
||||||
|
|
||||||
QVERIFY(rootModelNode.hasVariantProperty("r"));
|
QVERIFY(rootModelNode.hasVariantProperty("r"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("r").dynamicTypeName(), QString("double"));
|
QCOMPARE(rootModelNode.variantProperty("r").dynamicTypeName(), QString("real"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("r").value().type(), QVariant::Double);
|
QCOMPARE(rootModelNode.variantProperty("r").value().type(), QVariant::Double);
|
||||||
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("r").value().toDouble(), 0.0);
|
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("r").value().toDouble(), 0.0);
|
||||||
|
|
||||||
@@ -490,7 +490,7 @@ void TestCore::testRewriterDynamicProperties()
|
|||||||
|
|
||||||
QVERIFY(rootModelNode.hasVariantProperty("t"));
|
QVERIFY(rootModelNode.hasVariantProperty("t"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("t").dynamicTypeName(), QString("date"));
|
QCOMPARE(rootModelNode.variantProperty("t").dynamicTypeName(), QString("date"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("t").value().type(), QVariant::Color);
|
QCOMPARE(rootModelNode.variantProperty("t").value().type(), QVariant::Date);
|
||||||
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("t").value().value<QDate>(), QDate());
|
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("t").value().value<QDate>(), QDate());
|
||||||
|
|
||||||
QVERIFY(rootModelNode.hasVariantProperty("tt"));
|
QVERIFY(rootModelNode.hasVariantProperty("tt"));
|
||||||
@@ -498,10 +498,12 @@ void TestCore::testRewriterDynamicProperties()
|
|||||||
|
|
||||||
QVERIFY(rootModelNode.hasVariantProperty("v"));
|
QVERIFY(rootModelNode.hasVariantProperty("v"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("v").dynamicTypeName(), QString("var"));
|
QCOMPARE(rootModelNode.variantProperty("v").dynamicTypeName(), QString("var"));
|
||||||
QCOMPARE(rootModelNode.variantProperty("v").value().type(), QVariant::Invalid);
|
const int type = rootModelNode.variantProperty("v").value().type();
|
||||||
|
QCOMPARE(type, QMetaType::type("QVariant"));
|
||||||
|
|
||||||
QVERIFY(rootModelNode.hasVariantProperty("vv"));
|
QVERIFY(rootModelNode.hasVariantProperty("vv"));
|
||||||
QCOMPARE(testRewriterView1->rootModelNode().variantProperty("vv").value().value<QString>(), QString("hello"));
|
const QString inThere = testRewriterView1->rootModelNode().variantProperty("vv").value().value<QString>();
|
||||||
|
QCOMPARE(inThere, QString("Hello"));
|
||||||
|
|
||||||
// test model2text
|
// test model2text
|
||||||
// QPlainTextEdit textEdit2;
|
// QPlainTextEdit textEdit2;
|
||||||
|
|||||||
Reference in New Issue
Block a user