diff --git a/src/libs/languageutils/fakemetaobject.cpp b/src/libs/languageutils/fakemetaobject.cpp index 08134840ee85d04e638720697465482ec3e5daf4..6f47fbc2f06e019115163d5d3fbd20bd00b5ddad 100644 --- a/src/libs/languageutils/fakemetaobject.cpp +++ b/src/libs/languageutils/fakemetaobject.cpp @@ -62,6 +62,9 @@ int FakeMetaEnum::keyCount() const QStringList FakeMetaEnum::keys() const { return m_keys; } +bool FakeMetaEnum::hasKey(const QString &key) const +{ return m_keys.contains(key); } + FakeMetaMethod::FakeMetaMethod(const QString &name, const QString &returnType) : m_name(name) , m_returnType(returnType) diff --git a/src/libs/languageutils/fakemetaobject.h b/src/libs/languageutils/fakemetaobject.h index f44a59abbd4e7416ba93c6d70edf59caf44eabc0..1b67876e253610d81d726b040cb5f1a1b80be4d1 100644 --- a/src/libs/languageutils/fakemetaobject.h +++ b/src/libs/languageutils/fakemetaobject.h @@ -62,6 +62,7 @@ public: QString key(int index) const; int keyCount() const; QStringList keys() const; + bool hasKey(const QString &key) const; }; class LANGUAGEUTILS_EXPORT FakeMetaMethod { diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index 2587bd62cad7c761da7185f03174dd6c52cb7ba7..8e0c63f7f3a2964773cb59c2460df22ebff12068 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -369,11 +369,6 @@ bool QmlObjectValue::isListProperty(const QString &propertyName) const return false; } -bool QmlObjectValue::isEnum(const QString &typeName) const -{ - return _metaObject->enumeratorIndex(typeName) != -1; -} - FakeMetaEnum QmlObjectValue::getEnum(const QString &typeName) const { const int index = _metaObject->enumeratorIndex(typeName); @@ -427,28 +422,6 @@ bool QmlObjectValue::hasProperty(const QString &propertyName) const return false; } -bool QmlObjectValue::enumContainsKey(const QString &enumName, const QString &enumKeyName) const -{ - int idx = _metaObject->enumeratorIndex(enumName); - if (idx == -1) - return false; - const FakeMetaEnum &fme = _metaObject->enumerator(idx); - for (int i = 0; i < fme.keyCount(); ++i) { - if (fme.key(i) == enumKeyName) - return true; - } - return false; -} - -QStringList QmlObjectValue::keysForEnum(const QString &enumName) const -{ - int idx = _metaObject->enumeratorIndex(enumName); - if (idx == -1) - return QStringList(); - const FakeMetaEnum &fme = _metaObject->enumerator(idx); - return fme.keys(); -} - // Returns true if this object is in a package or if there is an object that // has this one in its prototype chain and is itself in a package. bool QmlObjectValue::hasChildInPackage() const diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h index 2dbcc694ddab9f465df11eb05bceec00158d6360..a56412337f42652fbe57c55a7fd53674e33fdd8f 100644 --- a/src/libs/qmljs/qmljsinterpreter.h +++ b/src/libs/qmljs/qmljsinterpreter.h @@ -455,11 +455,6 @@ public: bool hasChildInPackage() const; LanguageUtils::FakeMetaEnum getEnum(const QString &typeName) const; - - // deprecated - bool isEnum(const QString &typeName) const; - QStringList keysForEnum(const QString &enumName) const; - bool enumContainsKey(const QString &enumName, const QString &enumKeyName) const; protected: const Value *findOrCreateSignature(int index, const LanguageUtils::FakeMetaMethod &method, QString *methodName) const; diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index 60f48df12d6a11f951b16d44699dd59d131d68c0..db2467886c4448709a948fa26a01ea10ff3b91f5 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -665,7 +665,7 @@ bool NodeMetaInfoPrivate::isPropertyEnum(const QString &propertyName) const //We have to run the prototype chain foreach (const Interpreter::ObjectValue *ov, objects) { if (const Interpreter::QmlObjectValue * qmlValue = dynamic_cast<const Interpreter::QmlObjectValue *>(ov)) { - if (qmlValue->isEnum(propertyType(propertyName))) + if (qmlValue->getEnum(propertyType(propertyName)).isValid()) return true; } } @@ -701,7 +701,7 @@ QString NodeMetaInfoPrivate::propertyEnumScope(const QString &propertyName) cons //We have to run the prototype chain foreach (const Interpreter::ObjectValue *ov, objects) { if (const Interpreter::QmlObjectValue * qmlValue = dynamic_cast<const Interpreter::QmlObjectValue *>(ov)) { - if (qmlValue->isEnum(propertyType(propertyName))) + if (qmlValue->getEnum(propertyType(propertyName)).isValid()) return qmlValue->className(); } } @@ -776,7 +776,7 @@ QStringList NodeMetaInfoPrivate::keysForEnum(const QString &enumName) const if (!isValid()) return QStringList(); - return getNearestQmlObjectValue()->keysForEnum(enumName); + return getNearestQmlObjectValue()->getEnum(enumName).keys(); } QString NodeMetaInfoPrivate::packageName() const diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index 00910fb9db6e8d725d62bb05432a56c687c036d4..13357b69d350eca2a8734ecc62af04052db6898c 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -542,7 +542,7 @@ public: if (const Interpreter::QmlObjectValue * qmlObject = dynamic_cast<const Interpreter::QmlObjectValue *>(containingObject)) { const QString typeName = qmlObject->propertyType(name); - if (qmlObject->isEnum(typeName)) { + if (qmlObject->getEnum(typeName).isValid()) { return QVariant(cleanedValue); } else { int type = QMetaType::type(typeName.toUtf8().constData()); @@ -612,7 +612,7 @@ public: if (!rhsQmlObjectValue) return QVariant(); - if (rhsQmlObjectValue->enumContainsKey(lhsPropertyTypeName, rhsValueName)) + if (rhsQmlObjectValue->getEnum(lhsPropertyTypeName).hasKey(rhsValueName)) return QVariant(rhsValueName); else return QVariant();