From 5366b65bcedbbe2aedda5d3dec28d7d119010b00 2010-03-07 20:25:53 From: florianlink Date: 2010-03-07 20:25:53 Subject: [PATCH] changed special generated method prefix to py_, added py_toString() generation git-svn-id: svn://svn.code.sf.net/p/pythonqt/code/trunk@152 ea8d5007-eb21-0410-b261-ccb3ea6e24a9 --- diff --git a/generator/abstractmetabuilder.cpp b/generator/abstractmetabuilder.cpp index 1a91f1b..162f4a4 100644 --- a/generator/abstractmetabuilder.cpp +++ b/generator/abstractmetabuilder.cpp @@ -234,7 +234,7 @@ void AbstractMetaBuilder::registerToStringCapability(FunctionModelItem function_ if (arguments.at(0)->type().toString() == "QDebug"){ ArgumentModelItem arg = arguments.at(1); if (AbstractMetaClass *cls = argumentToClass(arg)) { - if (arg->type().indirections() < 2) { + if (arg->type().indirections() < 2 && cls->name()!="QObject") { cls->setToStringCapability(function_item); } } diff --git a/generator/metaqtscript.cpp b/generator/metaqtscript.cpp index 0f8502f..6d9b6a6 100644 --- a/generator/metaqtscript.cpp +++ b/generator/metaqtscript.cpp @@ -44,5 +44,5 @@ bool MetaQtScriptClass::hasDefaultToStringFunction() const { - return 0 < queryFunctionsByName("toString").size(); + return AbstractMetaClass::hasDefaultToStringFunction(); } diff --git a/generator/shellgenerator.cpp b/generator/shellgenerator.cpp index eba1054..5ed5eda 100644 --- a/generator/shellgenerator.cpp +++ b/generator/shellgenerator.cpp @@ -223,9 +223,9 @@ void ShellGenerator::writeFunctionSignature(QTextStream &s, } if (meta_function->attributes() & AbstractMetaAttributes::SetterFunction) - s << "setter_"; + s << "py_set_"; else if (meta_function->attributes() & AbstractMetaAttributes::GetterFunction) - s << "getter_"; + s << "py_get_"; s << name_prefix << function_name; diff --git a/generator/shellheadergenerator.cpp b/generator/shellheadergenerator.cpp index fd31df3..ac0fa05 100644 --- a/generator/shellheadergenerator.cpp +++ b/generator/shellheadergenerator.cpp @@ -57,6 +57,9 @@ void ShellHeaderGenerator::writeFieldAccessors(QTextStream &s, const AbstractMet const AbstractMetaFunction *setter = field->setter(); const AbstractMetaFunction *getter = field->getter(); + // Uuid data4 did not work + if (field->enclosingClass()->name()=="QUuid" && setter->name()=="data4") return; + if (!field->type()->isConstant()) { writeFunctionSignature(s, setter, 0, QString(), Option(ConvertReferenceToPtr | FirstArgIsWrappedObject| IncludeDefaultExpression | ShowStatic | UnderscoreSpaces)); @@ -257,9 +260,9 @@ void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c s << endl; } if (meta_class->name()=="QTreeWidgetItem") { - s << "bool hasOwner(QTreeWidgetItem* theWrappedObject) { return theWrappedObject->treeWidget()!=NULL || theWrappedObject->parent()!=NULL; }" << endl; + s << "bool py_hasOwner(QTreeWidgetItem* theWrappedObject) { return theWrappedObject->treeWidget()!=NULL || theWrappedObject->parent()!=NULL; }" << endl; } else if (meta_class->name()=="QGraphicsItem") { - s << "bool hasOwner(QGraphicsItem* theWrappedObject) { return theWrappedObject->scene()!=NULL || theWrappedObject->parentItem()!=NULL; }" << endl; + s << "bool py_hasOwner(QGraphicsItem* theWrappedObject) { return theWrappedObject->scene()!=NULL || theWrappedObject->parentItem()!=NULL; }" << endl; } AbstractMetaFunctionList functions = getFunctionsToWrap(meta_class); @@ -272,8 +275,8 @@ void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c s << ";" << endl; } } - if (!meta_class->hasDefaultToStringFunction() && meta_class->hasToStringCapability()) { - s << " QString toString(" << meta_class->qualifiedCppName() << "*);" << endl; + if (meta_class->hasDefaultToStringFunction() || meta_class->hasToStringCapability()) { + s << " QString py_toString(" << meta_class->qualifiedCppName() << "*);" << endl; } // Field accessors diff --git a/generator/shellimplgenerator.cpp b/generator/shellimplgenerator.cpp index 47bbbf7..fe15da3 100644 --- a/generator/shellimplgenerator.cpp +++ b/generator/shellimplgenerator.cpp @@ -284,11 +284,13 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla s << "}" << endl << endl; } - if (!meta_class->hasDefaultToStringFunction() && meta_class->hasToStringCapability()) { + if (meta_class->hasDefaultToStringFunction()) { + s << "QString PythonQtWrapper_" << meta_class->name() << "::py_toString(" << meta_class->qualifiedCppName() << "* obj) { return obj->toString(); }" << endl; + } else if (meta_class->hasToStringCapability()) { FunctionModelItem fun = meta_class->hasToStringCapability(); int indirections = fun->arguments().at(1)->type().indirections(); QString deref = QLatin1String(indirections == 0 ? "*" : ""); - s << "QString PythonQtWrapper_" << meta_class->name() << "::toString(" << meta_class->qualifiedCppName() << "* obj) {" << endl; + s << "QString PythonQtWrapper_" << meta_class->name() << "::py_toString(" << meta_class->qualifiedCppName() << "* obj) {" << endl; s << " QString result;" << endl; s << " QDebug d(&result);" << endl; s << " d << " << deref << "obj;" << endl;