diff --git a/generator/abstractmetabuilder.cpp b/generator/abstractmetabuilder.cpp index 2515f7310..d73b0792b 100644 --- a/generator/abstractmetabuilder.cpp +++ b/generator/abstractmetabuilder.cpp @@ -1137,10 +1137,15 @@ void AbstractMetaBuilder::traverseFunctions(ScopeModelItem scope_item, AbstractM if (meta_function->isDestructor() && !meta_function->isFinal()) meta_class->setForceShellClass(true); - if (!meta_function->isDestructor() - && !meta_function->isInvalid() - && (!meta_function->isConstructor() || !meta_function->isPrivate())) { - + if (meta_function->name().startsWith("__") && meta_function->isStatic()) { + // static operators are not supported by PythonQt + // (this only seems to happen for static operators in namespaces) + delete meta_function; + } + else if (!meta_function->isDestructor() + && !meta_function->isInvalid() + && (!meta_function->isConstructor() || !meta_function->isPrivate())) + { if (meta_class->typeEntry()->designatedInterface() && !meta_function->isPublic() && !meta_function->isPrivate()) { QString warn = QString("non-public function '%1' in interface '%2'") diff --git a/generator/shellgenerator.cpp b/generator/shellgenerator.cpp index 1f8a408b0..9886fe089 100644 --- a/generator/shellgenerator.cpp +++ b/generator/shellgenerator.cpp @@ -316,7 +316,7 @@ bool ShellGenerator::functionHasNonConstReferences(const AbstractMetaFunction* f QTextStream t(&s); t << function->implementingClass()->qualifiedCppName() << "::"; writeFunctionSignature(t, function, 0, "", - Option(ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | OriginalName | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts)); + Option(ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts)); std::cout << s.toLatin1().constData() << std::endl; return true; } diff --git a/generator/shellheadergenerator.cpp b/generator/shellheadergenerator.cpp index 20431a83b..16605273d 100644 --- a/generator/shellheadergenerator.cpp +++ b/generator/shellheadergenerator.cpp @@ -80,7 +80,7 @@ void ShellHeaderGenerator::writeFieldAccessors(QTextStream& s, const AbstractMet addIndirection = true; } writeFunctionSignature(s, getter, 0, QString(), - Option(ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | OriginalName | ShowStatic | UnderscoreSpaces)); + Option(ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | ShowStatic | UnderscoreSpaces)); s << "{ return "; if (addIndirection) { s << "&"; @@ -145,7 +145,7 @@ void ShellHeaderGenerator::write(QTextStream& s, const AbstractMetaClass* meta_c for (AbstractMetaFunction * fun : ctors) { s << " "; writeFunctionSignature(s, fun, 0, "PythonQtShell_", - Option(IncludeDefaultExpression | OriginalName | ShowStatic | UnderscoreSpaces)); + Option(IncludeDefaultExpression | ShowStatic | UnderscoreSpaces)); s << ":" << meta_class->qualifiedCppName() << "("; QString scriptFunctionName = fun->originalName(); AbstractMetaArgumentList args = fun->arguments(); @@ -164,7 +164,7 @@ void ShellHeaderGenerator::write(QTextStream& s, const AbstractMetaClass* meta_c for (AbstractMetaFunction * fun : virtualsForShell) { writeFunctionSignature(s, fun, 0, QString(), - Option(IncludeDefaultExpression | OriginalName | ShowStatic | UnderscoreSpaces)); + Option(IncludeDefaultExpression | ShowStatic | UnderscoreSpaces)); s << " override;" << endl; } s << endl; @@ -212,7 +212,7 @@ void ShellHeaderGenerator::write(QTextStream& s, const AbstractMetaClass* meta_c } s << "inline "; writeFunctionSignature(s, fun, 0, "promoted_", - Option(IncludeDefaultExpression | OriginalName | UnderscoreSpaces | ProtectedEnumAsInts)); + Option(IncludeDefaultExpression | UnderscoreSpaces | ProtectedEnumAsInts)); s << " { "; QString scriptFunctionName = fun->originalName(); AbstractMetaArgumentList args = fun->arguments(); @@ -239,7 +239,7 @@ void ShellHeaderGenerator::write(QTextStream& s, const AbstractMetaClass* meta_c if (fun->isVirtual()) { s << "inline "; writeFunctionSignature(s, fun, 0, "py_q_", - Option(IncludeDefaultExpression | OriginalName | UnderscoreSpaces | ProtectedEnumAsInts)); + Option(IncludeDefaultExpression | UnderscoreSpaces | ProtectedEnumAsInts)); s << " { "; QString scriptFunctionName = fun->originalName(); AbstractMetaArgumentList args = fun->arguments(); @@ -355,7 +355,7 @@ void ShellHeaderGenerator::write(QTextStream& s, const AbstractMetaClass* meta_c s << meta_class->qualifiedCppName() << "* "; writeFunctionSignature(s, fun, 0, "new_", - Option(IncludeDefaultExpression | OriginalName | ShowStatic | AddOwnershipTemplates)); + Option(IncludeDefaultExpression | ShowStatic | AddOwnershipTemplates)); s << ";" << endl; if (fun->arguments().size() == 1 && meta_class->qualifiedCppName() == fun->arguments().at(0)->type()->typeEntry()->qualifiedCppName()) { copyConstructorSeen = true; @@ -387,14 +387,14 @@ void ShellHeaderGenerator::write(QTextStream& s, const AbstractMetaClass* meta_c //functionHasNonConstReferences(function); s << " "; writeFunctionSignature(s, function, 0, QString(), - Option(AddOwnershipTemplates | ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | OriginalName | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts)); + Option(AddOwnershipTemplates | ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts)); s << ";" << endl; } if (function->isVirtual() && meta_class->typeEntry()->shouldCreatePromoter()) { // qualified version that calls the promoter/the qualified version s << " "; writeFunctionSignature(s, function, 0, "py_q_", - Option(AddOwnershipTemplates | ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | OriginalName | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts)); + Option(AddOwnershipTemplates | ConvertReferenceToPtr | FirstArgIsWrappedObject | IncludeDefaultExpression | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts)); s << "{ "; QString scriptFunctionName = function->originalName(); diff --git a/generator/shellimplgenerator.cpp b/generator/shellimplgenerator.cpp index 0bafe520b..1bff7724c 100644 --- a/generator/shellimplgenerator.cpp +++ b/generator/shellimplgenerator.cpp @@ -125,11 +125,11 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla foreach (const AbstractMetaFunction *fun, virtualsForShell) { bool hasReturnValue = !fun->type().isNull(); writeFunctionSignature(s, fun, meta_class, QString(), - Option(OriginalName | ShowStatic | UnderscoreSpaces | UseIndexedName), + Option(ShowStatic | UnderscoreSpaces | UseIndexedName), "PythonQtShell_"); s << endl << "{" << endl; - Option typeOptions = Option(OriginalName | UnderscoreSpaces | SkipName); + Option typeOptions = Option(UnderscoreSpaces | SkipName); AbstractMetaArgumentList args = fun->arguments(); // we can't handle return values which are references right now, do not send those to Python... @@ -239,7 +239,7 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla s << meta_class->qualifiedCppName() << "* "; s << "PythonQtWrapper_" << meta_class->name() << "::"; - writeFunctionSignature(s, ctor, 0, "new_", Option(AddOwnershipTemplates | OriginalName | ShowStatic)); + writeFunctionSignature(s, ctor, 0, "new_", Option(AddOwnershipTemplates | ShowStatic)); s << endl; s << "{ " << endl; s << "return new " << (meta_class->generateShellClass()?shellClassName(meta_class):meta_class->qualifiedCppName()) << "("; @@ -281,7 +281,7 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla continue; } writeFunctionSignature(s, fun, meta_class, QString(), - Option(AddOwnershipTemplates | ConvertReferenceToPtr | FirstArgIsWrappedObject | OriginalName | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts), + Option(AddOwnershipTemplates | ConvertReferenceToPtr | FirstArgIsWrappedObject | ShowStatic | UnderscoreSpaces | ProtectedEnumAsInts), "PythonQtWrapper_"); s << endl << "{" << endl; s << " "; diff --git a/generator/typesystem_core.xml b/generator/typesystem_core.xml index 9c5eb244c..d94d7819d 100644 --- a/generator/typesystem_core.xml +++ b/generator/typesystem_core.xml @@ -1507,9 +1507,7 @@ public: - - - + diff --git a/generator/typesystem_gui.xml b/generator/typesystem_gui.xml index 377520eb8..e77d69816 100644 --- a/generator/typesystem_gui.xml +++ b/generator/typesystem_gui.xml @@ -797,9 +797,6 @@ - - - @@ -917,10 +914,6 @@ - - - - @@ -1562,8 +1555,6 @@ PyObject* constScanLine(QImage* image, int line) { - - @@ -1775,8 +1766,6 @@ PyObject* constScanLine(QImage* image, int line) { - - @@ -1903,9 +1892,6 @@ PyObject* constScanLine(QImage* image, int line) { - - - @@ -2197,9 +2183,6 @@ PyObject* constScanLine(QImage* image, int line) { - - -