diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-07-28 19:49:28 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:17:06 -0300 |
commit | 8f86bd422a59b9f2f3460a657da196725b3356f2 (patch) | |
tree | 18c11205bc86880ab64fd78b0614a5652d0b796d /generator | |
parent | c992fc0ce7eb6a2f31134328d8aa80aeabaafe97 (diff) |
Centralized the generation of global and class enums in one method.
Diffstat (limited to 'generator')
-rw-r--r-- | generator/cppgenerator.cpp | 35 | ||||
-rw-r--r-- | generator/cppgenerator.h | 1 |
2 files changed, 16 insertions, 20 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index e64a2bf70..deaa9e69d 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -3129,6 +3129,19 @@ void CppGenerator::writeMethodDefinition(QTextStream& s, const AbstractMetaFunct s << ',' << endl; } +void CppGenerator::writeEnumsInitialization(QTextStream& s, AbstractMetaEnumList& enums) +{ + if (enums.isEmpty()) + return; + s << INDENT << "// Initialization of enums." << endl; + s << INDENT << "PyObject* enumItem;" << endl << endl; + foreach (const AbstractMetaEnum* cppEnum, enums) { + if (cppEnum->isPrivate()) + continue; + writeEnumInitialization(s, cppEnum); + } +} + void CppGenerator::writeEnumInitialization(QTextStream& s, const AbstractMetaEnum* cppEnum) { const AbstractMetaClass* enclosingClass = getProperEnclosingClassForEnum(cppEnum); @@ -3527,16 +3540,7 @@ void CppGenerator::writeClassRegister(QTextStream& s, const AbstractMetaClass* m foreach (AbstractMetaClass* innerClass, metaClass->innerClasses()) lookForEnumsInClassesNotToBeGenerated(classEnums, innerClass); - if (!classEnums.isEmpty()) { - s << INDENT << "// Initialize enums" << endl; - s << INDENT << "PyObject* enumItem;" << endl << endl; - } - - foreach (const AbstractMetaEnum* cppEnum, classEnums) { - if (cppEnum->isPrivate()) - continue; - writeEnumInitialization(s, cppEnum); - } + writeEnumsInitialization(s, classEnums); if (metaClass->hasSignals()) writeSignalInitialization(s, metaClass); @@ -3971,16 +3975,7 @@ void CppGenerator::finishGeneration() } s << endl; - if (!globalEnums.isEmpty()) { - s << INDENT << "// Initialize enums" << endl; - s << INDENT << "PyObject* enumItem;" << endl << endl; - } - - foreach (const AbstractMetaEnum* cppEnum, globalEnums) { - if (cppEnum->isPrivate()) - continue; - writeEnumInitialization(s, cppEnum); - } + writeEnumsInitialization(s, globalEnums); // Register primitive types on TypeResolver s << INDENT << "// Register primitive types on TypeResolver" << endl; diff --git a/generator/cppgenerator.h b/generator/cppgenerator.h index 5769f8e46..df3a6604f 100644 --- a/generator/cppgenerator.h +++ b/generator/cppgenerator.h @@ -160,6 +160,7 @@ private: void writeRichCompareFunction(QTextStream& s, const AbstractMetaClass* metaClass); void writeToPythonFunction(QTextStream& s, const AbstractMetaClass* metaClass); + void writeEnumsInitialization(QTextStream& s, AbstractMetaEnumList& enums); void writeEnumInitialization(QTextStream& s, const AbstractMetaEnum* metaEnum); void writeSignalInitialization(QTextStream& s, const AbstractMetaClass* metaClass); |