diff options
Diffstat (limited to 'src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp')
-rw-r--r-- | src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp b/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp index 5348d18ba3..92b9dea909 100644 --- a/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp +++ b/src/dbus/doc/snippets/code/src_qdbus_qdbusabstractinterface.cpp @@ -47,12 +47,22 @@ else void Abstract_DBus_Interface::asyncCall() { //! [1] -QString value = retrieveValue(); -QDBusPendingCall pcall = interface->asyncCall("Process"_L1, value); +QDBusPendingCall pcall = interface->asyncCall("GetAPIVersion"_L1); +auto watcher = new QDBusPendingCallWatcher(pcall, this); -QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall); +QObject::connect(watcher, &QDBusPendingCallWatcher::finished, this, + [&](QDBusPendingCallWatcher *w) { + QString value = retrieveValue(); + QDBusPendingReply<int> reply(*w); + QDBusPendingCall pcall; + if (reply.argumentAt<0>() >= 14) + pcall = interface->asyncCall("ProcessWorkUnicode"_L1, value); + else + pcall = interface->asyncCall("ProcessWork"_L1, "UTF-8"_L1, value.toUtf8()); -QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), - this, SLOT(callFinishedSlot(QDBusPendingCallWatcher*))); + w = new QDBusPendingCallWatcher(pcall); + QObject::connect(w, &QDBusPendingCallWatcher::finished, this, + &Abstract_DBus_Interface::callFinishedSlot); +}); //! [1] } |