From ccdcb4368098e9dd9f30cd44758bafad4a8f189a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Tue, 8 Nov 2016 10:58:45 +0100 Subject: [PATCH] [tools/generate] Generate implementation of client side requests Like in the factored method case, just for generic requests. --- src/wayland/tools/generator.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/wayland/tools/generator.cpp b/src/wayland/tools/generator.cpp index 691ad95092..663ea8165e 100644 --- a/src/wayland/tools/generator.cpp +++ b/src/wayland/tools/generator.cpp @@ -1262,7 +1262,12 @@ void Generator::generateClientClassRequests(const Interface &interface) void Generator::generateClientCppRequests(const Interface &interface) { const auto requests = interface.requests(); - const QString templateString = QStringLiteral("void %1::%2(%3)\n{\n}\n\n"); + const QString templateString = QStringLiteral( +"void %1::%2(%3)\n" +"{\n" +" Q_ASSERT(isValid());\n" +" %4_%5(d->%6%7);\n" +"}\n\n"); const QString factoryTemplateString = QStringLiteral( "%2 *%1::%3(%4)\n" "{\n" @@ -1281,7 +1286,7 @@ void Generator::generateClientCppRequests(const Interface &interface) continue; } QString arguments; - QString factoredArguments; + QString requestArguments; bool first = true; QString factored; for (const auto &a: r.arguments()) { @@ -1296,18 +1301,20 @@ void Generator::generateClientCppRequests(const Interface &interface) } if (a.type() == Argument::Type::Object) { arguments.append(QStringLiteral("%1 *%2").arg(a.typeAsQt()).arg(toCamelCase(a.name()))); - if (!factored.isEmpty()) { - factoredArguments.append(QStringLiteral(", *%1").arg(toCamelCase(a.name()))); - } + requestArguments.append(QStringLiteral(", *%1").arg(toCamelCase(a.name()))); } else { arguments.append(QStringLiteral("%1 %2").arg(a.typeAsQt()).arg(toCamelCase(a.name()))); - if (!factored.isEmpty()) { - factoredArguments.append(QStringLiteral(", %1").arg(toCamelCase(a.name()))); - } + requestArguments.append(QStringLiteral(", %1").arg(toCamelCase(a.name()))); } } if (factored.isEmpty()) { - *m_stream.localData() << templateString.arg(interface.kwaylandClientName()).arg(toCamelCase(r.name())).arg(arguments); + *m_stream.localData() << templateString.arg(interface.kwaylandClientName()) + .arg(toCamelCase(r.name())) + .arg(arguments) + .arg(interface.name()) + .arg(r.name()) + .arg(interface.kwaylandClientName().toLower()) + .arg(requestArguments); } else { if (!first) { arguments.append(QStringLiteral(", ")); @@ -1320,7 +1327,7 @@ void Generator::generateClientCppRequests(const Interface &interface) .arg(interface.name()) .arg(r.name()) .arg(interface.kwaylandClientName().toLower()) - .arg(factoredArguments); + .arg(requestArguments); } } }