diff options
author | Martin Kampas <martin.kampas@jolla.com> | 2018-10-26 09:49:53 +0200 |
---|---|---|
committer | Svetlana Abramenkova <sabramenkova@luxoft.com> | 2020-02-18 09:03:55 +0000 |
commit | b7311851cc2a5f57cc980f277ed8e94f9b576d22 (patch) | |
tree | 7745d9992310baafbe71224c5d20b26557b20168 | |
parent | 7525cdc6eacc0fc647b5ddbbf35f3f774ae99742 (diff) |
Fix BlockingConnect without UpdateDocumentsOnConnect
Without UpdateDocumentsOnConnect it didn't really block
Change-Id: I6d8ff421fc0f510bee0d0a50f750543a1d422df1
Reviewed-by: Svetlana Abramenkova <sabramenkova@luxoft.com>
-rw-r--r-- | src/bench/hostwidget.cpp | 2 | ||||
-rw-r--r-- | src/remotepublisher.cpp | 8 | ||||
-rw-r--r-- | src/remotepublisher.h | 1 | ||||
-rw-r--r-- | src/remotereceiver.cpp | 11 | ||||
-rw-r--r-- | src/remotereceiver.h | 1 |
5 files changed, 23 insertions, 0 deletions
diff --git a/src/bench/hostwidget.cpp b/src/bench/hostwidget.cpp index b1affa5..7ea6781 100644 --- a/src/bench/hostwidget.cpp +++ b/src/bench/hostwidget.cpp @@ -294,6 +294,8 @@ void HostWidget::onConnected() disconnect(m_connectDisconnectAction, &QAction::triggered, 0, 0); connect(m_connectDisconnectAction, &QAction::triggered, &m_publisher, &RemotePublisher::disconnectFromServer); + + m_publisher.initComplete(); } void HostWidget::onDisconnected() diff --git a/src/remotepublisher.cpp b/src/remotepublisher.cpp index 577dfbc..2e003b5 100644 --- a/src/remotepublisher.cpp +++ b/src/remotepublisher.cpp @@ -230,6 +230,14 @@ QUuid RemotePublisher::setRotation(int rotation) } /*! + Sends \e initComplete via IPC + */ +QUuid RemotePublisher::initComplete() +{ + return m_ipc->send("initComplete()", QByteArray()); +} + +/*! Sends the \e sendWholeDocument with \a document as argument via IPC */ QUuid RemotePublisher::sendWholeDocument(const LiveDocument& document) diff --git a/src/remotepublisher.h b/src/remotepublisher.h index f80606a..a9e5f41 100644 --- a/src/remotepublisher.h +++ b/src/remotepublisher.h @@ -76,6 +76,7 @@ public Q_SLOTS: QUuid setXOffset(int offset); QUuid setYOffset(int offset); QUuid setRotation(int rotation); + QUuid initComplete(); private Q_SLOTS: void handleCall(const QString &method, const QByteArray &content); diff --git a/src/remotereceiver.cpp b/src/remotereceiver.cpp index 5bfb3a7..834b9f2 100644 --- a/src/remotereceiver.cpp +++ b/src/remotereceiver.cpp @@ -136,6 +136,9 @@ bool RemoteReceiver::listen(int port, ConnectionOptions options) qWarning() << "Initial workspace synchronization with QML Live Bench failed"; return false; } + } else { + connect(this, &RemoteReceiver::initComplete, &loop, &QEventLoop::quit); + loop.exec(); } qInfo() << "QML Live Bench connected"; @@ -248,6 +251,8 @@ void RemoteReceiver::handleCall(const QString &method, const QByteArray &content } else if (method == "ping()") { if (m_client) m_client->send("pong()", QByteArray()); + } else if (method == "initComplete()") { + emit initComplete(); } } @@ -467,3 +472,9 @@ void RemoteReceiver::onActiveDocumentChanged(const LiveDocument &document) * * This signal is emitted to notify that a \a document has changed its \a content */ + +/*! + * \fn void RemoteReceiver::initComplete() + * + * This signal is emitted to notify that the initial message exchange was completed + */ diff --git a/src/remotereceiver.h b/src/remotereceiver.h index 43277ad..ad23c27 100644 --- a/src/remotereceiver.h +++ b/src/remotereceiver.h @@ -94,6 +94,7 @@ Q_SIGNALS: void endBulkUpdate(); void updateDocumentsOnConnectFinished(bool ok); void updateDocument(const LiveDocument &document, const QByteArray &content); + void initComplete(); private Q_SLOTS: void handleCall(const QString& method, const QByteArray& content); |