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