QmlDesigner: add instance meta info

This commit is contained in:
Thomas Hartmann
2010-09-15 14:23:00 +02:00
parent ad09c0e447
commit 1d313aae28
6 changed files with 24 additions and 0 deletions

View File

@@ -118,6 +118,7 @@ public:
double opacity() const;
QVariant property(const QString &name) const;
QVariant defaultValue(const QString &name) const;
QString instanceType(const QString &name) const;
bool isValid() const;
void makeInvalid();

View File

@@ -63,6 +63,7 @@ public:
NodeListProperty nodeListProperty(const QString &name) const;
QVariant instanceValue(const QString &name) const;
QString QmlObjectNode::instanceType(const QString &name) const;
bool hasProperty(const QString &name) const;
bool hasBindingProperty(const QString &name) const;

View File

@@ -427,6 +427,14 @@ QVariant NodeInstance::defaultValue(const QString &name) const
return m_nodeInstance->resetValue(name);
}
/*!
\brief Returns the type of the property of this NodeInstance.
*/
QString NodeInstance::instanceType(const QString &name) const
{
return m_nodeInstance->instanceType(name);
}
/*!
\brief Returns if the NodeInstance is valid.
\returns true if the NodeInstance is valid

View File

@@ -617,6 +617,14 @@ QVariant ObjectNodeInstance::property(const QString &name) const
return property.read();
}
QString ObjectNodeInstance::instanceType(const QString &name) const
{
QDeclarativeProperty property(object(), name, context());
if (!property.isValid())
return QLatin1String("undefined");
return property.propertyTypeName();
}
void ObjectNodeInstance::setDeleteHeldInstance(bool deleteInstance)
{

View File

@@ -144,6 +144,7 @@ public:
virtual QVariant property(const QString &name) const;
virtual void resetProperty(const QString &name);
virtual void refreshProperty(const QString &name);
virtual QString instanceType(const QString &name) const;
void createDynamicProperty(const QString &name, const QString &typeName);
void setDeleteHeldInstance(bool deleteInstance);

View File

@@ -387,6 +387,11 @@ QVariant QmlObjectNode::instanceValue(const ModelNode &modelNode, const QString
return modelView->instanceForModelNode(modelNode).property(name);
}
QString QmlObjectNode::instanceType(const QString &name) const
{
return nodeInstance().instanceType(name);
}
NodeInstance QmlObjectNode::nodeInstance() const
{
return qmlModelView()->nodeInstanceView()->instanceForNode(modelNode());