aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/qmldebug
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2017-09-07 13:17:32 +0200
committerUlf Hermann <ulf.hermann@qt.io>2017-09-07 12:58:12 +0000
commit239ed56f4b719179278b1983e635f8ccc32f2eb9 (patch)
treecb5d56e2b23f4387466824ccac7acfcbc168d674 /src/libs/qmldebug
parent3ccbaff2da1d59a6143cbbaf27f86bfbcda1cf75 (diff)
QmlDebug: Decouple QmlDebugConnection and QmlDebugClient
The protected methods of QmlDebugClient need to be called by QmlDebugConnection already. We also want to call them directly for testing, so we make them public rather than having QmlDebugConnection be a friend. By using a QPointer, we can avoid resetting the connection on each client when it is deleted. Change-Id: I2c0e3d2b8ec19e9acbc6b8f5623b4c28caae319a Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/libs/qmldebug')
-rw-r--r--src/libs/qmldebug/baseenginedebugclient.h6
-rw-r--r--src/libs/qmldebug/declarativeenginedebugclient.h1
-rw-r--r--src/libs/qmldebug/declarativetoolsclient.h1
-rw-r--r--src/libs/qmldebug/qdebugmessageclient.h1
-rw-r--r--src/libs/qmldebug/qmldebugclient.cpp9
-rw-r--r--src/libs/qmldebug/qmldebugclient.h3
-rw-r--r--src/libs/qmldebug/qmlenginecontrolclient.h3
-rw-r--r--src/libs/qmldebug/qmltoolsclient.h1
8 files changed, 8 insertions, 17 deletions
diff --git a/src/libs/qmldebug/baseenginedebugclient.h b/src/libs/qmldebug/baseenginedebugclient.h
index e77f658aea..1f3f2f3dfe 100644
--- a/src/libs/qmldebug/baseenginedebugclient.h
+++ b/src/libs/qmldebug/baseenginedebugclient.h
@@ -72,6 +72,9 @@ public:
virtual quint32 queryObjectsForLocation(const QString &fileName, int lineNumber,
int columnNumber);
+ virtual void stateChanged(State status) override;
+ virtual void messageReceived(const QByteArray &) override;
+
signals:
void newState(QmlDebug::QmlDebugClient::State status);
void newObject(int engineId, int objectId, int parentId);
@@ -80,9 +83,6 @@ signals:
void result(quint32 queryId, const QVariant &result, const QByteArray &type);
protected:
- virtual void stateChanged(State status) override;
- virtual void messageReceived(const QByteArray &) override;
-
quint32 getId() { return m_nextId++; }
void decode(QDataStream &d, ContextReference &context);
diff --git a/src/libs/qmldebug/declarativeenginedebugclient.h b/src/libs/qmldebug/declarativeenginedebugclient.h
index 6efda145ec..ccd087726f 100644
--- a/src/libs/qmldebug/declarativeenginedebugclient.h
+++ b/src/libs/qmldebug/declarativeenginedebugclient.h
@@ -45,7 +45,6 @@ public:
quint32 setMethodBody(int objectDebugId, const QString &methodName,
const QString &methodBody) override;
-protected:
void messageReceived(const QByteArray &data) override;
};
diff --git a/src/libs/qmldebug/declarativetoolsclient.h b/src/libs/qmldebug/declarativetoolsclient.h
index dcb7067207..a6031e87c3 100644
--- a/src/libs/qmldebug/declarativetoolsclient.h
+++ b/src/libs/qmldebug/declarativetoolsclient.h
@@ -44,7 +44,6 @@ public:
// ### Qt 4.8: remove if we can have access to qdeclarativecontextdata or id's
void setObjectIdList(const QList<ObjectReference> &objectRoots) override;
-protected:
void messageReceived(const QByteArray &) override;
private:
diff --git a/src/libs/qmldebug/qdebugmessageclient.h b/src/libs/qmldebug/qdebugmessageclient.h
index cf092cbef9..6862cfd69d 100644
--- a/src/libs/qmldebug/qdebugmessageclient.h
+++ b/src/libs/qmldebug/qdebugmessageclient.h
@@ -46,7 +46,6 @@ class QMLDEBUG_EXPORT QDebugMessageClient : public QmlDebugClient
public:
explicit QDebugMessageClient(QmlDebugConnection *client);
-protected:
virtual void stateChanged(State state) override;
virtual void messageReceived(const QByteArray &) override;
diff --git a/src/libs/qmldebug/qmldebugclient.cpp b/src/libs/qmldebug/qmldebugclient.cpp
index 597281ab25..5935fee5d2 100644
--- a/src/libs/qmldebug/qmldebugclient.cpp
+++ b/src/libs/qmldebug/qmldebugclient.cpp
@@ -33,6 +33,8 @@
#include <qlocalserver.h>
#include <qlocalsocket.h>
+#include <QPointer>
+
namespace QmlDebug {
const int protocolVersion = 1;
@@ -46,7 +48,7 @@ public:
QmlDebugClientPrivate();
QString name;
- QmlDebugConnection *connection;
+ QPointer<QmlDebugConnection> connection;
};
class QmlDebugConnectionPrivate
@@ -263,11 +265,7 @@ QmlDebugConnection::QmlDebugConnection(QObject *parent)
QmlDebugConnection::~QmlDebugConnection()
{
- Q_D(QmlDebugConnection);
socketDisconnected();
- QHash<QString, QmlDebugClient*>::iterator iter = d->plugins.begin();
- for (; iter != d->plugins.end(); ++iter)
- iter.value()->d_func()->connection = 0;
}
bool QmlDebugConnection::isConnected() const
@@ -435,7 +433,6 @@ QAbstractSocket::SocketState QmlDebugConnection::socketState() const
}
QmlDebugClientPrivate::QmlDebugClientPrivate()
- : connection(0)
{
}
diff --git a/src/libs/qmldebug/qmldebugclient.h b/src/libs/qmldebug/qmldebugclient.h
index 2e485ecc1a..8d2f571275 100644
--- a/src/libs/qmldebug/qmldebugclient.h
+++ b/src/libs/qmldebug/qmldebugclient.h
@@ -97,13 +97,10 @@ public:
QmlDebugConnection *connection() const;
virtual void sendMessage(const QByteArray &);
-
-protected:
virtual void stateChanged(State);
virtual void messageReceived(const QByteArray &);
private:
- friend class QmlDebugConnection;
QScopedPointer<QmlDebugClientPrivate> d_ptr;
};
diff --git a/src/libs/qmldebug/qmlenginecontrolclient.h b/src/libs/qmldebug/qmlenginecontrolclient.h
index 43d2efdc80..c947fd72f0 100644
--- a/src/libs/qmldebug/qmlenginecontrolclient.h
+++ b/src/libs/qmldebug/qmlenginecontrolclient.h
@@ -52,6 +52,8 @@ public:
void blockEngine(int engineId);
void releaseEngine(int engineId);
+ void messageReceived(const QByteArray &) override;
+
signals:
void engineAboutToBeAdded(int engineId, const QString &name);
void engineAdded(int engineId, const QString &name);
@@ -59,7 +61,6 @@ signals:
void engineRemoved(int engineId, const QString &name);
protected:
- void messageReceived(const QByteArray &) override;
void sendCommand(CommandType command, int engineId);
struct EngineState {
diff --git a/src/libs/qmldebug/qmltoolsclient.h b/src/libs/qmldebug/qmltoolsclient.h
index d0a19c784f..0a3aba6bd4 100644
--- a/src/libs/qmldebug/qmltoolsclient.h
+++ b/src/libs/qmldebug/qmltoolsclient.h
@@ -44,7 +44,6 @@ public:
// ### Qt 4.8: remove if we can have access to qdeclarativecontextdata or id's
void setObjectIdList(const QList<ObjectReference> &objectRoots) override;
-protected:
void messageReceived(const QByteArray &) override;
private: