From cc3a57861d5ef6e84cef0adfa1aaf726dd2b9d84 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 13 Jul 2015 15:56:25 +0200 Subject: Use signal/slot for passing messages through QQmlDebugServer This results in much cleaner code than the previous implementation using QMetaObject::invokeMethod(). We have to use read locks now for adding and removing engines, as we should have done already before. If a condition is waiting on a write lock you cannot acquire a read lock from another thread. So, if we kept the write locks we wouldn't be able to receive messages while the engines are waiting. Change-Id: Icfe641601dec2f8d7181ae579146ed603d57a4c2 Reviewed-by: Simon Hausmann --- src/qml/debugger/qqmldebugservice_p.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/qml/debugger/qqmldebugservice_p.h') diff --git a/src/qml/debugger/qqmldebugservice_p.h b/src/qml/debugger/qqmldebugservice_p.h index e17c02b477..311ce3e355 100644 --- a/src/qml/debugger/qqmldebugservice_p.h +++ b/src/qml/debugger/qqmldebugservice_p.h @@ -81,9 +81,6 @@ public: virtual void engineAdded(QQmlEngine *); virtual void engineRemoved(QQmlEngine *); - void sendMessage(const QByteArray &); - void sendMessages(const QList &); - static const QHash &objectsForIds(); static int idForObject(QObject *); static QObject *objectForId(int id) { return objectsForIds().value(id); } @@ -97,6 +94,9 @@ protected: signals: void attachedToEngine(QQmlEngine *); void detachedFromEngine(QQmlEngine *); + + void messageToClient(const QString &name, const QByteArray &message); + void messagesToClient(const QString &name, const QList &messages); }; class Q_QML_PRIVATE_EXPORT QQmlDebugStream : public QDataStream -- cgit v1.2.3