summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlmetaproperty_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qmlmetaproperty_p.h')
-rw-r--r--src/declarative/qml/qmlmetaproperty_p.h65
1 files changed, 23 insertions, 42 deletions
diff --git a/src/declarative/qml/qmlmetaproperty_p.h b/src/declarative/qml/qmlmetaproperty_p.h
index 1ccf913..00b9c3a 100644
--- a/src/declarative/qml/qmlmetaproperty_p.h
+++ b/src/declarative/qml/qmlmetaproperty_p.h
@@ -54,73 +54,54 @@
//
#include "qmlmetaproperty.h"
-#include "private/qobject_p.h"
+#include <private/qobject_p.h>
+#include <private/qmlpropertycache_p.h>
QT_BEGIN_NAMESPACE
-class QmlMetaObjectCache
-{
-public:
- QmlMetaObjectCache();
- ~QmlMetaObjectCache();
-
- struct Data {
- int propType;
- int coreIndex;
- QString name;
- };
-
- Data *property(const QString &, const QMetaObject *);
- Data *property(int, const QMetaObject *);
-
-private:
- void init(const QMetaObject *);
-
- Data *propertyCache;
- QHash<QString, int> propertyNameCache;
-};
-
class QmlContext;
class QmlMetaPropertyPrivate
{
public:
QmlMetaPropertyPrivate()
- : q(0), context(0), coreIdx(-1), valueTypeIdx(-1), valueTypeId(0),
- type(QmlMetaProperty::Invalid), attachedFunc(-1),
- object(0), propType(-1), category(QmlMetaProperty::Unknown) {}
+ : q(0), context(0), object(0), isDefaultProperty(false), valueTypeCoreIdx(-1),
+ valueTypePropType(0), attachedFunc(-1) {}
+
QmlMetaPropertyPrivate(const QmlMetaPropertyPrivate &other)
- : q(0), name(other.name), signal(other.signal), context(other.context),
- coreIdx(other.coreIdx), valueTypeIdx(other.valueTypeIdx),
- valueTypeId(other.valueTypeId), type(other.type),
- attachedFunc(other.attachedFunc), object(other.object),
- propType(other.propType), category(other.category) {}
+ : q(0), context(other.context), object(other.object),
+ isDefaultProperty(other.isDefaultProperty), core(other.core),
+ valueTypeCoreIdx(other.valueTypeCoreIdx),
+ valueTypePropType(other.valueTypePropType), attachedFunc(other.attachedFunc) {}
QmlMetaProperty *q;
-
- QString name;
- QMetaMethod signal;
QmlContext *context;
- int coreIdx;
- int valueTypeIdx;
- int valueTypeId;
- uint type;
- int attachedFunc;
QGuard<QObject> object;
- int propType;
- mutable QmlMetaProperty::PropertyCategory category;
+ bool isDefaultProperty;
+ QmlPropertyCache::Data core;
+
+ // Describes the "virtual" value-type sub-property.
+ int valueTypeCoreIdx; // The prop index of the access property on the value type wrapper
+ int valueTypePropType; // The QVariant::Type of access property on the value type wrapper
+
+ // The attached property accessor
+ int attachedFunc;
void initProperty(QObject *obj, const QString &name);
void initDefault(QObject *obj);
QObject *attachedObject() const;
- void findSignalInt(QObject *, const QString &);
+ QMetaMethod findSignal(QObject *, const QString &);
int propertyType() const;
QmlMetaProperty::PropertyCategory propertyCategory() const;
void writeSignalProperty(const QVariant &);
+
+ QVariant readValueProperty();
void writeValueProperty(const QVariant &, QmlMetaProperty::WriteSource);
+ static void write(QObject *, const QmlPropertyCache::Data &, const QVariant &, QmlContext *);
+ static QmlAbstractBinding *setBinding(QObject *, const QmlPropertyCache::Data &, QmlAbstractBinding *);
static quint32 saveValueType(int, int);
static quint32 saveProperty(int);