summaryrefslogtreecommitdiff
path: root/share/qtcreator/qml
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2011-06-30 17:30:17 +0200
committerThomas Hartmann <Thomas.Hartmann@nokia.com>2011-06-30 17:36:09 +0200
commit3cfa37624395d23d48fddb7e91e83168fe1dfc3f (patch)
treede29095349cbc510f79a5470ea89450af77ea6c7 /share/qtcreator/qml
parentb18ef1ffb240506368459845fe1b9e932a49b44c (diff)
downloadqt-creator-3cfa37624395d23d48fddb7e91e83168fe1dfc3f.tar.gz
QmlDesigner: Fix wrong position for reparenting
Change-Id: Ie9d9a739e559d5cfc06849ff3e5c086e9ab2224c DoneBy: Marco Bubke Task-number: QTCREATORBUG-3962 Reviewed-on: http://codereview.qt.nokia.com/958 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Diffstat (limited to 'share/qtcreator/qml')
-rw-r--r--share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp13
-rw-r--r--share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h6
-rw-r--r--share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp30
-rw-r--r--share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp12
4 files changed, 39 insertions, 22 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp
index 7559998c81..502778d3f6 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp
+++ b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.cpp
@@ -39,9 +39,10 @@ ChildrenChangedCommand::ChildrenChangedCommand()
{
}
-ChildrenChangedCommand::ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &children)
+ChildrenChangedCommand::ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &children, const QVector<InformationContainer> &informationVector)
: m_parentInstanceId(parentInstanceId),
- m_childrenVector(children)
+ m_childrenVector(children),
+ m_informationVector(informationVector)
{
}
@@ -55,11 +56,16 @@ qint32 ChildrenChangedCommand::parentInstanceId() const
return m_parentInstanceId;
}
+QVector<InformationContainer> ChildrenChangedCommand::informations() const
+{
+ return m_informationVector;
+}
+
QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command)
{
out << command.parentInstanceId();
out << command.childrenInstances();
-
+ out << command.informations();
return out;
}
@@ -67,6 +73,7 @@ QDataStream &operator>>(QDataStream &in, ChildrenChangedCommand &command)
{
in >> command.m_parentInstanceId;
in >> command.m_childrenVector;
+ in >> command.m_informationVector;
return in;
}
diff --git a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h
index 8441c852a1..e89d88a4a0 100644
--- a/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h
+++ b/share/qtcreator/qml/qmlpuppet/commands/childrenchangedcommand.h
@@ -35,7 +35,7 @@
#include <QMetaType>
#include <QVector>
-
+#include "informationcontainer.h"
namespace QmlDesigner {
@@ -44,14 +44,16 @@ class ChildrenChangedCommand
friend QDataStream &operator>>(QDataStream &in, ChildrenChangedCommand &command);
public:
ChildrenChangedCommand();
- ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &childrenInstances);
+ ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &childrenInstancesconst, const QVector<InformationContainer> &informationVector);
QVector<qint32> childrenInstances() const;
qint32 parentInstanceId() const;
+ QVector<InformationContainer> informations() const;
private:
qint32 m_parentInstanceId;
QVector<qint32> m_childrenVector;
+ QVector<InformationContainer> m_informationVector;
};
QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command);
diff --git a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp
index 7c5e49fd71..84f7d8fcd2 100644
--- a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp
@@ -812,17 +812,7 @@ NodeInstanceClientInterface *NodeInstanceServer::nodeInstanceClient() const
return m_nodeInstanceClient;
}
-ChildrenChangedCommand NodeInstanceServer::createChildrenChangedCommand(const ServerNodeInstance &parentInstance, const QList<ServerNodeInstance> &instanceList) const
-{
- QVector<qint32> instanceVector;
-
- foreach (const ServerNodeInstance &instance, instanceList)
- instanceVector.append(instance.instanceId());
-
- return ChildrenChangedCommand(parentInstance.instanceId(), instanceVector);
-}
-
-InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand(const QList<ServerNodeInstance> &instanceList, bool initial) const
+static QVector<InformationContainer> createInformationVector(const QList<ServerNodeInstance> &instanceList, bool initial)
{
QVector<InformationContainer> informationVector;
@@ -894,7 +884,23 @@ InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand
}
- return InformationChangedCommand(informationVector);
+ return informationVector;
+}
+
+
+ChildrenChangedCommand NodeInstanceServer::createChildrenChangedCommand(const ServerNodeInstance &parentInstance, const QList<ServerNodeInstance> &instanceList) const
+{
+ QVector<qint32> instanceVector;
+
+ foreach (const ServerNodeInstance &instance, instanceList)
+ instanceVector.append(instance.instanceId());
+
+ return ChildrenChangedCommand(parentInstance.instanceId(), instanceVector, createInformationVector(instanceList, false));
+}
+
+InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand(const QList<ServerNodeInstance> &instanceList, bool initial) const
+{
+ return InformationChangedCommand(createInformationVector(instanceList, initial));
}
static bool supportedVariantType(QVariant::Type type)
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp
index ab8831d116..14cfabb1bc 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qt4informationnodeinstanceserver.cpp
@@ -170,20 +170,22 @@ void Qt4InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
}
}
+ informationChangedInstanceSet.subtract(m_parentChangedSet);
+
clearChangedPropertyList();
resetAllItems();
+ if (!m_parentChangedSet.isEmpty()) {
+ sendChildrenChangedCommand(m_parentChangedSet.toList());
+ m_parentChangedSet.clear();
+ }
+
if (!informationChangedInstanceSet.isEmpty())
nodeInstanceClient()->informationChanged(createAllInformationChangedCommand(informationChangedInstanceSet.toList()));
if (!propertyChangedList.isEmpty())
nodeInstanceClient()->valuesChanged(createValuesChangedCommand(propertyChangedList));
- if (!m_parentChangedSet.isEmpty()) {
- sendChildrenChangedCommand(m_parentChangedSet.toList());
- m_parentChangedSet.clear();
- }
-
if (adjustSceneRect) {
QRectF boundingRect = rootNodeInstance().boundingRect();
if (boundingRect.isValid()) {