summaryrefslogtreecommitdiffstats
path: root/tests/auto/dbus/qdbusabstractadaptor/qmyserver/qmyserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/dbus/qdbusabstractadaptor/qmyserver/qmyserver.cpp')
-rw-r--r--tests/auto/dbus/qdbusabstractadaptor/qmyserver/qmyserver.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/tests/auto/dbus/qdbusabstractadaptor/qmyserver/qmyserver.cpp b/tests/auto/dbus/qdbusabstractadaptor/qmyserver/qmyserver.cpp
index c680d93dab..2f39857d2d 100644
--- a/tests/auto/dbus/qdbusabstractadaptor/qmyserver/qmyserver.cpp
+++ b/tests/auto/dbus/qdbusabstractadaptor/qmyserver/qmyserver.cpp
@@ -72,9 +72,17 @@ public slots:
return QDBusServer::address();
}
- bool isConnected() const
+ void waitForConnected()
{
- return m_conn.isConnected();
+ if (callPendingReply.type() != QDBusMessage::InvalidMessage) {
+ sendErrorReply(QDBusError::NotSupported, "One call already pending!");
+ return;
+ }
+ if (m_conn.isConnected())
+ return;
+ // not connected, we'll reply later
+ setDelayedReply(true);
+ callPendingReply = message();
}
Q_NOREPLY void requestSync(const QString &seq)
@@ -133,6 +141,11 @@ public slots:
valueSpy.clear();
}
+ void quit()
+ {
+ qApp->quit();
+ }
+
signals:
Q_SCRIPTABLE void syncReceived(const QString &sequence);
@@ -141,10 +154,16 @@ private slots:
{
m_conn = con;
con.registerObject(objectPath, this, QDBusConnection::ExportScriptableSignals);
+
+ if (callPendingReply.type() != QDBusMessage::InvalidMessage) {
+ QDBusConnection::sessionBus().send(callPendingReply.createReply());
+ callPendingReply = QDBusMessage();
+ }
}
private:
QDBusConnection m_conn;
+ QDBusMessage callPendingReply;
MyObject* obj;
};