void ShellHeaderGenerator::writeFieldAccessors(QTextStream &s, const AbstractMetaField *field) { const AbstractMetaFunction *setter = field->setter(); const AbstractMetaFunction *getter = field->getter(); // static fields are not supported (yet?) if (setter->isStatic()) return; // Uuid data4 did not work (TODO: move to typesystem...( if (field->enclosingClass()->name()=="QUuid" && setter->name()=="data4") return; if (field->enclosingClass()->name()=="QIPv6Address") return; bool isInventorField = field->type()->name().startsWith("So"); if (!isInventorField && !field->type()->isConstant()) { writeFunctionSignature(s, setter, 0, QString(), Option(ConvertReferenceToPtr | FirstArgIsWrappedObject| IncludeDefaultExpression | ShowStatic | UnderscoreSpaces)); s << "{ theWrappedObject->" << field->name() << " = " << setter->arguments()[0]->argumentName() << "; }\n"; } bool addIndirection = false; if (isInventorField && getter->type()->indirections() == 0) { // make it a field ptr: getter->type()->setIndirections(1); addIndirection = true; } writeFunctionSignature(s, getter, 0, QString(), Option(ConvertReferenceToPtr | FirstArgIsWrappedObject| IncludeDefaultExpression | OriginalName | ShowStatic | UnderscoreSpaces)); s << "{ return "; if (addIndirection) { s << "&"; } s << "theWrappedObject->" << field->name() << "; }\n"; }
void CppHeaderGenerator::writeSignalWrapper(QTextStream &s, const AbstractMetaFunction *signal) { s << " "; writeFunctionSignature(s, signal, 0, signalWrapperPrefix(), Option(NormalizeAndFixTypeSignature | OriginalName | OriginalTypeDescription | IncludeDefaultExpression)); s << ";" << endl; }