diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2018-10-16 15:49:24 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2018-10-24 05:58:10 +0000 |
commit | c4f8f1db16b28e68016c926e2fe628c03513c6b4 (patch) | |
tree | 9f159a3deea866a734f9492500df97c011bc7c4a | |
parent | ad73e0b045d9f75ec420dc55b12671cc00cf40be (diff) |
QmlDebug: Add QQmlInspectorClient
We use it in 2 tests and we might use it elsewhere, too.
Task-number: QTBUG-66504
Change-Id: I57e52e70044ac857482ecfe863f0d30698ab2e60
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | src/qmldebug/qmldebug.pro | 3 | ||||
-rw-r--r-- | src/qmldebug/qqmlinspectorclient.cpp (renamed from tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp) | 72 | ||||
-rw-r--r-- | src/qmldebug/qqmlinspectorclient_p.h (renamed from tests/auto/qml/debugger/shared/qqmlinspectorclient.h) | 43 | ||||
-rw-r--r-- | src/qmldebug/qqmlinspectorclient_p_p.h | 69 | ||||
-rw-r--r-- | tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro | 1 | ||||
-rw-r--r-- | tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qml/debugger/qqmlinspector/qqmlinspector.pro | 1 | ||||
-rw-r--r-- | tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qml/debugger/shared/qqmlinspectorclient.pri | 3 |
9 files changed, 152 insertions, 44 deletions
diff --git a/src/qmldebug/qmldebug.pro b/src/qmldebug/qmldebug.pro index c18d4c0c03..94d300b765 100644 --- a/src/qmldebug/qmldebug.pro +++ b/src/qmldebug/qmldebug.pro @@ -10,6 +10,7 @@ SOURCES += \ qqmldebugmessageclient.cpp \ qqmlenginecontrolclient.cpp \ qqmlenginedebugclient.cpp \ + qqmlinspectorclient.cpp \ qqmlpreviewclient.cpp \ qqmlprofilerclient.cpp \ qqmlprofilerevent.cpp \ @@ -27,6 +28,8 @@ HEADERS += \ qqmlenginedebugclient_p_p.h \ qqmlenginecontrolclient_p.h \ qqmlenginecontrolclient_p_p.h \ + qqmlinspectorclient_p.h \ + qqmlinspectorclient_p_p.h \ qqmlpreviewclient_p.h \ qqmlpreviewclient_p_p.h \ qqmlprofilerclient_p.h \ diff --git a/tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp b/src/qmldebug/qqmlinspectorclient.cpp index 20faef177e..1de52bd0c1 100644 --- a/tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp +++ b/src/qmldebug/qqmlinspectorclient.cpp @@ -1,11 +1,11 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the test suite of the Qt Toolkit. +** This file is part of the QtQml module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -14,96 +14,120 @@ ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "qqmlinspectorclient.h" +#include "qqmlinspectorclient_p_p.h" #include <private/qpacket_p.h> #include <private/qqmldebugconnection_p.h> #include <QtCore/qdebug.h> +QT_BEGIN_NAMESPACE + QQmlInspectorClient::QQmlInspectorClient(QQmlDebugConnection *connection) : - QQmlDebugClient(QLatin1String("QmlInspector"), connection), - m_lastRequestId(-1) + QQmlDebugClient(*new QQmlInspectorClientPrivate(connection)) +{ +} + +QQmlInspectorClientPrivate::QQmlInspectorClientPrivate(QQmlDebugConnection *connection) : + QQmlDebugClientPrivate(QLatin1String("QmlInspector"), connection) { } int QQmlInspectorClient::setInspectToolEnabled(bool enabled) { + Q_D(QQmlInspectorClient); QPacket ds(connection()->currentDataStreamVersion()); - ds << QByteArray("request") << ++m_lastRequestId + ds << QByteArray("request") << ++(d->m_lastRequestId) << QByteArray(enabled ? "enable" : "disable"); sendMessage(ds.data()); - return m_lastRequestId; + return d->m_lastRequestId; } int QQmlInspectorClient::setShowAppOnTop(bool showOnTop) { + Q_D(QQmlInspectorClient); QPacket ds(connection()->currentDataStreamVersion()); - ds << QByteArray("request") << ++m_lastRequestId + ds << QByteArray("request") << ++(d->m_lastRequestId) << QByteArray("showAppOnTop") << showOnTop; sendMessage(ds.data()); - return m_lastRequestId; + return d->m_lastRequestId; } int QQmlInspectorClient::setAnimationSpeed(qreal speed) { + Q_D(QQmlInspectorClient); QPacket ds(connection()->currentDataStreamVersion()); - ds << QByteArray("request") << ++m_lastRequestId + ds << QByteArray("request") << ++(d->m_lastRequestId) << QByteArray("setAnimationSpeed") << speed; sendMessage(ds.data()); - return m_lastRequestId; + return d->m_lastRequestId; } int QQmlInspectorClient::select(const QList<int> &objectIds) { + Q_D(QQmlInspectorClient); QPacket ds(connection()->currentDataStreamVersion()); - ds << QByteArray("request") << ++m_lastRequestId + ds << QByteArray("request") << ++(d->m_lastRequestId) << QByteArray("select") << objectIds; sendMessage(ds.data()); - return m_lastRequestId; + return d->m_lastRequestId; } int QQmlInspectorClient::createObject(const QString &qml, int parentId, const QStringList &imports, const QString &filename) { + Q_D(QQmlInspectorClient); QPacket ds(connection()->currentDataStreamVersion()); - ds << QByteArray("request") << ++m_lastRequestId + ds << QByteArray("request") << ++(d->m_lastRequestId) << QByteArray("createObject") << qml << parentId << imports << filename; sendMessage(ds.data()); - return m_lastRequestId; + return d->m_lastRequestId; } int QQmlInspectorClient::moveObject(int childId, int newParentId) { + Q_D(QQmlInspectorClient); QPacket ds(connection()->currentDataStreamVersion()); - ds << QByteArray("request") << ++m_lastRequestId + ds << QByteArray("request") << ++(d->m_lastRequestId) << QByteArray("moveObject") << childId << newParentId; sendMessage(ds.data()); - return m_lastRequestId; + return d->m_lastRequestId; } int QQmlInspectorClient::destroyObject(int objectId) { + Q_D(QQmlInspectorClient); QPacket ds(connection()->currentDataStreamVersion()); - ds << QByteArray("request") << ++m_lastRequestId + ds << QByteArray("request") << ++(d->m_lastRequestId) << QByteArray("destroyObject") << objectId; sendMessage(ds.data()); - return m_lastRequestId; + return d->m_lastRequestId; } void QQmlInspectorClient::messageReceived(const QByteArray &message) @@ -122,3 +146,5 @@ void QQmlInspectorClient::messageReceived(const QByteArray &message) ds >> responseId >> result; emit responseReceived(responseId, result); } + +QT_END_NAMESPACE diff --git a/tests/auto/qml/debugger/shared/qqmlinspectorclient.h b/src/qmldebug/qqmlinspectorclient_p.h index bfb489c8f7..3e502f4f45 100644 --- a/tests/auto/qml/debugger/shared/qqmlinspectorclient.h +++ b/src/qmldebug/qqmlinspectorclient_p.h @@ -1,11 +1,11 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the test suite of the Qt Toolkit. +** This file is part of the QtQml module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -14,25 +14,41 @@ ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QQMLINSPECTORCLIENT_H -#define QQMLINSPECTORCLIENT_H + +#ifndef QQMLINSPECTORCLIENT_P_H +#define QQMLINSPECTORCLIENT_P_H #include <private/qqmldebugclient_p.h> +QT_BEGIN_NAMESPACE + +class QQmlInspectorClientPrivate; class QQmlInspectorClient : public QQmlDebugClient { Q_OBJECT + Q_DECLARE_PRIVATE(QQmlInspectorClient) public: QQmlInspectorClient(QQmlDebugConnection *connection); @@ -40,7 +56,7 @@ public: int setInspectToolEnabled(bool enabled); int setShowAppOnTop(bool showOnTop); int setAnimationSpeed(qreal speed); - int select(const QList<int> &objectIds); + int select(const QList<int> &objectIds); int createObject(const QString &qml, int parentId, const QStringList &imports, const QString &filename); int moveObject(int childId, int newParentId); @@ -50,10 +66,9 @@ signals: void responseReceived(int requestId, bool result); protected: - void messageReceived(const QByteArray &message); - -private: - int m_lastRequestId; + void messageReceived(const QByteArray &message) override; }; -#endif // QQMLINSPECTORCLIENT_H +QT_END_NAMESPACE + +#endif // QQMLINSPECTORCLIENT_P_H diff --git a/src/qmldebug/qqmlinspectorclient_p_p.h b/src/qmldebug/qqmlinspectorclient_p_p.h new file mode 100644 index 0000000000..91537dd994 --- /dev/null +++ b/src/qmldebug/qqmlinspectorclient_p_p.h @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQMLINSPECTORCLIENT_P_P_H +#define QQMLINSPECTORCLIENT_P_P_H + +#include "qqmlinspectorclient_p.h" +#include "qqmldebugclient_p_p.h" + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +class QQmlInspectorClientPrivate : public QQmlDebugClientPrivate +{ + Q_DECLARE_PUBLIC(QQmlInspectorClient) +public: + QQmlInspectorClientPrivate(QQmlDebugConnection *connection); + int m_lastRequestId = -1; +}; + +QT_END_NAMESPACE + +#endif // QQMLINSPECTORCLIENT_P_P_H diff --git a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro index f69199f7d1..454a1e3ab0 100644 --- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro +++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/qqmlenginedebuginspectorintegrationtest.pro @@ -6,7 +6,6 @@ osx:CONFIG -= app_bundle SOURCES += tst_qqmlenginedebuginspectorintegration.cpp -include(../shared/qqmlinspectorclient.pri) include(../shared/debugutil.pri) TESTDATA = data/* diff --git a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp index 5e12a31163..980e2be1f1 100644 --- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp +++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp @@ -26,12 +26,12 @@ ** ****************************************************************************/ -#include "qqmlinspectorclient.h" #include "../shared/debugutil_p.h" #include "../../../shared/util.h" #include <private/qqmldebugconnection_p.h> #include <private/qqmlenginedebugclient_p.h> +#include <private/qqmlinspectorclient_p.h> #include <QtTest/qtest.h> #include <QtTest/qsignalspy.h> diff --git a/tests/auto/qml/debugger/qqmlinspector/qqmlinspector.pro b/tests/auto/qml/debugger/qqmlinspector/qqmlinspector.pro index 3d4473c693..0d42030b52 100644 --- a/tests/auto/qml/debugger/qqmlinspector/qqmlinspector.pro +++ b/tests/auto/qml/debugger/qqmlinspector/qqmlinspector.pro @@ -6,7 +6,6 @@ osx:CONFIG -= app_bundle SOURCES += tst_qqmlinspector.cpp -include(../shared/qqmlinspectorclient.pri) include(../shared/debugutil.pri) TESTDATA = data/* diff --git a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp index 5c9506eb21..6685558bb5 100644 --- a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp +++ b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp @@ -26,12 +26,12 @@ ** ****************************************************************************/ -#include "qqmlinspectorclient.h" #include "../shared/debugutil_p.h" #include "../shared/qqmldebugprocess_p.h" #include "../../../shared/util.h" #include <private/qqmldebugconnection_p.h> +#include <private/qqmlinspectorclient_p.h> #include <QtTest/qtest.h> #include <QtTest/qsignalspy.h> diff --git a/tests/auto/qml/debugger/shared/qqmlinspectorclient.pri b/tests/auto/qml/debugger/shared/qqmlinspectorclient.pri deleted file mode 100644 index c136e1313a..0000000000 --- a/tests/auto/qml/debugger/shared/qqmlinspectorclient.pri +++ /dev/null @@ -1,3 +0,0 @@ -HEADERS += $$PWD/qqmlinspectorclient.h - -SOURCES += $$PWD/qqmlinspectorclient.cpp |