diff options
Diffstat (limited to 'tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp')
-rw-r--r-- | tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp b/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp index 7a22fe90ad..8da9068541 100644 --- a/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp +++ b/tests/auto/dbus/qdbusinterface/qmyserver/qmyserver.cpp @@ -63,9 +63,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(); } void emitSignal(const QString &interface, const QString &name, const QString &arg) @@ -88,7 +96,6 @@ public slots: QVariantList callArgs() { - qDebug() << "callArgs" << MyObject::callArgs.count(); return MyObject::callArgs; } @@ -112,6 +119,10 @@ public slots: return obj.m_complexProp; } + void quit() + { + qApp->quit(); + } private slots: void handleConnection(const QDBusConnection& con) @@ -120,10 +131,15 @@ private slots: m_conn.registerObject("/", &obj, QDBusConnection::ExportAllProperties | QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllInvokables); + if (callPendingReply.type() != QDBusMessage::InvalidMessage) { + QDBusConnection::sessionBus().send(callPendingReply.createReply()); + callPendingReply = QDBusMessage(); + } } private: QDBusConnection m_conn; + QDBusMessage callPendingReply; MyObject obj; }; |