diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-02-10 14:46:03 +0100 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-02-10 17:04:22 +0100 |
commit | 13f9135827b43a1ffd8bcbf3699641a3fedbd7dd (patch) | |
tree | 4cb942710114ac55f7b44d9b782f12620637e7fe | |
parent | 047ed35579a7d0bf9e6a33b06c5281d8189cde4b (diff) |
qmldump: Dump attached types and read them in Creator.
-rw-r--r-- | share/qtcreator/qml-type-descriptions/qtquick.qmltypes | 64 | ||||
-rw-r--r-- | share/qtcreator/qml/qmldump/main.cpp | 7 | ||||
-rw-r--r-- | src/libs/languageutils/fakemetaobject.cpp | 11 | ||||
-rw-r--r-- | src/libs/languageutils/fakemetaobject.h | 6 | ||||
-rw-r--r-- | src/libs/qmljs/qmljstypedescriptionreader.cpp | 4 |
5 files changed, 88 insertions, 4 deletions
diff --git a/share/qtcreator/qml-type-descriptions/qtquick.qmltypes b/share/qtcreator/qml-type-descriptions/qtquick.qmltypes index a3aad1d5e9..ec729dec9a 100644 --- a/share/qtcreator/qml-type-descriptions/qtquick.qmltypes +++ b/share/qtcreator/qml-type-descriptions/qtquick.qmltypes @@ -249,6 +249,7 @@ Module { "Qt/Component 4.7", "QtQuick/Component 1.0" ] + attachedType: "QDeclarativeComponentAttached" Enum { name: "Status" values: { @@ -272,6 +273,12 @@ Module { Method { name: "errorString"; type: "string" } } Component { + name: "QDeclarativeComponentAttached" + prototype: "QObject" + Signal { name: "completed" } + Signal { name: "destruction" } + } + Component { name: "QDeclarativeConnections" prototype: "QObject" exports: [ @@ -677,6 +684,7 @@ Module { "QtQuick/GridView 1.0", "QtQuick/GridView 1.1" ] + attachedType: "QDeclarativeGridViewAttached" Enum { name: "HighlightRangeMode" values: { @@ -767,6 +775,18 @@ Module { Method { name: "positionViewAtEnd" } } Component { + name: "QDeclarativeGridViewAttached" + prototype: "QObject" + Property { name: "view"; type: "QDeclarativeGridView"; isReadonly: true; isPointer: true } + Property { name: "isCurrentItem"; type: "bool"; isReadonly: true } + Property { name: "delayRemove"; type: "bool" } + Signal { name: "currentItemChanged" } + Signal { name: "delayRemoveChanged" } + Signal { name: "add" } + Signal { name: "remove" } + Signal { name: "viewChanged" } + } + Component { name: "QDeclarativeImage" defaultProperty: "data" prototype: "QDeclarativeImageBase" @@ -967,6 +987,7 @@ Module { "Qt/KeyNavigation 4.7", "QtQuick/KeyNavigation 1.0" ] + attachedType: "QDeclarativeKeyNavigationAttached" Enum { name: "Priority" values: { @@ -996,6 +1017,7 @@ Module { "Qt/Keys 4.7", "QtQuick/Keys 1.0" ] + attachedType: "QDeclarativeKeysAttached" Enum { name: "Priority" values: { @@ -1248,6 +1270,7 @@ Module { "QtQuick/ListView 1.0", "QtQuick/ListView 1.1" ] + attachedType: "QDeclarativeListViewAttached" Enum { name: "HighlightRangeMode" values: { @@ -1344,6 +1367,24 @@ Module { Method { name: "positionViewAtEnd" } } Component { + name: "QDeclarativeListViewAttached" + prototype: "QObject" + Property { name: "view"; type: "QDeclarativeListView"; isReadonly: true; isPointer: true } + Property { name: "isCurrentItem"; type: "bool"; isReadonly: true } + Property { name: "previousSection"; type: "string"; isReadonly: true } + Property { name: "nextSection"; type: "string"; isReadonly: true } + Property { name: "section"; type: "string"; isReadonly: true } + Property { name: "delayRemove"; type: "bool" } + Signal { name: "currentItemChanged" } + Signal { name: "sectionChanged" } + Signal { name: "prevSectionChanged" } + Signal { name: "nextSectionChanged" } + Signal { name: "delayRemoveChanged" } + Signal { name: "add" } + Signal { name: "remove" } + Signal { name: "viewChanged" } + } + Component { name: "QDeclarativeLoader" defaultProperty: "data" prototype: "QDeclarativeImplicitSizeItem" @@ -1443,9 +1484,15 @@ Module { "Qt/Package 4.7", "QtQuick/Package 1.0" ] + attachedType: "QDeclarativePackageAttached" Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } } Component { + name: "QDeclarativePackageAttached" + prototype: "QObject" + Property { name: "name"; type: "string" } + } + Component { name: "QDeclarativePaintedItem" defaultProperty: "data" prototype: "QDeclarativeItem" @@ -1585,6 +1632,7 @@ Module { "Qt/PathView 4.7", "QtQuick/PathView 1.0" ] + attachedType: "QDeclarativePathViewAttached" Enum { name: "HighlightRangeMode" values: { @@ -1638,6 +1686,15 @@ Module { Method { name: "decrementCurrentIndex" } } Component { + name: "QDeclarativePathViewAttached" + prototype: "QObject" + Property { name: "view"; type: "QDeclarativePathView"; isReadonly: true; isPointer: true } + Property { name: "isCurrentItem"; type: "bool"; isReadonly: true } + Property { name: "onPath"; type: "bool"; isReadonly: true } + Signal { name: "currentItemChanged" } + Signal { name: "pathChanged" } + } + Component { name: "QDeclarativePauseAnimation" prototype: "QDeclarativeAbstractAnimation" exports: [ @@ -2623,10 +2680,17 @@ Module { "Qt/VisualItemModel 4.7", "QtQuick/VisualItemModel 1.0" ] + attachedType: "QDeclarativeVisualItemModelAttached" Property { name: "children"; type: "QDeclarativeItem"; isList: true; isReadonly: true } Signal { name: "childrenChanged" } } Component { + name: "QDeclarativeVisualItemModelAttached" + prototype: "QObject" + Property { name: "index"; type: "int"; isReadonly: true } + Signal { name: "indexChanged" } + } + Component { name: "QDeclarativeVisualModel" prototype: "QObject" Property { name: "count"; type: "int"; isReadonly: true } diff --git a/share/qtcreator/qml/qmldump/main.cpp b/share/qtcreator/qml/qmldump/main.cpp index 9b2348cf3a..94d729beaf 100644 --- a/share/qtcreator/qml/qmldump/main.cpp +++ b/share/qtcreator/qml/qmldump/main.cpp @@ -67,6 +67,8 @@ void collectReachableMetaObjects(QObject *object, QSet<const QMetaObject *> *met void collectReachableMetaObjects(const QDeclarativeType *ty, QSet<const QMetaObject *> *metas) { collectReachableMetaObjects(ty->metaObject(), metas); + if (ty->attachedPropertiesType()) + collectReachableMetaObjects(ty->attachedPropertiesType(), metas); } /* We want to add the MetaObject for 'Qt' to the list, this is a @@ -219,6 +221,11 @@ public: qSort(exports); qml->writeArrayBinding(QLatin1String("exports"), exports); + + if (const QMetaObject *attachedType = (*qmlTypes.begin())->attachedPropertiesType()) { + qml->writeScriptBinding(QLatin1String("attachedType"), enquote( + convertToId(attachedType->className()))); + } } for (int index = meta->enumeratorOffset(); index < meta->enumeratorCount(); ++index) diff --git a/src/libs/languageutils/fakemetaobject.cpp b/src/libs/languageutils/fakemetaobject.cpp index a1ff503b42..7fd6dd2d4c 100644 --- a/src/libs/languageutils/fakemetaobject.cpp +++ b/src/libs/languageutils/fakemetaobject.cpp @@ -187,6 +187,13 @@ FakeMetaMethod FakeMetaObject::method(int index) const QString FakeMetaObject::defaultPropertyName() const { return m_defaultPropertyName; } - -void FakeMetaObject::setDefaultPropertyName(const QString defaultPropertyName) +void FakeMetaObject::setDefaultPropertyName(const QString &defaultPropertyName) { m_defaultPropertyName = defaultPropertyName; } + +QString FakeMetaObject::attachedTypeName() const +{ return m_attachedTypeName; } +void FakeMetaObject::setAttachedTypeName(const QString &name) +{ m_attachedTypeName = name; } + +bool FakeMetaObject::Export::isValid() const +{ return !type.isEmpty(); } diff --git a/src/libs/languageutils/fakemetaobject.h b/src/libs/languageutils/fakemetaobject.h index 4449a1e27e..f7c324683e 100644 --- a/src/libs/languageutils/fakemetaobject.h +++ b/src/libs/languageutils/fakemetaobject.h @@ -148,6 +148,7 @@ private: QHash<QString, int> m_propNameToIdx; QList<FakeMetaMethod> m_methods; QString m_defaultPropertyName; + QString m_attachedTypeName; public: FakeMetaObject(); @@ -181,7 +182,10 @@ public: FakeMetaMethod method(int index) const; QString defaultPropertyName() const; - void setDefaultPropertyName(const QString defaultPropertyName); + void setDefaultPropertyName(const QString &defaultPropertyName); + + QString attachedTypeName() const; + void setAttachedTypeName(const QString &name); }; } // namespace LanguageUtils diff --git a/src/libs/qmljs/qmljstypedescriptionreader.cpp b/src/libs/qmljs/qmljstypedescriptionreader.cpp index a1c92d6d9f..40c1011679 100644 --- a/src/libs/qmljs/qmljstypedescriptionreader.cpp +++ b/src/libs/qmljs/qmljstypedescriptionreader.cpp @@ -158,8 +158,10 @@ void TypeDescriptionReader::readComponent(UiObjectDefinition *ast) fmo->setDefaultPropertyName(readStringBinding(script)); } else if (name == "exports") { readExports(script, fmo); + } else if (name == "attachedType") { + fmo->setAttachedTypeName(readStringBinding(script)); } else { - addError(script->firstSourceLocation(), "Expected only name, prototype, defaultProperty and exports script bindings"); + addError(script->firstSourceLocation(), "Expected only name, prototype, defaultProperty, attachedType and exports script bindings"); return; } } else { |