[Kde-bindings] KDE/kdebindings/generator/generators/smoke

Arno Rehn kde at arnorehn.de
Fri Apr 2 22:44:38 UTC 2010


SVN commit 1110393 by arnorehn:

Correctly generate xenum_ functions. Fixes a bug reported
by Robert Riemann. Thanks!

CCMAIL: robert.riemann at physik.hu-berlin.de
CCMAIL: kde-bindings at kde.org



 M  +10 -3     writeSmokeDataFile.cpp  


--- trunk/KDE/kdebindings/generator/generators/smoke/writeSmokeDataFile.cpp #1110392:1110393
@@ -216,14 +216,21 @@
     for (QHash<QString, Enum>::const_iterator it = enums.constBegin(); it != enums.constEnd(); it++) {
         if (!it.value().isValid())
             continue;
-        if (it.value().parent() && !externalClasses.contains(it.value().parent()) && it.value().access() != Access_private) {
-            QString smokeClassName = it.value().parent()->toString();
+        
+        QString smokeClassName;
+        if (it.value().parent()) {
+            smokeClassName = it.value().parent()->toString();
+        } else {
+            smokeClassName = it.value().nameSpace();
+        }
+        
+        if (!smokeClassName.isEmpty() && includedClasses.contains(smokeClassName) && it.value().access() != Access_private) {
             if (enumClassesHandled.contains(smokeClassName) || Options::voidpTypes.contains(smokeClassName))
                 continue;
             enumClassesHandled << smokeClassName;
             smokeClassName.replace("::", "__");
             out << "void xenum_" << smokeClassName << "(Smoke::EnumOperation, Smoke::Index, void*&, long&);\n";
-        } else if (!it.value().parent() && it.value().access() != Access_private) {
+        } else if (smokeClassName.isEmpty() && it.value().access() != Access_private) {
             if (enumClassesHandled.contains("QGlobalSpace"))
                 continue;
             out << "void xenum_QGlobalSpace(Smoke::EnumOperation, Smoke::Index, void*&, long&);\n";



More information about the Kde-bindings mailing list