diff options
Diffstat (limited to 'tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.h')
-rw-r--r-- | tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.h | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.h b/tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.h new file mode 100644 index 0000000000..62f9b15824 --- /dev/null +++ b/tests/auto/qml/debugger/qqmlenginedebugservice/qqmlenginedebugclient.h @@ -0,0 +1,237 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the QtQml module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQMLENGINEDEBUGCLIENT_H +#define QQMLENGINEDEBUGCLIENT_H + +#include "qqmldebugclient.h" + +#include <QtCore/qurl.h> +#include <QtCore/qvariant.h> + +class QQmlDebugConnection; + +struct QmlDebugPropertyReference +{ + QmlDebugPropertyReference() + : objectDebugId(-1), hasNotifySignal(false) + { + } + + QmlDebugPropertyReference &operator=( + const QmlDebugPropertyReference &o) + { + objectDebugId = o.objectDebugId; name = o.name; value = o.value; + valueTypeName = o.valueTypeName; binding = o.binding; + hasNotifySignal = o.hasNotifySignal; + return *this; + } + + int objectDebugId; + QString name; + QVariant value; + QString valueTypeName; + QString binding; + bool hasNotifySignal; +}; + +struct QmlDebugFileReference +{ + QmlDebugFileReference() + : lineNumber(-1), columnNumber(-1) + { + } + + QmlDebugFileReference &operator=( + const QmlDebugFileReference &o) + { + url = o.url; lineNumber = o.lineNumber; columnNumber = o.columnNumber; + return *this; + } + + QUrl url; + int lineNumber; + int columnNumber; +}; + +struct QmlDebugObjectReference +{ + QmlDebugObjectReference() + : debugId(-1), contextDebugId(-1) + { + } + + QmlDebugObjectReference(int id) + : debugId(id), contextDebugId(-1) + { + } + + QmlDebugObjectReference &operator=( + const QmlDebugObjectReference &o) + { + debugId = o.debugId; className = o.className; idString = o.idString; + name = o.name; source = o.source; contextDebugId = o.contextDebugId; + properties = o.properties; children = o.children; + return *this; + } + int debugId; + QString className; + QString idString; + QString name; + QmlDebugFileReference source; + int contextDebugId; + QList<QmlDebugPropertyReference> properties; + QList<QmlDebugObjectReference> children; +}; + +Q_DECLARE_METATYPE(QmlDebugObjectReference) + +struct QmlDebugContextReference +{ + QmlDebugContextReference() + : debugId(-1) + { + } + + QmlDebugContextReference &operator=( + const QmlDebugContextReference &o) + { + debugId = o.debugId; name = o.name; objects = o.objects; + contexts = o.contexts; + return *this; + } + + int debugId; + QString name; + QList<QmlDebugObjectReference> objects; + QList<QmlDebugContextReference> contexts; +}; + +struct QmlDebugEngineReference +{ + QmlDebugEngineReference() + : debugId(-1) + { + } + + QmlDebugEngineReference(int id) + : debugId(id) + { + } + + QmlDebugEngineReference &operator=( + const QmlDebugEngineReference &o) + { + debugId = o.debugId; name = o.name; + return *this; + } + + int debugId; + QString name; +}; + +class QQmlEngineDebugClient : public QQmlDebugClient +{ + Q_OBJECT +public: + explicit QQmlEngineDebugClient(QQmlDebugConnection *conn); + + quint32 addWatch(const QmlDebugPropertyReference &, + bool *success); + quint32 addWatch(const QmlDebugContextReference &, const QString &, + bool *success); + quint32 addWatch(const QmlDebugObjectReference &, const QString &, + bool *success); + quint32 addWatch(const QmlDebugObjectReference &, + bool *success); + quint32 addWatch(const QmlDebugFileReference &, + bool *success); + + void removeWatch(quint32 watch, bool *success); + + quint32 queryAvailableEngines(bool *success); + quint32 queryRootContexts(const QmlDebugEngineReference &, + bool *success); + quint32 queryObject(const QmlDebugObjectReference &, + bool *success); + quint32 queryObjectRecursive(const QmlDebugObjectReference &, + bool *success); + quint32 queryExpressionResult(int objectDebugId, + const QString &expr, + bool *success); + quint32 setBindingForObject(int objectDebugId, const QString &propertyName, + const QVariant &bindingExpression, + bool isLiteralValue, + QString source, int line, bool *success); + quint32 resetBindingForObject(int objectDebugId, + const QString &propertyName, bool *success); + quint32 setMethodBody(int objectDebugId, const QString &methodName, + const QString &methodBody, bool *success); + + quint32 getId() { return m_nextId++; } + + void decode(QDataStream &, QmlDebugContextReference &); + void decode(QDataStream &, QmlDebugObjectReference &, bool simple); + + QList<QmlDebugEngineReference> engines() { return m_engines; } + QmlDebugContextReference rootContext() { return m_rootContext; } + QmlDebugObjectReference object() { return m_object; } + QVariant resultExpr() { return m_exprResult; } + bool valid() { return m_valid; } + +signals: + void newObjects(); + void valueChanged(QByteArray,QVariant); + void result(); + +protected: + void messageReceived(const QByteArray &); + +private: + quint32 m_nextId; + bool m_valid; + QList<QmlDebugEngineReference> m_engines; + QmlDebugContextReference m_rootContext; + QmlDebugObjectReference m_object; + QVariant m_exprResult; +}; + +#endif // QQMLENGINEDEBUGCLIENT_H |