diff options
-rw-r--r-- | cppgenerator.cpp | 9 | ||||
-rw-r--r-- | tests/libsample/samplenamespace.h | 4 | ||||
-rwxr-xr-x | tests/samplebinding/namespace_test.py | 1 | ||||
-rw-r--r-- | tests/samplebinding/typesystem_sample.xml | 1 |
4 files changed, 9 insertions, 6 deletions
diff --git a/cppgenerator.cpp b/cppgenerator.cpp index 28809330a..4214c1571 100644 --- a/cppgenerator.cpp +++ b/cppgenerator.cpp @@ -2318,13 +2318,10 @@ void CppGenerator::writeEnumInitialization(QTextStream& s, const AbstractMetaEnu { QString cpythonName = cpythonEnumName(cppEnum); QString addFunction; - if (cppEnum->enclosingClass()) { - addFunction = QString("PyDict_SetItemString(Sbk") - + cppEnum->enclosingClass()->name() - + "_Type.super.ht_type.tp_dict,"; - } else { + if (cppEnum->enclosingClass()) + addFunction = "PyDict_SetItemString(" + cpythonTypeName(cppEnum->enclosingClass()) + ".super.ht_type.tp_dict,"; + else addFunction = "PyModule_AddObject(module,"; - } s << INDENT << "// init enum class: " << cppEnum->name() << endl; s << INDENT << cpythonTypeNameExt(cppEnum->typeEntry()) << " = &" << cpythonTypeName(cppEnum->typeEntry()) << ';' << endl; diff --git a/tests/libsample/samplenamespace.h b/tests/libsample/samplenamespace.h index 2cc371e34..b3b3a822d 100644 --- a/tests/libsample/samplenamespace.h +++ b/tests/libsample/samplenamespace.h @@ -76,6 +76,10 @@ public: public: class OkThisIsRecursiveEnough { + public: + enum NiceEnum { + NiceValue1, NiceValue2 + }; }; }; }; diff --git a/tests/samplebinding/namespace_test.py b/tests/samplebinding/namespace_test.py index 942b65560..003d81b11 100755 --- a/tests/samplebinding/namespace_test.py +++ b/tests/samplebinding/namespace_test.py @@ -34,6 +34,7 @@ class TestClassesUnderNamespace(unittest.TestCase): c1 = SampleNamespace.SomeClass() c2 = SampleNamespace.SomeClass.SomeInnerClass() c3 = SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough() + e3 = SampleNamespace.SomeClass.SomeInnerClass.OkThisIsRecursiveEnough.NiceEnum() if __name__ == '__main__': unittest.main() diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml index bb0d98e1f..85fc3e3d3 100644 --- a/tests/samplebinding/typesystem_sample.xml +++ b/tests/samplebinding/typesystem_sample.xml @@ -100,6 +100,7 @@ <value-type name="SampleNamespace::SomeClass" /> <value-type name="SampleNamespace::SomeClass::SomeInnerClass" /> <value-type name="SampleNamespace::SomeClass::SomeInnerClass::OkThisIsRecursiveEnough" /> + <enum-type name="SampleNamespace::SomeClass::SomeInnerClass::OkThisIsRecursiveEnough::NiceEnum" /> <object-type name="Abstract"> <modify-function signature="id()" rename="id_"/> |