From 2ee4fa594678cfd2e3b874ef7235d410e6126da0 Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Wed, 6 Apr 2011 18:17:59 -0300 Subject: Skip functions added on base classes. Reviewer: Luciano Wolf Marcelo Lira --- abstractmetalang.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/abstractmetalang.cpp b/abstractmetalang.cpp index 24aaa68bd..509a7c1d2 100644 --- a/abstractmetalang.cpp +++ b/abstractmetalang.cpp @@ -1338,7 +1338,7 @@ void AbstractMetaClass::addFunction(AbstractMetaFunction *function) { Q_ASSERT(!function->signature().startsWith("(")); function->setOwnerClass(this); - + if (!function->isDestructor()) m_functions << function; else @@ -1981,6 +1981,10 @@ void AbstractMetaClass::fixFunctions() if (sf->isRemovedFromAllLanguages(sf->implementingClass())) continue; + // skip functions added in base classes + if (sf->isUserAdded() && sf->declaringClass() != this) + continue; + // we generally don't care about private functions, but we have to get the ones that are // virtual in case they override abstract functions. bool add = (sf->isNormal() || sf->isSignal() || sf->isEmptyFunction()); @@ -1989,6 +1993,7 @@ void AbstractMetaClass::fixFunctions() if (f->isRemovedFromAllLanguages(f->implementingClass())) continue; + uint cmp = f->compareTo(sf); if (cmp & AbstractMetaFunction::EqualModifiedName) { -- cgit v1.2.3