Added support for properties of type point, rect, and borders.

This commit is contained in:
Roberto Raggi
2010-01-25 15:05:23 +01:00
parent b37dededbc
commit cca9910287

View File

@@ -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