diff --git a/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp b/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp
index 0bfaf6eb1eb..873c133232d 100644
--- a/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp
+++ b/src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp
@@ -606,13 +606,15 @@ static void writeProxy(const QString &filename, const QDBusIntrospection::Interf
continue;
}
- hs << " inline "
- << (isDeprecated ? "Q_DECL_DEPRECATED " : "");
+ if (isDeprecated)
+ hs << " Q_DECL_DEPRECATED ";
+ else
+ hs << " ";
if (isNoReply) {
- hs << "Q_NOREPLY void ";
+ hs << "Q_NOREPLY inline void ";
} else {
- hs << "QDBusPendingReply<";
+ hs << "inline QDBusPendingReply<";
for (qsizetype i = 0; i < method.outputArgs.size(); ++i)
hs << (i > 0 ? ", " : "")
<< templateArg(qtTypeName(method.outputArgs.at(i).name, method.outputArgs.at(i).type,
@@ -648,7 +650,7 @@ static void writeProxy(const QString &filename, const QDBusIntrospection::Interf
if (method.outputArgs.size() > 1) {
// generate the old-form QDBusReply methods with multiple incoming parameters
- hs << " inline " << (isDeprecated ? "Q_DECL_DEPRECATED " : "") << "QDBusReply<"
+ hs << (isDeprecated ? " Q_DECL_DEPRECATED " : " ") << "inline QDBusReply<"
<< templateArg(qtTypeName(method.outputArgs.first().name, method.outputArgs.first().type,
method.annotations, 0, "Out"))
<< "> ";
diff --git a/tests/auto/tools/qdbusxml2cpp/tst_qdbusxml2cpp.cpp b/tests/auto/tools/qdbusxml2cpp/tst_qdbusxml2cpp.cpp
index f75790da6e9..1dde91311a6 100644
--- a/tests/auto/tools/qdbusxml2cpp/tst_qdbusxml2cpp.cpp
+++ b/tests/auto/tools/qdbusxml2cpp/tst_qdbusxml2cpp.cpp
@@ -240,6 +240,46 @@ void tst_qdbusxml2cpp::process_data()
<< QRegularExpression("Q_SLOTS:.*QString Method\\(const QString &\\w*, const QString &\\w*, QString &",
QRegularExpression::DotMatchesEverythingOption);
+ QTest::newRow("method-deprecated-0out")
+ << ""
+ ""
+ ""
+ << QRegularExpression("Q_SLOTS:.*Q_DECL_DEPRECATED inline QDBusPendingReply<> Method\\(\\)",
+ QRegularExpression::DotMatchesEverythingOption)
+ << QRegularExpression("Q_SLOTS:.*void Method\\(\\)",
+ QRegularExpression::DotMatchesEverythingOption);
+
+ QTest::newRow("method-deprecated-2out")
+ << ""
+ ""
+ ""
+ ""
+ ""
+ << QRegularExpression("Q_SLOTS:.*Q_DECL_DEPRECATED inline QDBusPendingReply Method\\(\\)"
+ ".*Q_DECL_DEPRECATED inline QDBusReply Method\\(QString &\\w*\\)",
+ QRegularExpression::DotMatchesEverythingOption)
+ << QRegularExpression("Q_SLOTS:.*QString Method\\(QString &",
+ QRegularExpression::DotMatchesEverythingOption);
+
+ QTest::newRow("method-noreply")
+ << ""
+ ""
+ ""
+ << QRegularExpression("Q_SLOTS:.*Q_NOREPLY inline void Method\\(\\).*\\bQDBus::NoBlock\\b",
+ QRegularExpression::DotMatchesEverythingOption)
+ << QRegularExpression("Q_SLOTS:.*Q_NOREPLY void Method\\(",
+ QRegularExpression::DotMatchesEverythingOption);
+
+ QTest::newRow("method-deprecated-noreply")
+ << ""
+ ""
+ ""
+ ""
+ << QRegularExpression("Q_SLOTS:.*Q_DECL_DEPRECATED Q_NOREPLY inline void Method\\(\\).*\\bQDBus::NoBlock\\b",
+ QRegularExpression::DotMatchesEverythingOption)
+ << QRegularExpression("Q_SLOTS:.*Q_NOREPLY void Method\\(",
+ QRegularExpression::DotMatchesEverythingOption);
+
// -- signals --
for (int i = 0; i < basicTypeCount; ++i) {
QRegularExpression rx(QString("Q_SIGNALS:.*\\bvoid Signal\\((const )?%1\\b")
@@ -261,6 +301,15 @@ void tst_qdbusxml2cpp::process_data()
"
)"
<< rx << rx;
+
+ QTest::newRow("signal-deprecated")
+ << R"(
+
+ )"
+ << QRegularExpression(R"(Q_SIGNALS:.*\bQ_DECL_DEPRECATED void Signal\(\))",
+ QRegularExpression::DotMatchesEverythingOption)
+ << QRegularExpression(R"(Q_SIGNALS:.*\bvoid Signal\(\))",
+ QRegularExpression::DotMatchesEverythingOption);
}
void tst_qdbusxml2cpp::process()