aboutsummaryrefslogtreecommitdiffstats
path: root/libs/qmldebug/baseenginedebugclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/qmldebug/baseenginedebugclient.cpp')
-rw-r--r--libs/qmldebug/baseenginedebugclient.cpp451
1 files changed, 0 insertions, 451 deletions
diff --git a/libs/qmldebug/baseenginedebugclient.cpp b/libs/qmldebug/baseenginedebugclient.cpp
deleted file mode 100644
index 6e476692149..00000000000
--- a/libs/qmldebug/baseenginedebugclient.cpp
+++ /dev/null
@@ -1,451 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** 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 Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/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 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, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#include "baseenginedebugclient.h"
-#include "qmldebugconstants.h"
-
-namespace QmlDebug {
-
-struct QmlObjectData {
- QUrl url;
- int lineNumber;
- int columnNumber;
- QString idString;
- QString objectName;
- QString objectType;
- int objectId;
- int contextId;
-};
-
-QDataStream &operator>>(QDataStream &ds, QmlObjectData &data)
-{
- ds >> data.url >> data.lineNumber >> data.columnNumber >> data.idString
- >> data.objectName >> data.objectType >> data.objectId >> data.contextId;
- return ds;
-}
-
-struct QmlObjectProperty {
- enum Type { Unknown, Basic, Object, List, SignalProperty, Variant };
- Type type;
- QString name;
- QVariant value;
- QString valueTypeName;
- QString binding;
- bool hasNotifySignal;
-};
-
-QDataStream &operator>>(QDataStream &ds, QmlObjectProperty &data)
-{
- int type;
- ds >> type >> data.name >> data.value >> data.valueTypeName
- >> data.binding >> data.hasNotifySignal;
- data.type = (QmlObjectProperty::Type)type;
- return ds;
-}
-
-void BaseEngineDebugClient::decode(QDataStream &ds,
- ObjectReference &o,
- bool simple)
-{
- QmlObjectData data;
- ds >> data;
- int parentId = -1;
- // qt > 4.8.3
- if (objectName() != QLatin1String(Constants::QDECLARATIVE_ENGINE))
- ds >> parentId;
- o.m_debugId = data.objectId;
- o.m_className = data.objectType;
- o.m_idString = data.idString;
- o.m_name = data.objectName;
- o.m_source.m_url = data.url;
- o.m_source.m_lineNumber = data.lineNumber;
- o.m_source.m_columnNumber = data.columnNumber;
- o.m_contextDebugId = data.contextId;
- o.m_needsMoreData = simple;
- o.m_parentId = parentId;
-
- if (simple)
- return;
-
- int childCount;
- bool recur;
- ds >> childCount >> recur;
-
- for (int ii = 0; ii < childCount; ++ii) {
- o.m_children.append(ObjectReference());
- decode(ds, o.m_children.last(), !recur);
- }
-
- int propCount;
- ds >> propCount;
-
- for (int ii = 0; ii < propCount; ++ii) {
- QmlObjectProperty data;
- ds >> data;
- PropertyReference prop;
- prop.m_objectDebugId = o.m_debugId;
- prop.m_name = data.name;
- prop.m_binding = data.binding;
- prop.m_hasNotifySignal = data.hasNotifySignal;
- prop.m_valueTypeName = data.valueTypeName;
- switch (data.type) {
- case QmlObjectProperty::Basic:
- case QmlObjectProperty::List:
- case QmlObjectProperty::SignalProperty:
- case QmlObjectProperty::Variant:
- {
- prop.m_value = data.value;
- break;
- }
- case QmlObjectProperty::Object:
- {
- ObjectReference obj;
- obj.m_debugId = prop.m_value.toInt();
- prop.m_value = qVariantFromValue(obj);
- break;
- }
- case QmlObjectProperty::Unknown:
- break;
- }
- o.m_properties << prop;
- }
-}
-
-void BaseEngineDebugClient::decode(QDataStream &ds,
- QVariantList &o,
- bool simple)
-{
- int count;
- ds >> count;
- for (int i = 0; i < count; i++) {
- ObjectReference obj;
- decode(ds, obj, simple);
- o << QVariant::fromValue(obj);
- }
-}
-
-void BaseEngineDebugClient::decode(QDataStream &ds,
- ContextReference &c)
-{
- ds >> c.m_name >> c.m_debugId;
-
- int contextCount;
- ds >> contextCount;
-
- for (int ii = 0; ii < contextCount; ++ii) {
- c.m_contexts.append(ContextReference());
- decode(ds, c.m_contexts.last());
- }
-
- int objectCount;
- ds >> objectCount;
-
- for (int ii = 0; ii < objectCount; ++ii) {
- ObjectReference obj;
- decode(ds, obj, true);
- obj.m_contextDebugId = c.m_debugId;
- c.m_objects << obj;
- }
-}
-
-void BaseEngineDebugClient::statusChanged(ClientStatus status)
-{
- emit newStatus(status);
-}
-
-void BaseEngineDebugClient::messageReceived(const QByteArray &data)
-{
- QDataStream ds(data);
- int queryId;
- QByteArray type;
- ds >> type >> queryId;
-
- if (type == "OBJECT_CREATED") {
- int engineId;
- int objectId;
- int parentId;
- ds >> engineId >> objectId >> parentId;
- emit newObject(engineId, objectId, parentId);
- } else if (type == "LIST_ENGINES_R") {
- int count;
- ds >> count;
- QList<EngineReference> engines;
- for (int ii = 0; ii < count; ++ii) {
- EngineReference eng;
- ds >> eng.m_name;
- ds >> eng.m_debugId;
- engines << eng;
- }
- emit result(queryId, QVariant::fromValue(engines), type);
- } else if (type == "LIST_OBJECTS_R") {
- ContextReference rootContext;
- if (!ds.atEnd())
- decode(ds, rootContext);
- emit result(queryId, QVariant::fromValue(rootContext), type);
- } else if (type == "FETCH_OBJECT_R") {
- ObjectReference object;
- if (!ds.atEnd())
- decode(ds, object, false);
- emit result(queryId, QVariant::fromValue(object), type);
- } else if (type == "FETCH_OBJECTS_FOR_LOCATION_R") {
- QVariantList objects;
- if (!ds.atEnd())
- decode(ds, objects, false);
- emit result(queryId, objects, type);
- } else if (type == "EVAL_EXPRESSION_R") {;
- QVariant exprResult;
- ds >> exprResult;
- emit result(queryId, exprResult, type);
- } else if (type == "WATCH_PROPERTY_R" ||
- type == "WATCH_OBJECT_R" ||
- type == "WATCH_EXPR_OBJECT_R" ||
- type == "SET_BINDING_R" ||
- type == "RESET_BINDING_R" ||
- type == "SET_METHOD_BODY_R") {
- bool valid;
- ds >> valid;
- emit result(queryId, valid, type);
- } else if (type == "UPDATE_WATCH") {
- int debugId;
- QByteArray name;
- QVariant value;
- ds >> debugId >> name >> value;
- emit valueChanged(debugId, name, value);
- }
-}
-
-BaseEngineDebugClient::BaseEngineDebugClient(const QString &clientName,
- QmlDebugConnection *conn)
- : QmlDebugClient(clientName, conn),
- m_nextId(1)
-{
- setObjectName(clientName);
-}
-
-quint32 BaseEngineDebugClient::addWatch(const PropertyReference &property)
-{
- quint32 id = 0;
- if (status() == Enabled) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("WATCH_PROPERTY") << id << property.m_objectDebugId
- << property.m_name.toUtf8();
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::addWatch(const ContextReference &/*context*/,
- const QString &/*id*/)
-{
- qWarning("QmlEngineDebugClient::addWatch(): Not implemented");
- return 0;
-}
-
-quint32 BaseEngineDebugClient::addWatch(const ObjectReference &object,
- const QString &expr)
-{
- quint32 id = 0;
- if (status() == Enabled) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("WATCH_EXPR_OBJECT") << id << object.m_debugId << expr;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::addWatch(int objectDebugId)
-{
- quint32 id = 0;
- if (status() == Enabled) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("WATCH_OBJECT") << id << objectDebugId;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::addWatch(const FileReference &/*file*/)
-{
- qWarning("QmlEngineDebugClient::addWatch(): Not implemented");
- return 0;
-}
-
-void BaseEngineDebugClient::removeWatch(quint32 id)
-{
- if (status() == Enabled) {
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("NO_WATCH") << id;
- sendMessage(message);
- }
-}
-
-quint32 BaseEngineDebugClient::queryAvailableEngines()
-{
- quint32 id = 0;
- if (status() == Enabled) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("LIST_ENGINES") << id;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::queryRootContexts(const EngineReference &engine)
-{
- quint32 id = 0;
- if (status() == Enabled && engine.m_debugId != -1) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("LIST_OBJECTS") << id << engine.m_debugId;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::queryObject(int objectId)
-{
- quint32 id = 0;
- if (status() == Enabled && objectId != -1) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("FETCH_OBJECT") << id << objectId << false <<
- true;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::queryObjectRecursive(int objectId)
-{
- quint32 id = 0;
- if (status() == Enabled && objectId != -1) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("FETCH_OBJECT") << id << objectId << true <<
- true;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::queryExpressionResult(int objectDebugId,
- const QString &expr,
- int engineId)
-{
- quint32 id = 0;
- if (status() == Enabled && objectDebugId != -1) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("EVAL_EXPRESSION") << id << objectDebugId << expr
- << engineId;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::setBindingForObject(
- int objectDebugId,
- const QString &propertyName,
- const QVariant &bindingExpression,
- bool isLiteralValue,
- QString source, int line)
-{
- quint32 id = 0;
- if (status() == Enabled && objectDebugId != -1) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("SET_BINDING") << id << objectDebugId << propertyName
- << bindingExpression << isLiteralValue << source << line;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::resetBindingForObject(
- int objectDebugId,
- const QString &propertyName)
-{
- quint32 id = 0;
- if (status() == Enabled && objectDebugId != -1) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("RESET_BINDING") << id << objectDebugId << propertyName;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::setMethodBody(
- int objectDebugId, const QString &methodName,
- const QString &methodBody)
-{
- quint32 id = 0;
- if (status() == Enabled && objectDebugId != -1) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("SET_METHOD_BODY") << id << objectDebugId
- << methodName << methodBody;
- sendMessage(message);
- }
- return id;
-}
-
-quint32 BaseEngineDebugClient::queryObjectsForLocation(
- const QString &fileName, int lineNumber, int columnNumber)
-{
- quint32 id = 0;
- if (status() == Enabled) {
- id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("FETCH_OBJECTS_FOR_LOCATION") << id <<
- fileName << lineNumber << columnNumber << false <<
- true;
- sendMessage(message);
- }
- return id;
-}
-
-} // namespace QmlDebug