summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-17 22:14:30 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-17 22:14:30 -0500
commit6d564efb42ba51ff8e3d6512aa8edb964b6f2306 (patch)
treea4dfa9a35410fb2dd58d29326c34573c657fe3ed
parent796df5ebfc74d263bb3ed055c64de9627d47c430 (diff)
downloaddbus-1-tqt-6d564efb42ba51ff8e3d6512aa8edb964b6f2306.tar.gz
dbus-1-tqt-6d564efb42ba51ff8e3d6512aa8edb964b6f2306.zip
Add ability to obtain error messages from async calls
-rw-r--r--tools/dbusxml2qt3/classgen.cpp3
-rw-r--r--tools/dbusxml2qt3/methodgen.cpp6
2 files changed, 8 insertions, 1 deletions
diff --git a/tools/dbusxml2qt3/classgen.cpp b/tools/dbusxml2qt3/classgen.cpp
index 040a969..12051c0 100644
--- a/tools/dbusxml2qt3/classgen.cpp
+++ b/tools/dbusxml2qt3/classgen.cpp
@@ -243,6 +243,8 @@ static void writeHeaderIncludes(const Class& classData, Class::Role role,
break;
}
+ includes["tqdbus"].insertString("<tqdbuserror.h>");
+
if (!includes["TQt"].isEmpty())
writeIncludes("TQt", includes["TQt"].keys(), stream);
@@ -663,6 +665,7 @@ static void writeSignalDeclarations(const Class& classData, Class::Role role,
case Class::Proxy:
stream << "signals:" << endl;
+ stream << " void AsyncErrorResponseDetected(int asyncCallId, const TQT_DBusError error);" << endl << endl;
prefix = " void ";
break;
diff --git a/tools/dbusxml2qt3/methodgen.cpp b/tools/dbusxml2qt3/methodgen.cpp
index 7e0b633..cf7929c 100644
--- a/tools/dbusxml2qt3/methodgen.cpp
+++ b/tools/dbusxml2qt3/methodgen.cpp
@@ -1576,7 +1576,11 @@ void MethodGenerator::writeProxyAsyncReplyHandler(const Class& classData,
// FIXME tricking writeVariables and writeSignalEmit into writing
// the reply emit code by manipulating arguments and name
- stream << " int _asyncCallId = asyncCallId;" << endl;
+ stream << " int _asyncCallId = asyncCallId;" << endl << endl;
+
+ stream << " if (message.type() == TQT_DBusMessage::ErrorMessage) {" << endl;
+ stream << " emit AsyncErrorResponseDetected(_asyncCallId, message.error());" << endl;
+ stream << " }" << endl << endl;
Method signal = *it;
signal.arguments.pop_front();