diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-07-05 11:59:33 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:15:27 -0300 |
commit | 219ee31ce4cf9c45b9a53cd267df3e8e7b53b0f2 (patch) | |
tree | 5619e8d5e5f66dc8b5e234b1589e0ba35e556bdd /generator | |
parent | 878c6c81a7469335e70856f77142473bb358051d (diff) |
Now the generated code stores the enum cpp name on the PyThon type.
This is necessary for finding out the enum name during the signal match
function.
Fixed the signal register function for signals with default values.
Fixes bug #903.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'generator')
-rw-r--r-- | generator/cppgenerator.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index 25c3db030..9e542b4e9 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -3233,7 +3233,8 @@ void CppGenerator::writeEnumInitialization(QTextStream& s, const AbstractMetaEnu if (!cppEnum->isAnonymous()) { - s << INDENT << "PyTypeObject* " << cpythonName << " = Shiboken::Enum::newType(\"" << getClassTargetFullName(cppEnum) << "\");" << endl; + s << INDENT << "PyTypeObject* " << cpythonName << " = Shiboken::Enum::newTypeWithName(\"" << getClassTargetFullName(cppEnum) << "\", \"" + << (cppEnum->enclosingClass() ? cppEnum->enclosingClass()->qualifiedCppName() + "::" : "") << cppEnum->name() << "\");" << endl; if (cppEnum->typeEntry()->flags()) s << INDENT << cpythonName << "->tp_as_number = &" << cpythonName << "_as_number;" << endl; @@ -3332,9 +3333,6 @@ void CppGenerator::writeSignalInitialization(QTextStream& s, const AbstractMetaC if (cppSignal->declaringClass() == metaClass) { if (cppSignal->arguments().count()) { for (int i = 0; i < cppSignal->arguments().count(); ++i) { - if (i > 0) - signature += ", "; - AbstractMetaArgument* arg = cppSignal->arguments().at(i); AbstractMetaType* type = arg->type(); @@ -3370,7 +3368,8 @@ void CppGenerator::writeSignalInitialization(QTextStream& s, const AbstractMetaC << originalType << " >" << "(\"" << skipNamespace(signalTypeName) << "\");" << endl; } - + if (i>0) + signature += ", "; signature += SBK_NORMALIZED_TYPE(signalTypeName.toAscii()); } } else { @@ -3390,7 +3389,7 @@ void CppGenerator::writeSignalInitialization(QTextStream& s, const AbstractMetaC foreach(QString funcName, signatures.keys()) { s << INDENT << "signal_item = PySide::Signal::newObject(\"" << funcName <<"\""; foreach(QString signature, signatures[funcName]) - s << ", \"" + signature << "\""; + s << ", \"" << signature << "\""; s << ", NULL);" << endl; s << INDENT << "PySide::Signal::addSignalToWrapper(&" + cpythonTypeName(metaClass) + ", \""; s << funcName << "\", signal_item);" << endl; |