diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index 049496c217e..9607b3b6154 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -111,6 +111,7 @@ public: switch (prop.type()) { case QMetaType::QByteArray: case QMetaType::QString: + case QMetaType::QUrl: value = engine()->stringValue(); break; @@ -124,6 +125,26 @@ public: value = engine()->numberValue(); break; + case QMetaType::QPoint: + case QMetaType::QPointF: { + // ### cache + ObjectValue *object = engine()->newObject(/*prototype =*/ 0); + object->setProperty("x", engine()->numberValue()); + object->setProperty("y", engine()->numberValue()); + value = object; + } break; + + case QMetaType::QRect: + case QMetaType::QRectF: { + // ### cache + ObjectValue *object = engine()->newObject(/*prototype =*/ 0); + object->setProperty("x", engine()->numberValue()); + object->setProperty("y", engine()->numberValue()); + object->setProperty("width", engine()->numberValue()); + object->setProperty("height", engine()->numberValue()); + value = object; + } break; + default: break; } // end of switch @@ -1429,6 +1450,13 @@ ObjectValue *Engine::newQmlObject(const QString &name) QmlObjectValue *object = new QmlObjectValue(&QmlGraphicsPen::staticMetaObject, this); _objects.append(object); return object; + } else if (name == QLatin1String("QmlGraphicsScaleGrid")) { + ObjectValue *object = newObject(/*prototype =*/ 0); + object->setProperty("left", numberValue()); + object->setProperty("top", numberValue()); + object->setProperty("right", numberValue()); + object->setProperty("bottom", numberValue()); + return object; } // ### TODO: add support for QML packages