QmlJS: Fixing type hierarchy for holes (non exported types)

Done-with: Christian Kamm
This commit is contained in:
Thomas Hartmann
2010-10-19 16:15:32 +02:00
committed by Christian Kamm
parent 87afbf3933
commit 4255220c35
2 changed files with 80 additions and 25 deletions

View File

@@ -383,7 +383,8 @@ private:
class QMLJS_EXPORT QmlObjectValue: public ObjectValue
{
public:
QmlObjectValue(const FakeMetaObject *metaObject, int exportIndex, Engine *engine);
QmlObjectValue(const FakeMetaObject *metaObject, const QString &className,
const QString &packageName, const ComponentVersion version, Engine *engine);
virtual ~QmlObjectValue();
virtual void processMembers(MemberProcessor *processor) const;
@@ -404,7 +405,8 @@ protected:
private:
const FakeMetaObject *_metaObject;
const int _exportIndex;
const QString _packageName;
const ComponentVersion _componentVersion;
mutable QHash<int, const Value *> _metaSignature;
};
@@ -534,7 +536,14 @@ public:
QHash<QString, QmlObjectValue *> types() const
{ return _typesByFullyQualifiedName; }
static QString qualifiedName(const QString &package, const QString &type, ComponentVersion version);
QmlObjectValue *typeByQualifiedName(const QString &name) const;
QmlObjectValue *typeByQualifiedName(const QString &package, const QString &type, ComponentVersion version) const;
private:
QmlObjectValue *getOrCreate(const QString &package, const QString &cppName, const FakeMetaObject *metaObject, Engine *engine, bool *created);
QHash<QString, QList<QmlObjectValue *> > _typesByPackage;
QHash<QString, QmlObjectValue *> _typesByFullyQualifiedName;
};