From 18d34fef04c540ec3ef3e29e55d545f7f5afdaf8 Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@digia.com>
Date: Thu, 27 Sep 2012 16:31:03 +0200
Subject: [PATCH] QmlDesigner.NodeInstances: Share NodeInstanceClientProxy
 between puppets

Change-Id: I49ffa49e45d12950150bedfa8452de4c89674ef8
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
---
 .../qml/qmlpuppet/instances/instances.pri     |   5 +
 .../instances/nodeinstanceclientproxy.cpp     |   0
 .../instances/nodeinstanceclientproxy.h       |   0
 .../qml2puppet/instances/instances.pri        |   2 -
 .../qml/qmlpuppet/qml2puppet/qml2puppet.pro   |   1 +
 .../qmlpuppet/instances/instances.pri         |   2 -
 .../instances/nodeinstanceclientproxy.h       | 120 ------------------
 .../qml/qmlpuppet/qmlpuppet/qmlpuppet.pri     |   1 +
 8 files changed, 7 insertions(+), 124 deletions(-)
 create mode 100644 share/qtcreator/qml/qmlpuppet/instances/instances.pri
 rename share/qtcreator/qml/qmlpuppet/{qml2puppet => }/instances/nodeinstanceclientproxy.cpp (100%)
 rename share/qtcreator/qml/qmlpuppet/{qml2puppet => }/instances/nodeinstanceclientproxy.h (100%)
 delete mode 100644 share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/nodeinstanceclientproxy.h

diff --git a/share/qtcreator/qml/qmlpuppet/instances/instances.pri b/share/qtcreator/qml/qmlpuppet/instances/instances.pri
new file mode 100644
index 00000000000..daf1d3ed51b
--- /dev/null
+++ b/share/qtcreator/qml/qmlpuppet/instances/instances.pri
@@ -0,0 +1,5 @@
+INCLUDEPATH += $$PWD/
+
+HEADERS += $$PWD/nodeinstanceclientproxy.h
+
+SOURCES +=  $$PWD/nodeinstanceclientproxy.cpp
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceclientproxy.cpp b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.cpp
similarity index 100%
rename from share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceclientproxy.cpp
rename to share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.cpp
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceclientproxy.h b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.h
similarity index 100%
rename from share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceclientproxy.h
rename to share/qtcreator/qml/qmlpuppet/instances/nodeinstanceclientproxy.h
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri
index 8dc3d80a4b6..5cb63be7393 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/instances.pri
@@ -11,7 +11,6 @@ HEADERS += $$PWD/dummycontextobject.h
 HEADERS += $$PWD/childrenchangeeventfilter.h
 HEADERS += $$PWD/componentnodeinstance.h
 HEADERS += $$PWD/dummynodeinstance.h
-HEADERS += $$PWD/nodeinstanceclientproxy.h
 HEADERS += $$PWD/nodeinstancemetaobject.h
 HEADERS += $$PWD/nodeinstanceserver.h
 HEADERS += $$PWD/nodeinstancesignalspy.h
@@ -33,7 +32,6 @@ SOURCES +=  $$PWD/dummycontextobject.cpp
 SOURCES +=  $$PWD/childrenchangeeventfilter.cpp
 SOURCES +=  $$PWD/componentnodeinstance.cpp
 SOURCES +=  $$PWD/dummynodeinstance.cpp
-SOURCES +=  $$PWD/nodeinstanceclientproxy.cpp
 SOURCES +=  $$PWD/nodeinstancemetaobject.cpp
 SOURCES +=  $$PWD/nodeinstanceserver.cpp
 SOURCES +=  $$PWD/nodeinstancesignalspy.cpp
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pro b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pro
index 4d0ebb4c0ce..dbdeb2b9c7d 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pro
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pro
@@ -15,6 +15,7 @@ include(../../../../../qtcreator.pri)
 DESTDIR = $$[QT_INSTALL_BINS]
 include(../../../../../src/rpath.pri)
 
+include (../instances/instances.pri)
 include (instances/instances.pri)
 include (../commands/commands.pri)
 include (../container/container.pri)
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/instances.pri b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/instances.pri
index 19dd955dadc..ff2d2b91b0d 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/instances.pri
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/instances.pri
@@ -13,7 +13,6 @@ HEADERS += $$PWD/dummycontextobject.h
 HEADERS += $$PWD/childrenchangeeventfilter.h
 HEADERS += $$PWD/componentnodeinstance.h
 HEADERS += $$PWD/dummynodeinstance.h
-HEADERS += $$PWD/nodeinstanceclientproxy.h
 HEADERS += $$PWD/nodeinstancemetaobject.h
 HEADERS += $$PWD/nodeinstanceserver.h
 HEADERS += $$PWD/nodeinstancesignalspy.h
@@ -37,7 +36,6 @@ SOURCES +=  $$PWD/dummycontextobject.cpp
 SOURCES +=  $$PWD/childrenchangeeventfilter.cpp
 SOURCES +=  $$PWD/componentnodeinstance.cpp
 SOURCES +=  $$PWD/dummynodeinstance.cpp
-SOURCES +=  $$PWD/nodeinstanceclientproxy.cpp
 SOURCES +=  $$PWD/nodeinstancemetaobject.cpp
 SOURCES +=  $$PWD/nodeinstanceserver.cpp
 SOURCES +=  $$PWD/nodeinstancesignalspy.cpp
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/nodeinstanceclientproxy.h b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/nodeinstanceclientproxy.h
deleted file mode 100644
index 54b56d02677..00000000000
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/nodeinstanceclientproxy.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: http://www.qt-project.org/
-**
-**
-** 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.
-**
-** 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.
-**
-**
-**************************************************************************/
-
-#ifndef NODEINSTANCECLIENTPROXY_H
-#define NODEINSTANCECLIENTPROXY_H
-
-#include "nodeinstanceclientinterface.h"
-
-#include <QObject>
-#include <QHash>
-#include <QWeakPointer>
-
-QT_BEGIN_NAMESPACE
-class QLocalSocket;
-QT_END_NAMESPACE
-
-namespace QmlDesigner {
-
-class NodeInstanceServerInterface;
-class CreateSceneCommand;
-class CreateInstancesCommand;
-class ClearSceneCommand;
-class ReparentInstancesCommand;
-class ChangeFileUrlCommand;
-class ChangeValuesCommand;
-class ChangeAuxiliaryCommand;
-class ChangeBindingsCommand;
-class ChangeIdsCommand;
-class RemoveInstancesCommand;
-class RemovePropertiesCommand;
-class CompleteComponentCommand;
-class ChangeStateCommand;
-class ChangeNodeSourceCommand;
-
-
-class NodeInstanceClientProxy : public QObject, public NodeInstanceClientInterface
-{
-    Q_OBJECT
-
-public:
-    NodeInstanceClientProxy(QObject *parent = 0);
-
-    void informationChanged(const InformationChangedCommand &command);
-    void valuesChanged(const ValuesChangedCommand &command);
-    void pixmapChanged(const PixmapChangedCommand &command);
-    void childrenChanged(const ChildrenChangedCommand &command);
-    void statePreviewImagesChanged(const StatePreviewImageChangedCommand &command);
-    void componentCompleted(const ComponentCompletedCommand &command);    
-    void token(const TokenCommand &command);
-
-    void flush();
-    void synchronizeWithClientProcess();
-    qint64 bytesToWrite() const;
-
-protected:
-    void initializeSocket();
-    void writeCommand(const QVariant &command);
-    void dispatchCommand(const QVariant &command);
-    NodeInstanceServerInterface *nodeInstanceServer() const;
-    void setNodeInstanceServer(NodeInstanceServerInterface *nodeInstanceServer);
-
-    void createInstances(const CreateInstancesCommand &command);
-    void changeFileUrl(const ChangeFileUrlCommand &command);
-    void createScene(const CreateSceneCommand &command);
-    void clearScene(const ClearSceneCommand &command);
-    void removeInstances(const RemoveInstancesCommand &command);
-    void removeProperties(const RemovePropertiesCommand &command);
-    void changePropertyBindings(const ChangeBindingsCommand &command);
-    void changePropertyValues(const ChangeValuesCommand &command);
-    void changeAuxiliaryValues(const ChangeAuxiliaryCommand &command);
-    void reparentInstances(const ReparentInstancesCommand &command);
-    void changeIds(const ChangeIdsCommand &command);
-    void changeState(const ChangeStateCommand &command);
-    void completeComponent(const CompleteComponentCommand &command);
-    void changeNodeSource(const ChangeNodeSourceCommand &command);
-    void removeSharedMemory(const RemoveSharedMemoryCommand &command);
-    void redirectToken(const TokenCommand &command);
-
-private slots:
-    void readDataStream();
-
-private:
-    QLocalSocket *m_socket;
-    NodeInstanceServerInterface *m_nodeInstanceServer;
-    quint32 m_blockSize;
-    quint32 m_writeCommandCounter;
-    quint32 m_lastReadCommandCounter;
-    int m_synchronizeId;
-};
-
-} // namespace QmlDesigner
-
-#endif // NODEINSTANCECLIENTPROXY_H
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppet.pri b/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppet.pri
index 4d92c176829..30944a7ae32 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppet.pri
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppet.pri
@@ -16,6 +16,7 @@ greaterThan(QT_MAJOR_VERSION, 4) {
 
 DEFINES += QWEAKPOINTER_ENABLE_ARROW
 
+include (../instances/instances.pri)
 include (instances/instances.pri)
 include (../commands/commands.pri)
 include (../container/container.pri)
-- 
GitLab