aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kampas <martin.kampas@jolla.com>2018-10-26 09:49:53 +0200
committerSvetlana Abramenkova <sabramenkova@luxoft.com>2020-02-18 09:03:55 +0000
commitb7311851cc2a5f57cc980f277ed8e94f9b576d22 (patch)
tree7745d9992310baafbe71224c5d20b26557b20168
parent7525cdc6eacc0fc647b5ddbbf35f3f774ae99742 (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.cpp2
-rw-r--r--src/remotepublisher.cpp8
-rw-r--r--src/remotepublisher.h1
-rw-r--r--src/remotereceiver.cpp11
-rw-r--r--src/remotereceiver.h1
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);