From ae409f8bdf070cc7875da1896abcdaa077f5e932 Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@digia.com>
Date: Tue, 12 Mar 2013 15:22:05 +0100
Subject: [PATCH] QmlDesigner: Remove NodeInstancesSignalSpy

Not anymore needed.

Change-Id: Ia1f4d20138b43184b78fd4f39c391af524072dd2
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
---
 .../qml2puppet/instances/instances.pri        |   2 -
 .../instances/nodeinstancesignalspy.cpp       | 125 ------------------
 .../instances/nodeinstancesignalspy.h         |  69 ----------
 .../instances/objectnodeinstance.cpp          |   2 -
 .../qml2puppet/instances/objectnodeinstance.h |   2 -
 5 files changed, 200 deletions(-)
 delete mode 100644 share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.cpp
 delete mode 100644 share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.h

diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri
index 28a733cf669..77af6b59ee9 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri
@@ -13,7 +13,6 @@ HEADERS += $$PWD/componentnodeinstance.h
 HEADERS += $$PWD/dummynodeinstance.h
 HEADERS += $$PWD/nodeinstancemetaobject.h
 HEADERS += $$PWD/nodeinstanceserver.h
-HEADERS += $$PWD/nodeinstancesignalspy.h
 HEADERS += $$PWD/objectnodeinstance.h
 HEADERS += $$PWD/qmlpropertychangesnodeinstance.h
 HEADERS += $$PWD/qmlstatenodeinstance.h
@@ -35,7 +34,6 @@ SOURCES +=  $$PWD/componentnodeinstance.cpp
 SOURCES +=  $$PWD/dummynodeinstance.cpp
 SOURCES +=  $$PWD/nodeinstancemetaobject.cpp
 SOURCES +=  $$PWD/nodeinstanceserver.cpp
-SOURCES +=  $$PWD/nodeinstancesignalspy.cpp
 SOURCES +=  $$PWD/objectnodeinstance.cpp
 SOURCES +=  $$PWD/qmlpropertychangesnodeinstance.cpp
 SOURCES +=  $$PWD/qmlstatenodeinstance.cpp
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.cpp
deleted file mode 100644
index 40de94aecc0..00000000000
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.cpp
+++ /dev/null
@@ -1,125 +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 "nodeinstancesignalspy.h"
-#include "objectnodeinstance.h"
-
-#include <QMetaProperty>
-#include <QMetaObject>
-#include <QDebug>
-#include <QSharedPointer>
-#include <private/qqmlmetatype_p.h>
-
-namespace QmlDesigner {
-namespace Internal {
-
-NodeInstanceSignalSpy::NodeInstanceSignalSpy() :
-    QObject()
-{
-    blockSignals(true);
-}
-
-void NodeInstanceSignalSpy::setObjectNodeInstance(const ObjectNodeInstance::Pointer &nodeInstance)
-{
-    methodeOffset = QObject::staticMetaObject.methodCount() + 1;
-    registerObject(nodeInstance->object());
-    m_objectNodeInstance = nodeInstance;
-
-}
-
-void NodeInstanceSignalSpy::registerObject(QObject *spiedObject, const PropertyName &prefix)
-{
-    if (m_registeredObjectList.contains(spiedObject)) // prevent cycles
-        return;
-
-    m_registeredObjectList.append(spiedObject);
-    for (int index = QObject::staticMetaObject.propertyOffset();
-         index < spiedObject->metaObject()->propertyCount();
-         index++) {
-             QMetaProperty metaProperty = spiedObject->metaObject()->property(index);
-
-             // handle dot properties and connect the signals to the object
-             if (metaProperty.isReadable()
-                 && !metaProperty.isWritable()
-                 && QQmlMetaType::isQObject(metaProperty.userType())) {
-                  QObject *propertyObject = QQmlMetaType::toQObject(metaProperty.read(spiedObject));
-                  if (propertyObject)
-                      registerObject(propertyObject, prefix + metaProperty.name() + '.');
-             } else if (metaProperty.hasNotifySignal()) {
-                 QMetaMethod metaMethod = metaProperty.notifySignal();
-                 bool isConnecting = QMetaObject::connect(spiedObject, metaMethod.methodIndex(), this, methodeOffset, Qt::DirectConnection);
-                 Q_ASSERT(isConnecting);
-                 Q_UNUSED(isConnecting);
-                 m_indexPropertyHash.insert(methodeOffset, prefix + metaProperty.name());
-                 methodeOffset++;
-             }
-
-             // search recursive in objects
-             if (metaProperty.isReadable()
-                     && metaProperty.isWritable()
-                     && QQmlMetaType::isQObject(metaProperty.userType())
-                     && QLatin1String(metaProperty.name()) != QLatin1String("parent")) {
-                 QObject *propertyObject = QQmlMetaType::toQObject(metaProperty.read(spiedObject));
-                 if (propertyObject)
-                     registerObject(propertyObject, prefix + metaProperty.name() + '/');
-             }
-
-             // search recursive in objects list
-             if (metaProperty.isReadable()
-                 && QQmlMetaType::isList(metaProperty.userType())) {
-                 QQmlListReference list(spiedObject, metaProperty.name());
-
-                 if (list.canCount() && list.canAt()) {
-
-                     for (int i = 0; i < list.count(); i++) {
-                         QObject *propertyObject = list.at(i);
-                         if (propertyObject)
-                             registerObject(propertyObject, prefix + metaProperty.name() + '/');
-                     }
-                 }
-             }
-         }
-}
-
-int NodeInstanceSignalSpy::qt_metacall(QMetaObject::Call call, int methodId, void **a)
-{
-    if (call == QMetaObject::InvokeMetaMethod && methodId > QObject::staticMetaObject.methodCount()) {
-        ObjectNodeInstance::Pointer nodeInstance = m_objectNodeInstance.toStrongRef();
-
-        if (nodeInstance && nodeInstance->nodeInstanceServer() && nodeInstance->isValid()) {
-            nodeInstance->nodeInstanceServer()->notifyPropertyChange(nodeInstance->instanceId(), m_indexPropertyHash.value(methodId));
-        }
-
-    }
-
-    return QObject::qt_metacall(call, methodId, a);
-}
-
-} // namespace Internal
-} // namespace QmlDesigner
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.h
deleted file mode 100644
index 8c1bb7c059b..00000000000
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.h
+++ /dev/null
@@ -1,69 +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.
-**
-****************************************************************************/
-
-#ifndef NODEINSTANCESIGNALSPY_H
-#define NODEINSTANCESIGNALSPY_H
-
-#include <QObject>
-#include <QHash>
-#include <QSharedPointer>
-
-#include "nodeinstanceglobal.h"
-
-namespace QmlDesigner {
-
-namespace Internal {
-
-class ObjectNodeInstance;
-typedef QSharedPointer<ObjectNodeInstance> ObjectNodeInstancePointer;
-typedef QWeakPointer<ObjectNodeInstance> ObjectNodeInstanceWeakPointer;
-
-class NodeInstanceSignalSpy : public QObject
-{
-public:
-    explicit NodeInstanceSignalSpy();
-
-    void setObjectNodeInstance(const ObjectNodeInstancePointer &nodeInstance);
-
-    virtual int qt_metacall(QMetaObject::Call, int, void **);
-
-protected:
-    void registerObject(QObject *spiedObject, const PropertyName &prefix = PropertyName());
-
-private:
-    int methodeOffset;
-    QHash<int, PropertyName> m_indexPropertyHash;
-    QObjectList m_registeredObjectList;
-    ObjectNodeInstanceWeakPointer m_objectNodeInstance;
-};
-
-} // namespace Internal
-} // namespace QmlDesigner
-
-#endif // NODEINSTANCESIGNALSPY_H
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
index b95d65e7af3..6cc9ce3477a 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
@@ -141,8 +141,6 @@ void ObjectNodeInstance::initializePropertyWatcher(const ObjectNodeInstance::Poi
             }
         }
     }
-
-    m_signalSpy.setObjectNodeInstance(objectNodeInstance);
 }
 
 void ObjectNodeInstance::initialize(const ObjectNodeInstance::Pointer &objectNodeInstance)
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h
index 37dedba94b8..e4aa1d99c0c 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h
@@ -32,7 +32,6 @@
 
 #include "nodeinstanceserver.h"
 #include "nodeinstancemetaobject.h"
-#include "nodeinstancesignalspy.h"
 
 #include <QPainter>
 #include <QSharedPointer>
@@ -198,7 +197,6 @@ private:
 
     QPointer<QObject> m_object;
     NodeInstanceMetaObject *m_metaObject;
-    NodeInstanceSignalSpy m_signalSpy;
     qint32 m_instanceId;
     bool m_deleteHeldInstance;
     bool m_isInPositioner;
-- 
GitLab