From d72ee7c7da8d803fb21a04cc0a8392837851f68d Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Fri, 1 Jul 2011 15:09:15 +0200
Subject: [PATCH] QmlJS: Remove deprecated enum functions in QmlObjectValue.

Change-Id: I30c1636f4946f465e5924493e561310f506df3d7
Reviewed-on: http://codereview.qt.nokia.com/1043
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
---
 src/libs/languageutils/fakemetaobject.cpp     |  3 +++
 src/libs/languageutils/fakemetaobject.h       |  1 +
 src/libs/qmljs/qmljsinterpreter.cpp           | 27 -------------------
 src/libs/qmljs/qmljsinterpreter.h             |  5 ----
 .../designercore/metainfo/nodemetainfo.cpp    |  6 ++---
 .../designercore/model/texttomodelmerger.cpp  |  4 +--
 6 files changed, 9 insertions(+), 37 deletions(-)

diff --git a/src/libs/languageutils/fakemetaobject.cpp b/src/libs/languageutils/fakemetaobject.cpp
index 08134840ee8..6f47fbc2f06 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 f44a59abbd4..1b67876e253 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 2587bd62cad..8e0c63f7f3a 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 2dbcc694dda..a56412337f4 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 60f48df12d6..db2467886c4 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 00910fb9db6..13357b69d35 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();
-- 
GitLab