aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@theqtcompany.com>2015-07-16 14:18:54 +0200
committerUlf Hermann <ulf.hermann@theqtcompany.com>2015-07-31 11:31:14 +0000
commitcd587fb494b465a4f30582099e0056164a8d1ca9 (patch)
tree6c7a3bc222ddfc2102bb8dd8c4c21d92721d7df3 /src/qml/debugger
parente061150cc54255726b8cda8cc928d3ed03ea8093 (diff)
Make QQmlConfigurableDebugService a template
We will need to derive from service-specific interfaces once we move the services into plugins and QQmlConfigurableDebugService doesn't need to live in QtQml. Change-Id: I151f32ea0f8be9719b245fc19164269c6e62a84a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/debugger')
-rw-r--r--src/qml/debugger/debugger.pri1
-rw-r--r--src/qml/debugger/qqmlconfigurabledebugservice.cpp80
-rw-r--r--src/qml/debugger/qqmlconfigurabledebugservice_p.h47
-rw-r--r--src/qml/debugger/qqmlprofilerservice.cpp5
-rw-r--r--src/qml/debugger/qqmlprofilerservice_p.h4
-rw-r--r--src/qml/debugger/qv4debugservice.cpp9
-rw-r--r--src/qml/debugger/qv4debugservice_p.h3
7 files changed, 51 insertions, 98 deletions
diff --git a/src/qml/debugger/debugger.pri b/src/qml/debugger/debugger.pri
index b3e3b3fc90..ec2e52ece3 100644
--- a/src/qml/debugger/debugger.pri
+++ b/src/qml/debugger/debugger.pri
@@ -10,7 +10,6 @@ SOURCES += \
$$PWD/qqmlenginedebugservice.cpp \
$$PWD/qdebugmessageservice.cpp \
$$PWD/qv4debugservice.cpp \
- $$PWD/qqmlconfigurabledebugservice.cpp \
$$PWD/qqmlenginecontrolservice.cpp \
$$PWD/qqmlabstractprofileradapter.cpp \
$$PWD/qv4profileradapter.cpp \
diff --git a/src/qml/debugger/qqmlconfigurabledebugservice.cpp b/src/qml/debugger/qqmlconfigurabledebugservice.cpp
deleted file mode 100644
index 679fa04abe..0000000000
--- a/src/qml/debugger/qqmlconfigurabledebugservice.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** 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.
-**
-** 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.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qqmlconfigurabledebugservice_p.h"
-#include "qqmldebugconnector_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QQmlConfigurableDebugService::QQmlConfigurableDebugService(const QString &name, float version,
- QObject *parent) :
- QQmlDebugService(name, version, parent), m_configMutex(QMutex::Recursive)
-{
- init();
-}
-
-void QQmlConfigurableDebugService::init()
-{
- QMutexLocker lock(&m_configMutex);
- // If we're not enabled or not blocking, don't wait for configuration
- m_waitingForConfiguration = (state() == Enabled &&
- QQmlDebugConnector::instance()->blockingMode());
-}
-
-void QQmlConfigurableDebugService::stopWaiting()
-{
- QMutexLocker lock(&m_configMutex);
- m_waitingForConfiguration = false;
- foreach (QQmlEngine *engine, m_waitingEngines)
- emit attachedToEngine(engine);
- m_waitingEngines.clear();
-}
-
-void QQmlConfigurableDebugService::stateChanged(QQmlDebugService::State newState)
-{
- if (newState != Enabled)
- stopWaiting();
- else
- init();
-}
-
-void QQmlConfigurableDebugService::engineAboutToBeAdded(QQmlEngine *engine)
-{
- QMutexLocker lock(&m_configMutex);
- if (m_waitingForConfiguration)
- m_waitingEngines.append(engine);
- else
- emit attachedToEngine(engine);
-}
-
-QT_END_NAMESPACE
diff --git a/src/qml/debugger/qqmlconfigurabledebugservice_p.h b/src/qml/debugger/qqmlconfigurabledebugservice_p.h
index 28f0f4dfe2..1329591cba 100644
--- a/src/qml/debugger/qqmlconfigurabledebugservice_p.h
+++ b/src/qml/debugger/qqmlconfigurabledebugservice_p.h
@@ -47,21 +47,54 @@
//
#include "qqmldebugservice_p.h"
+#include "qqmldebugconnector_p.h"
#include <QtCore/qmutex.h>
QT_BEGIN_NAMESPACE
-class QQmlConfigurableDebugService : public QQmlDebugService
+template <class Base>
+class QQmlConfigurableDebugService : public Base
{
- Q_OBJECT
protected:
- QQmlConfigurableDebugService(const QString &name, float version, QObject *parent = 0);
+ QQmlConfigurableDebugService(const QString &name, float version, QObject *parent = 0) :
+ Base(name, version, parent), m_configMutex(QMutex::Recursive)
+ {
+ init();
+ }
- void stopWaiting();
- void init();
+ void stopWaiting()
+ {
+ QMutexLocker lock(&m_configMutex);
+ m_waitingForConfiguration = false;
+ foreach (QQmlEngine *engine, m_waitingEngines)
+ emit Base::attachedToEngine(engine);
+ m_waitingEngines.clear();
+ }
- void stateChanged(State);
- void engineAboutToBeAdded(QQmlEngine *);
+ void init()
+ {
+ QMutexLocker lock(&m_configMutex);
+ // If we're not enabled or not blocking, don't wait for configuration
+ m_waitingForConfiguration = (Base::state() == QQmlDebugService::Enabled &&
+ QQmlDebugConnector::instance()->blockingMode());
+ }
+
+ void stateChanged(QQmlDebugService::State newState)
+ {
+ if (newState != QQmlDebugService::Enabled)
+ stopWaiting();
+ else
+ init();
+ }
+
+ void engineAboutToBeAdded(QQmlEngine *engine)
+ {
+ QMutexLocker lock(&m_configMutex);
+ if (m_waitingForConfiguration)
+ m_waitingEngines.append(engine);
+ else
+ emit Base::attachedToEngine(engine);
+ }
QMutex m_configMutex;
QList<QQmlEngine *> m_waitingEngines;
diff --git a/src/qml/debugger/qqmlprofilerservice.cpp b/src/qml/debugger/qqmlprofilerservice.cpp
index dfd9a0cd3b..6f50b41b1b 100644
--- a/src/qml/debugger/qqmlprofilerservice.cpp
+++ b/src/qml/debugger/qqmlprofilerservice.cpp
@@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE
Q_GLOBAL_STATIC(QQmlProfilerService, profilerInstance)
QQmlProfilerService::QQmlProfilerService()
- : QQmlConfigurableDebugService(QStringLiteral("CanvasFrameRate"), 1)
+ : QQmlConfigurableDebugService<QQmlDebugService>(QStringLiteral("CanvasFrameRate"), 1)
{
m_timer.start();
}
@@ -109,8 +109,7 @@ void QQmlProfilerService::engineAboutToBeAdded(QQmlEngine *engine)
QV4ProfilerAdapter *v4Adapter = new QV4ProfilerAdapter(this, QV8Engine::getV4(engine->handle()));
addEngineProfiler(qmlAdapter, engine);
addEngineProfiler(v4Adapter, engine);
-
- QQmlConfigurableDebugService::engineAboutToBeAdded(engine);
+ QQmlConfigurableDebugService<QQmlDebugService>::engineAboutToBeAdded(engine);
}
void QQmlProfilerService::engineAdded(QQmlEngine *engine)
diff --git a/src/qml/debugger/qqmlprofilerservice_p.h b/src/qml/debugger/qqmlprofilerservice_p.h
index 978d8413a7..518f60bb7c 100644
--- a/src/qml/debugger/qqmlprofilerservice_p.h
+++ b/src/qml/debugger/qqmlprofilerservice_p.h
@@ -66,7 +66,9 @@ class QUrl;
class QQmlEngine;
-class Q_QML_PRIVATE_EXPORT QQmlProfilerService : public QQmlConfigurableDebugService, public QQmlProfilerDefinitions
+class Q_QML_PRIVATE_EXPORT QQmlProfilerService :
+ public QQmlConfigurableDebugService<QQmlDebugService>,
+ public QQmlProfilerDefinitions
{
Q_OBJECT
public:
diff --git a/src/qml/debugger/qv4debugservice.cpp b/src/qml/debugger/qv4debugservice.cpp
index 19c06bffeb..63673a0ef8 100644
--- a/src/qml/debugger/qv4debugservice.cpp
+++ b/src/qml/debugger/qv4debugservice.cpp
@@ -832,8 +832,9 @@ V8CommandHandler *QV4DebugService::v8CommandHandler(const QString &command) cons
}
QV4DebugService::QV4DebugService(QObject *parent) :
- QQmlConfigurableDebugService(QStringLiteral("V8Debugger"), 1, parent), debuggerAgent(this),
- version(1), theSelectedFrame(0), unknownV8CommandHandler(new UnknownV8CommandHandler)
+ QQmlConfigurableDebugService<QQmlDebugService>(QStringLiteral("V8Debugger"), 1, parent),
+ debuggerAgent(this), version(1), theSelectedFrame(0),
+ unknownV8CommandHandler(new UnknownV8CommandHandler)
{
addHandler(new V8VersionRequest);
addHandler(new V8SetBreakPointRequest);
@@ -875,7 +876,7 @@ void QV4DebugService::engineAboutToBeAdded(QQmlEngine *engine)
}
}
}
- QQmlConfigurableDebugService::engineAboutToBeAdded(engine);
+ QQmlConfigurableDebugService<QQmlDebugService>::engineAboutToBeAdded(engine);
}
void QV4DebugService::engineAboutToBeRemoved(QQmlEngine *engine)
@@ -896,7 +897,7 @@ void QV4DebugService::engineAboutToBeRemoved(QQmlEngine *engine)
debuggerAgent.removeDebugger(debugger);
}
}
- QQmlConfigurableDebugService::engineAboutToBeRemoved(engine);
+ QQmlConfigurableDebugService<QQmlDebugService>::engineAboutToBeRemoved(engine);
}
void QV4DebugService::signalEmitted(const QString &signal)
diff --git a/src/qml/debugger/qv4debugservice_p.h b/src/qml/debugger/qv4debugservice_p.h
index b824b47b23..4e7806f5f9 100644
--- a/src/qml/debugger/qv4debugservice_p.h
+++ b/src/qml/debugger/qv4debugservice_p.h
@@ -78,8 +78,7 @@ private:
QV4DebugService *debugService;
};
-
-class QV4DebugService : public QQmlConfigurableDebugService
+class QV4DebugService : public QQmlConfigurableDebugService<QQmlDebugService>
{
Q_OBJECT
public: