From ccc1952327e9194d78e48e17b89564636053f563 Mon Sep 17 00:00:00 2001
From: Alan Alpert <aalpert@blackberry.com>
Date: Fri, 29 Mar 2013 12:51:48 -0700
Subject: [PATCH] Add methodIndex function

While not a complete feature, as it does not handle overloads,
it is still an improvement on the current functionality. Would be
a good interim measure until full functionality arrives.

Change-Id: I947adc6a6dbccf676112ac77e186134fb660efd3
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
---
 src/libs/languageutils/fakemetaobject.cpp | 7 +++++++
 src/libs/languageutils/fakemetaobject.h   | 1 +
 2 files changed, 8 insertions(+)

diff --git a/src/libs/languageutils/fakemetaobject.cpp b/src/libs/languageutils/fakemetaobject.cpp
index 7b8eb48607f..a478b2171a1 100644
--- a/src/libs/languageutils/fakemetaobject.cpp
+++ b/src/libs/languageutils/fakemetaobject.cpp
@@ -208,6 +208,13 @@ int FakeMetaObject::methodOffset() const
 { return 0; }
 FakeMetaMethod FakeMetaObject::method(int index) const
 { return m_methods.at(index); }
+int FakeMetaObject::methodIndex(const QString &name) const //If performances becomes an issue, just use a nameToIdx hash
+{
+    for (int i=0; i<m_methods.count(); i++)
+        if (m_methods[i].methodName() == name)
+            return i;
+    return -1;
+}
 
 QString FakeMetaObject::defaultPropertyName() const
 { return m_defaultPropertyName; }
diff --git a/src/libs/languageutils/fakemetaobject.h b/src/libs/languageutils/fakemetaobject.h
index 31a474d0fdd..c0a417a7e11 100644
--- a/src/libs/languageutils/fakemetaobject.h
+++ b/src/libs/languageutils/fakemetaobject.h
@@ -188,6 +188,7 @@ public:
     int methodCount() const;
     int methodOffset() const;
     FakeMetaMethod method(int index) const;
+    int methodIndex(const QString &name) const; // Note: Returns any method with that name in case of overloads
 
     QString defaultPropertyName() const;
     void setDefaultPropertyName(const QString &defaultPropertyName);
-- 
GitLab