@@ -234,7 +234,7 void AbstractMetaBuilder::registerToStringCapability(FunctionModelItem function_ | |||||
234 | if (arguments.at(0)->type().toString() == "QDebug"){ |
|
234 | if (arguments.at(0)->type().toString() == "QDebug"){ | |
235 | ArgumentModelItem arg = arguments.at(1); |
|
235 | ArgumentModelItem arg = arguments.at(1); | |
236 | if (AbstractMetaClass *cls = argumentToClass(arg)) { |
|
236 | if (AbstractMetaClass *cls = argumentToClass(arg)) { | |
237 | if (arg->type().indirections() < 2) { |
|
237 | if (arg->type().indirections() < 2 && cls->name()!="QObject") { | |
238 | cls->setToStringCapability(function_item); |
|
238 | cls->setToStringCapability(function_item); | |
239 | } |
|
239 | } | |
240 | } |
|
240 | } |
@@ -44,5 +44,5 | |||||
44 |
|
44 | |||
45 | bool MetaQtScriptClass::hasDefaultToStringFunction() const |
|
45 | bool MetaQtScriptClass::hasDefaultToStringFunction() const | |
46 | { |
|
46 | { | |
47 | return 0 < queryFunctionsByName("toString").size(); |
|
47 | return AbstractMetaClass::hasDefaultToStringFunction(); | |
48 | } |
|
48 | } |
@@ -223,9 +223,9 void ShellGenerator::writeFunctionSignature(QTextStream &s, | |||||
223 | } |
|
223 | } | |
224 |
|
224 | |||
225 | if (meta_function->attributes() & AbstractMetaAttributes::SetterFunction) |
|
225 | if (meta_function->attributes() & AbstractMetaAttributes::SetterFunction) | |
226 |
s << "set |
|
226 | s << "py_set_"; | |
227 | else if (meta_function->attributes() & AbstractMetaAttributes::GetterFunction) |
|
227 | else if (meta_function->attributes() & AbstractMetaAttributes::GetterFunction) | |
228 |
s << "get |
|
228 | s << "py_get_"; | |
229 |
|
229 | |||
230 | s << name_prefix << function_name; |
|
230 | s << name_prefix << function_name; | |
231 |
|
231 |
@@ -57,6 +57,9 void ShellHeaderGenerator::writeFieldAccessors(QTextStream &s, const AbstractMet | |||||
57 | const AbstractMetaFunction *setter = field->setter(); |
|
57 | const AbstractMetaFunction *setter = field->setter(); | |
58 | const AbstractMetaFunction *getter = field->getter(); |
|
58 | const AbstractMetaFunction *getter = field->getter(); | |
59 |
|
59 | |||
|
60 | // Uuid data4 did not work | |||
|
61 | if (field->enclosingClass()->name()=="QUuid" && setter->name()=="data4") return; | |||
|
62 | ||||
60 | if (!field->type()->isConstant()) { |
|
63 | if (!field->type()->isConstant()) { | |
61 | writeFunctionSignature(s, setter, 0, QString(), |
|
64 | writeFunctionSignature(s, setter, 0, QString(), | |
62 | Option(ConvertReferenceToPtr | FirstArgIsWrappedObject| IncludeDefaultExpression | ShowStatic | UnderscoreSpaces)); |
|
65 | Option(ConvertReferenceToPtr | FirstArgIsWrappedObject| IncludeDefaultExpression | ShowStatic | UnderscoreSpaces)); | |
@@ -257,9 +260,9 void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c | |||||
257 | s << endl; |
|
260 | s << endl; | |
258 | } |
|
261 | } | |
259 | if (meta_class->name()=="QTreeWidgetItem") { |
|
262 | if (meta_class->name()=="QTreeWidgetItem") { | |
260 | s << "bool hasOwner(QTreeWidgetItem* theWrappedObject) { return theWrappedObject->treeWidget()!=NULL || theWrappedObject->parent()!=NULL; }" << endl; |
|
263 | s << "bool py_hasOwner(QTreeWidgetItem* theWrappedObject) { return theWrappedObject->treeWidget()!=NULL || theWrappedObject->parent()!=NULL; }" << endl; | |
261 | } else if (meta_class->name()=="QGraphicsItem") { |
|
264 | } else if (meta_class->name()=="QGraphicsItem") { | |
262 | s << "bool hasOwner(QGraphicsItem* theWrappedObject) { return theWrappedObject->scene()!=NULL || theWrappedObject->parentItem()!=NULL; }" << endl; |
|
265 | s << "bool py_hasOwner(QGraphicsItem* theWrappedObject) { return theWrappedObject->scene()!=NULL || theWrappedObject->parentItem()!=NULL; }" << endl; | |
263 | } |
|
266 | } | |
264 |
|
267 | |||
265 | AbstractMetaFunctionList functions = getFunctionsToWrap(meta_class); |
|
268 | AbstractMetaFunctionList functions = getFunctionsToWrap(meta_class); | |
@@ -272,8 +275,8 void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c | |||||
272 | s << ";" << endl; |
|
275 | s << ";" << endl; | |
273 | } |
|
276 | } | |
274 | } |
|
277 | } | |
275 |
if ( |
|
278 | if (meta_class->hasDefaultToStringFunction() || meta_class->hasToStringCapability()) { | |
276 | s << " QString toString(" << meta_class->qualifiedCppName() << "*);" << endl; |
|
279 | s << " QString py_toString(" << meta_class->qualifiedCppName() << "*);" << endl; | |
277 | } |
|
280 | } | |
278 |
|
281 | |||
279 | // Field accessors |
|
282 | // Field accessors |
@@ -284,11 +284,13 void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla | |||||
284 | s << "}" << endl << endl; |
|
284 | s << "}" << endl << endl; | |
285 | } |
|
285 | } | |
286 |
|
286 | |||
287 |
if ( |
|
287 | if (meta_class->hasDefaultToStringFunction()) { | |
|
288 | s << "QString PythonQtWrapper_" << meta_class->name() << "::py_toString(" << meta_class->qualifiedCppName() << "* obj) { return obj->toString(); }" << endl; | |||
|
289 | } else if (meta_class->hasToStringCapability()) { | |||
288 | FunctionModelItem fun = meta_class->hasToStringCapability(); |
|
290 | FunctionModelItem fun = meta_class->hasToStringCapability(); | |
289 | int indirections = fun->arguments().at(1)->type().indirections(); |
|
291 | int indirections = fun->arguments().at(1)->type().indirections(); | |
290 | QString deref = QLatin1String(indirections == 0 ? "*" : ""); |
|
292 | QString deref = QLatin1String(indirections == 0 ? "*" : ""); | |
291 | s << "QString PythonQtWrapper_" << meta_class->name() << "::toString(" << meta_class->qualifiedCppName() << "* obj) {" << endl; |
|
293 | s << "QString PythonQtWrapper_" << meta_class->name() << "::py_toString(" << meta_class->qualifiedCppName() << "* obj) {" << endl; | |
292 | s << " QString result;" << endl; |
|
294 | s << " QString result;" << endl; | |
293 | s << " QDebug d(&result);" << endl; |
|
295 | s << " QDebug d(&result);" << endl; | |
294 | s << " d << " << deref << "obj;" << endl; |
|
296 | s << " d << " << deref << "obj;" << endl; |
General Comments 0
You need to be logged in to leave comments.
Login now