diff options
author | hjk <hjk@theqtcompany.com> | 2015-07-08 12:21:51 +0200 |
---|---|---|
committer | hjk <hjk@theqtcompany.com> | 2015-07-09 10:27:37 +0000 |
commit | 0e7e521a0aa4054946725f27dba13c1eab50c63e (patch) | |
tree | 2ac6cb3aa1de7769b4c86f16a457ba46a9ef69b4 /src/plugins | |
parent | 7e30a74d41aea34a469c5d348219908c8b426986 (diff) | |
download | qt-creator-0e7e521a0aa4054946725f27dba13c1eab50c63e.tar.gz |
Debugger: Merge {baseqml,qml}debuggerclient.
Abstraction is not used after the demise of QScriptDebuggerClient
and unlikely to be used again.
Change-Id: Icdd6615eb0d1468fd9a3d717d6a7d5e44f7f7d79
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/debugger/debugger.qbs | 1 | ||||
-rw-r--r-- | src/plugins/debugger/qml/baseqmldebuggerclient.cpp | 83 | ||||
-rw-r--r-- | src/plugins/debugger/qml/baseqmldebuggerclient.h | 111 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qml.pri | 2 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmladapter.cpp | 6 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmladapter.h | 10 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlengine.cpp | 12 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlv8debuggerclient.cpp | 25 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlv8debuggerclient.h | 17 |
9 files changed, 53 insertions, 214 deletions
diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs index 0419ddf5c2..cfb777f97c 100644 --- a/src/plugins/debugger/debugger.qbs +++ b/src/plugins/debugger/debugger.qbs @@ -145,7 +145,6 @@ QtcPlugin { name: "QML Debugger" prefix: "qml/" files: [ - "baseqmldebuggerclient.cpp", "baseqmldebuggerclient.h", "interactiveinterpreter.cpp", "interactiveinterpreter.h", "qmladapter.cpp", "qmladapter.h", "qmlcppengine.cpp", "qmlcppengine.h", diff --git a/src/plugins/debugger/qml/baseqmldebuggerclient.cpp b/src/plugins/debugger/qml/baseqmldebuggerclient.cpp deleted file mode 100644 index 5a7f9287a1..0000000000 --- a/src/plugins/debugger/qml/baseqmldebuggerclient.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms and -** conditions see http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "baseqmldebuggerclient.h" -#include <debugger/breakhandler.h> - -#include <utils/qtcassert.h> - -namespace Debugger { -namespace Internal { - -class BaseQmlDebuggerClientPrivate -{ -public: - QList<QByteArray> sendBuffer; -}; - -BaseQmlDebuggerClient::BaseQmlDebuggerClient(QmlDebug::QmlDebugConnection* client, QLatin1String clientName) - : QmlDebugClient(clientName, client), - d(new BaseQmlDebuggerClientPrivate()) -{ -} - -BaseQmlDebuggerClient::~BaseQmlDebuggerClient() -{ - delete d; -} - -bool BaseQmlDebuggerClient::acceptsBreakpoint(Breakpoint /*bp*/) -{ - return false; -} - -void BaseQmlDebuggerClient::stateChanged(State state) -{ - emit newState(state); -} - -void BaseQmlDebuggerClient::sendMessage(const QByteArray &msg) -{ - if (state() == Enabled) - QmlDebugClient::sendMessage(msg); - else - d->sendBuffer.append(msg); -} - -void BaseQmlDebuggerClient::flushSendBuffer() -{ - QTC_ASSERT(state() == Enabled, return); - foreach (const QByteArray &msg, d->sendBuffer) - QmlDebugClient::sendMessage(msg); - d->sendBuffer.clear(); -} - -} // Internal -} // Debugger diff --git a/src/plugins/debugger/qml/baseqmldebuggerclient.h b/src/plugins/debugger/qml/baseqmldebuggerclient.h deleted file mode 100644 index 47435fbf99..0000000000 --- a/src/plugins/debugger/qml/baseqmldebuggerclient.h +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms and -** conditions see http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#ifndef BASEQMLDEBUGGERCLIENT_H -#define BASEQMLDEBUGGERCLIENT_H - -#include <debugger/debuggerengine.h> -#include <qmldebug/qmldebugclient.h> - -namespace Debugger { -namespace Internal { - -class WatchData; -class WatchItem; -class BreakHandler; -class BreakpointModelId; -class QmlEngine; -class BaseQmlDebuggerClientPrivate; - -class BaseQmlDebuggerClient : public QmlDebug::QmlDebugClient -{ - Q_OBJECT - -public: - BaseQmlDebuggerClient(QmlDebug::QmlDebugConnection* client, QLatin1String clientName); - virtual ~BaseQmlDebuggerClient(); - - virtual void startSession() = 0; - virtual void endSession() = 0; - virtual void resetSession() = 0; - - virtual void executeStep() = 0; - virtual void executeStepOut() = 0; - virtual void executeNext() = 0; - virtual void executeStepI() = 0; - - virtual void executeRunToLine(const ContextData &data) = 0; - - virtual void continueInferior() = 0; - virtual void interruptInferior() = 0; - - virtual void activateFrame(int index) = 0; - - virtual bool acceptsBreakpoint(Breakpoint bp); - virtual void insertBreakpoint(Breakpoint bp, int adjustedLine, - int adjustedColumn = -1) = 0; - virtual void removeBreakpoint(Breakpoint bp) = 0; - virtual void changeBreakpoint(Breakpoint bp) = 0; - virtual void synchronizeBreakpoints() = 0; - - virtual void assignValueInDebugger(const WatchData *data, - const QString &expression, - const QVariant &valueV) = 0; - - virtual void updateWatchData(const WatchData &data) = 0; - virtual void executeDebuggerCommand(const QString &command) = 0; - - virtual void synchronizeWatchers(const QStringList &watchers) = 0; - - virtual void expandObject(const QByteArray &iname, quint64 objectId) = 0; - - virtual void setEngine(QmlEngine *engine) = 0; - - virtual void getSourceFiles() {} - - void flushSendBuffer(); - -signals: - void newState(QmlDebug::QmlDebugClient::State state); - void stackFrameCompleted(); - -protected: - virtual void stateChanged(State state); - void sendMessage(const QByteArray &msg); - -private: - BaseQmlDebuggerClientPrivate *d; - friend class BaseQmlDebuggerClientPrivate; -}; - -} // Internal -} // Debugger - -#endif // BASEQMLDEBUGGERCLIENT_H diff --git a/src/plugins/debugger/qml/qml.pri b/src/plugins/debugger/qml/qml.pri index 4d1676fbd3..12d34e0dc8 100644 --- a/src/plugins/debugger/qml/qml.pri +++ b/src/plugins/debugger/qml/qml.pri @@ -1,7 +1,6 @@ HEADERS += \ $$PWD/qmlengine.h \ $$PWD/qmladapter.h \ - $$PWD/baseqmldebuggerclient.h \ $$PWD/qmlcppengine.h \ $$PWD/qmlv8debuggerclient.h \ $$PWD/interactiveinterpreter.h \ @@ -12,7 +11,6 @@ HEADERS += \ SOURCES += \ $$PWD/qmlengine.cpp \ $$PWD/qmladapter.cpp \ - $$PWD/baseqmldebuggerclient.cpp \ $$PWD/qmlcppengine.cpp \ $$PWD/qmlv8debuggerclient.cpp \ $$PWD/interactiveinterpreter.cpp \ diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp index be843c9b98..c2698bdf17 100644 --- a/src/plugins/debugger/qml/qmladapter.cpp +++ b/src/plugins/debugger/qml/qmladapter.cpp @@ -133,7 +133,7 @@ void QmlAdapter::debugClientStateChanged(QmlDebugClient::State state) QmlDebugClient *client = qobject_cast<QmlDebugClient*>(sender()); QTC_ASSERT(client, return); - m_qmlClient = qobject_cast<BaseQmlDebuggerClient *>(client); + m_qmlClient = qobject_cast<QmlV8DebuggerClient *>(client); m_qmlClient->startSession(); } @@ -185,12 +185,12 @@ void QmlAdapter::showConnectionErrorMessage(const QString &message) m_engine.data()->showMessage(_("QML Debugger: ") + message, LogError); } -BaseQmlDebuggerClient *QmlAdapter::activeDebuggerClient() const +QmlV8DebuggerClient *QmlAdapter::activeDebuggerClient() const { return m_qmlClient; } -QHash<QString, BaseQmlDebuggerClient*> QmlAdapter::debuggerClients() const +QHash<QString, QmlV8DebuggerClient*> QmlAdapter::debuggerClients() const { return m_debugClients; } diff --git a/src/plugins/debugger/qml/qmladapter.h b/src/plugins/debugger/qml/qmladapter.h index e9f3936878..7e966e4068 100644 --- a/src/plugins/debugger/qml/qmladapter.h +++ b/src/plugins/debugger/qml/qmladapter.h @@ -45,7 +45,7 @@ class QDebugMessageClient; namespace Debugger { namespace Internal { -class BaseQmlDebuggerClient; +class QmlV8DebuggerClient; class DebuggerEngine; class QmlAdapterPrivate; @@ -63,8 +63,8 @@ public: QmlDebug::QmlDebugConnection *connection() const; DebuggerEngine *debuggerEngine() const; - BaseQmlDebuggerClient *activeDebuggerClient() const; - QHash<QString, BaseQmlDebuggerClient*> debuggerClients() const; + QmlV8DebuggerClient *activeDebuggerClient() const; + QHash<QString, QmlV8DebuggerClient*> debuggerClients() const; QmlDebug::QDebugMessageClient *messageClient() const; @@ -94,10 +94,10 @@ private: private: QPointer<DebuggerEngine> m_engine; - BaseQmlDebuggerClient *m_qmlClient; + QmlV8DebuggerClient *m_qmlClient; QTimer m_connectionTimer; QmlDebug::QmlDebugConnection *m_conn; - QHash<QString, BaseQmlDebuggerClient*> m_debugClients; + QHash<QString, QmlV8DebuggerClient*> m_debugClients; QmlDebug::QDebugMessageClient *m_msgClient; }; diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index c2b2ca3246..ea1aabbb62 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -29,8 +29,8 @@ ****************************************************************************/ #include "qmlengine.h" -#include "baseqmldebuggerclient.h" #include "qmlinspectoragent.h" +#include "qmlv8debuggerclient.h" #include <debugger/debuggeractions.h> #include <debugger/debuggercore.h> @@ -821,7 +821,7 @@ void QmlEngine::insertBreakpoint(Breakpoint bp) if (m_adapter.activeDebuggerClient()) { m_adapter.activeDebuggerClient()->insertBreakpoint(bp, line, column); } else { - foreach (BaseQmlDebuggerClient *client, m_adapter.debuggerClients()) { + foreach (QmlV8DebuggerClient *client, m_adapter.debuggerClients()) { client->insertBreakpoint(bp, line, column); } } @@ -849,7 +849,7 @@ void QmlEngine::removeBreakpoint(Breakpoint bp) if (m_adapter.activeDebuggerClient()) { m_adapter.activeDebuggerClient()->removeBreakpoint(bp); } else { - foreach (BaseQmlDebuggerClient *client, m_adapter.debuggerClients()) { + foreach (QmlV8DebuggerClient *client, m_adapter.debuggerClients()) { client->removeBreakpoint(bp); } } @@ -867,7 +867,7 @@ void QmlEngine::changeBreakpoint(Breakpoint bp) if (m_adapter.activeDebuggerClient()) { m_adapter.activeDebuggerClient()->changeBreakpoint(bp); } else { - foreach (BaseQmlDebuggerClient *client, m_adapter.debuggerClients()) { + foreach (QmlV8DebuggerClient *client, m_adapter.debuggerClients()) { client->changeBreakpoint(bp); } } @@ -922,7 +922,7 @@ void QmlEngine::attemptBreakpointSynchronization() if (m_adapter.activeDebuggerClient()) { m_adapter.activeDebuggerClient()->synchronizeBreakpoints(); } else { - foreach (BaseQmlDebuggerClient *client, m_adapter.debuggerClients()) { + foreach (QmlV8DebuggerClient *client, m_adapter.debuggerClients()) { client->synchronizeBreakpoints(); } } @@ -1035,7 +1035,7 @@ void QmlEngine::synchronizeWatchers() if (m_adapter.activeDebuggerClient()) { m_adapter.activeDebuggerClient()->synchronizeWatchers(watchedExpressions); } else { - foreach (BaseQmlDebuggerClient *client, m_adapter.debuggerClients()) + foreach (QmlV8DebuggerClient *client, m_adapter.debuggerClients()) client->synchronizeWatchers(watchedExpressions); } } diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp index c821da13a0..33577f5257 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp @@ -138,6 +138,8 @@ public: QHash<int, int> stackIndexLookup; QmlV8DebuggerClient::StepAction previousStepAction; + + QList<QByteArray> sendBuffer; }; /////////////////////////////////////////////////////////////////////// @@ -745,7 +747,7 @@ void QmlV8DebuggerClientPrivate::logReceiveMessage(const QString &msg) const /////////////////////////////////////////////////////////////////////// QmlV8DebuggerClient::QmlV8DebuggerClient(QmlDebug::QmlDebugConnection *client) - : BaseQmlDebuggerClient(client, QLatin1String("V8Debugger")), + : QmlDebugClient(QLatin1String("V8Debugger"), client), d(new QmlV8DebuggerClientPrivate(this)) { } @@ -1795,5 +1797,26 @@ void QmlV8DebuggerClient::clearExceptionSelection() } +void QmlV8DebuggerClient::stateChanged(State state) +{ + emit newState(state); +} + +void QmlV8DebuggerClient::sendMessage(const QByteArray &msg) +{ + if (state() == Enabled) + QmlDebugClient::sendMessage(msg); + else + d->sendBuffer.append(msg); +} + +void QmlV8DebuggerClient::flushSendBuffer() +{ + QTC_ASSERT(state() == Enabled, return); + foreach (const QByteArray &msg, d->sendBuffer) + QmlDebugClient::sendMessage(msg); + d->sendBuffer.clear(); +} + } // Internal } // Debugger diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.h b/src/plugins/debugger/qml/qmlv8debuggerclient.h index ae78443e77..5adb989efe 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.h +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.h @@ -31,14 +31,18 @@ #ifndef QMLV8DEBUGGERCLIENT_H #define QMLV8DEBUGGERCLIENT_H -#include "baseqmldebuggerclient.h" +#include <debugger/debuggerengine.h> +#include <qmldebug/qmldebugclient.h> namespace Debugger { namespace Internal { +class WatchData; +class WatchItem; +class QmlEngine; class QmlV8DebuggerClientPrivate; -class QmlV8DebuggerClient : public BaseQmlDebuggerClient +class QmlV8DebuggerClient : public QmlDebug::QmlDebugClient { Q_OBJECT @@ -99,6 +103,15 @@ public: void getSourceFiles(); + void flushSendBuffer(); + + void stateChanged(State state); + void sendMessage(const QByteArray &msg); + +signals: + void newState(QmlDebug::QmlDebugClient::State state); + void stackFrameCompleted(); + protected: void messageReceived(const QByteArray &data); |