forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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_parentInstanceId(parentInstanceId),
|
||||||
m_childrenVector(children)
|
m_childrenVector(children),
|
||||||
|
m_informationVector(informationVector)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,11 +56,16 @@ qint32 ChildrenChangedCommand::parentInstanceId() const
|
|||||||
return m_parentInstanceId;
|
return m_parentInstanceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVector<InformationContainer> ChildrenChangedCommand::informations() const
|
||||||
|
{
|
||||||
|
return m_informationVector;
|
||||||
|
}
|
||||||
|
|
||||||
QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command)
|
QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command)
|
||||||
{
|
{
|
||||||
out << command.parentInstanceId();
|
out << command.parentInstanceId();
|
||||||
out << command.childrenInstances();
|
out << command.childrenInstances();
|
||||||
|
out << command.informations();
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,6 +73,7 @@ QDataStream &operator>>(QDataStream &in, ChildrenChangedCommand &command)
|
|||||||
{
|
{
|
||||||
in >> command.m_parentInstanceId;
|
in >> command.m_parentInstanceId;
|
||||||
in >> command.m_childrenVector;
|
in >> command.m_childrenVector;
|
||||||
|
in >> command.m_informationVector;
|
||||||
|
|
||||||
return in;
|
return in;
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
#include <QMetaType>
|
#include <QMetaType>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
#include "informationcontainer.h"
|
||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
@@ -44,14 +44,16 @@ class ChildrenChangedCommand
|
|||||||
friend QDataStream &operator>>(QDataStream &in, ChildrenChangedCommand &command);
|
friend QDataStream &operator>>(QDataStream &in, ChildrenChangedCommand &command);
|
||||||
public:
|
public:
|
||||||
ChildrenChangedCommand();
|
ChildrenChangedCommand();
|
||||||
ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &childrenInstances);
|
ChildrenChangedCommand(qint32 parentInstanceId, const QVector<qint32> &childrenInstancesconst, const QVector<InformationContainer> &informationVector);
|
||||||
|
|
||||||
QVector<qint32> childrenInstances() const;
|
QVector<qint32> childrenInstances() const;
|
||||||
qint32 parentInstanceId() const;
|
qint32 parentInstanceId() const;
|
||||||
|
QVector<InformationContainer> informations() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
qint32 m_parentInstanceId;
|
qint32 m_parentInstanceId;
|
||||||
QVector<qint32> m_childrenVector;
|
QVector<qint32> m_childrenVector;
|
||||||
|
QVector<InformationContainer> m_informationVector;
|
||||||
};
|
};
|
||||||
|
|
||||||
QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command);
|
QDataStream &operator<<(QDataStream &out, const ChildrenChangedCommand &command);
|
||||||
|
@@ -812,17 +812,7 @@ NodeInstanceClientInterface *NodeInstanceServer::nodeInstanceClient() const
|
|||||||
return m_nodeInstanceClient;
|
return m_nodeInstanceClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
ChildrenChangedCommand NodeInstanceServer::createChildrenChangedCommand(const ServerNodeInstance &parentInstance, const QList<ServerNodeInstance> &instanceList) const
|
static QVector<InformationContainer> createInformationVector(const QList<ServerNodeInstance> &instanceList, bool initial)
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
{
|
||||||
QVector<InformationContainer> informationVector;
|
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)
|
static bool supportedVariantType(QVariant::Type type)
|
||||||
|
@@ -170,20 +170,22 @@ void Qt4InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
informationChangedInstanceSet.subtract(m_parentChangedSet);
|
||||||
|
|
||||||
clearChangedPropertyList();
|
clearChangedPropertyList();
|
||||||
resetAllItems();
|
resetAllItems();
|
||||||
|
|
||||||
|
if (!m_parentChangedSet.isEmpty()) {
|
||||||
|
sendChildrenChangedCommand(m_parentChangedSet.toList());
|
||||||
|
m_parentChangedSet.clear();
|
||||||
|
}
|
||||||
|
|
||||||
if (!informationChangedInstanceSet.isEmpty())
|
if (!informationChangedInstanceSet.isEmpty())
|
||||||
nodeInstanceClient()->informationChanged(createAllInformationChangedCommand(informationChangedInstanceSet.toList()));
|
nodeInstanceClient()->informationChanged(createAllInformationChangedCommand(informationChangedInstanceSet.toList()));
|
||||||
|
|
||||||
if (!propertyChangedList.isEmpty())
|
if (!propertyChangedList.isEmpty())
|
||||||
nodeInstanceClient()->valuesChanged(createValuesChangedCommand(propertyChangedList));
|
nodeInstanceClient()->valuesChanged(createValuesChangedCommand(propertyChangedList));
|
||||||
|
|
||||||
if (!m_parentChangedSet.isEmpty()) {
|
|
||||||
sendChildrenChangedCommand(m_parentChangedSet.toList());
|
|
||||||
m_parentChangedSet.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (adjustSceneRect) {
|
if (adjustSceneRect) {
|
||||||
QRectF boundingRect = rootNodeInstance().boundingRect();
|
QRectF boundingRect = rootNodeInstance().boundingRect();
|
||||||
if (boundingRect.isValid()) {
|
if (boundingRect.isValid()) {
|
||||||
|
@@ -82,6 +82,7 @@ public:
|
|||||||
virtual void formEditorItemsChanged(const QList<FormEditorItem*> &itemList) = 0;
|
virtual void formEditorItemsChanged(const QList<FormEditorItem*> &itemList) = 0;
|
||||||
|
|
||||||
virtual void instancesCompleted(const QList<FormEditorItem*> &itemList) = 0;
|
virtual void instancesCompleted(const QList<FormEditorItem*> &itemList) = 0;
|
||||||
|
virtual void instancesParentChanged(const QList<FormEditorItem*> &itemList) = 0;
|
||||||
|
|
||||||
void setItems(const QList<FormEditorItem*> &itemList);
|
void setItems(const QList<FormEditorItem*> &itemList);
|
||||||
QList<FormEditorItem*> items() const;
|
QList<FormEditorItem*> items() const;
|
||||||
|
@@ -220,6 +220,10 @@ void AnchorTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AnchorTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
AnchorLineHandleItem* AnchorTool::topAnchorLineHandleItem(const QList<QGraphicsItem*> & itemList)
|
AnchorLineHandleItem* AnchorTool::topAnchorLineHandleItem(const QList<QGraphicsItem*> & itemList)
|
||||||
{
|
{
|
||||||
foreach (QGraphicsItem *item, itemList) {
|
foreach (QGraphicsItem *item, itemList) {
|
||||||
|
@@ -74,6 +74,8 @@ public:
|
|||||||
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
||||||
|
|
||||||
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
||||||
|
void instancesParentChanged(const QList<FormEditorItem *> &itemList);
|
||||||
|
|
||||||
|
|
||||||
static AnchorLineHandleItem* topAnchorLineHandleItem(const QList<QGraphicsItem*> & itemList);
|
static AnchorLineHandleItem* topAnchorLineHandleItem(const QList<QGraphicsItem*> & itemList);
|
||||||
|
|
||||||
|
@@ -217,6 +217,12 @@ void DragTool::instancesCompleted(const QList<FormEditorItem*> &itemList)
|
|||||||
QmlDesignerItemLibraryDragAndDrop::CustomDragAndDrop::hide();
|
QmlDesignerItemLibraryDragAndDrop::CustomDragAndDrop::hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DragTool::instancesParentChanged(const QList<FormEditorItem *> &itemList)
|
||||||
|
{
|
||||||
|
m_moveManipulator.synchronizeInstanceParent(itemList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DragTool::clearMoveDelay()
|
void DragTool::clearMoveDelay()
|
||||||
{
|
{
|
||||||
if (!m_blockMove)
|
if (!m_blockMove)
|
||||||
@@ -381,6 +387,7 @@ void DragTool::dragMoveEvent(QGraphicsSceneDragDropEvent * event)
|
|||||||
QTimer::singleShot(1000, m_timerHandler.data(), SLOT(clearMoveDelay()));
|
QTimer::singleShot(1000, m_timerHandler.data(), SLOT(clearMoveDelay()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event->mimeData()->hasFormat("application/vnd.bauhaus.libraryresource")) {
|
if (event->mimeData()->hasFormat("application/vnd.bauhaus.libraryresource")) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -86,6 +86,7 @@ public:
|
|||||||
void itemsAboutToRemoved(const QList<FormEditorItem*> &itemList);
|
void itemsAboutToRemoved(const QList<FormEditorItem*> &itemList);
|
||||||
|
|
||||||
void selectedItemsChanged(const QList<FormEditorItem*> &itemList);
|
void selectedItemsChanged(const QList<FormEditorItem*> &itemList);
|
||||||
|
void instancesParentChanged(const QList<FormEditorItem *> &itemList);
|
||||||
|
|
||||||
void updateMoveManipulator();
|
void updateMoveManipulator();
|
||||||
|
|
||||||
|
@@ -56,6 +56,7 @@
|
|||||||
#include <zoomaction.h>
|
#include <zoomaction.h>
|
||||||
#include <nodeabstractproperty.h>
|
#include <nodeabstractproperty.h>
|
||||||
#include <nodelistproperty.h>
|
#include <nodelistproperty.h>
|
||||||
|
#include <commondefines.h>
|
||||||
|
|
||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
@@ -502,6 +503,7 @@ void FormEditorView::instancesChildrenChanged(const QVector<ModelNode> &nodeList
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_currentTool->formEditorItemsChanged(itemNodeList);
|
m_currentTool->formEditorItemsChanged(itemNodeList);
|
||||||
|
m_currentTool->instancesParentChanged(itemNodeList);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormEditorView::rewriterBeginTransaction()
|
void FormEditorView::rewriterBeginTransaction()
|
||||||
|
@@ -145,6 +145,10 @@ void ItemCreatorTool::instancesCompleted(const QList<FormEditorItem*> &/*itemLis
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ItemCreatorTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void ItemCreatorTool::setItemString(const QString &itemString)
|
void ItemCreatorTool::setItemString(const QString &itemString)
|
||||||
{
|
{
|
||||||
m_itemString = itemString;
|
m_itemString = itemString;
|
||||||
|
@@ -71,6 +71,7 @@ public:
|
|||||||
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
||||||
|
|
||||||
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
||||||
|
void instancesParentChanged(const QList<FormEditorItem *> &itemList);
|
||||||
|
|
||||||
void setItemString(const QString &itemString);
|
void setItemString(const QString &itemString);
|
||||||
|
|
||||||
|
@@ -88,6 +88,24 @@ void MoveManipulator::setItems(const QList<FormEditorItem*> &itemList)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MoveManipulator::synchronizeInstanceParent(const QList<FormEditorItem*> &itemList)
|
||||||
|
{
|
||||||
|
if (m_view->model()) {
|
||||||
|
foreach (FormEditorItem *item, itemList) {
|
||||||
|
if (m_itemList.contains(item)) {
|
||||||
|
QmlItemNode parentItemNode = QmlItemNode(item->qmlItemNode().instanceParent());
|
||||||
|
if (parentItemNode.isValid()) {
|
||||||
|
m_snapper.setContainerFormEditorItem(m_view->scene()->itemForQmlItemNode(parentItemNode));
|
||||||
|
m_snapper.setTransformtionSpaceFormEditorItem(m_snapper.containerFormEditorItem());
|
||||||
|
m_snapper.updateSnappingLines(m_itemList);
|
||||||
|
updateHashes();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MoveManipulator::updateHashes()
|
void MoveManipulator::updateHashes()
|
||||||
{
|
{
|
||||||
// foreach (FormEditorItem* item, m_itemList)
|
// foreach (FormEditorItem* item, m_itemList)
|
||||||
@@ -344,13 +362,6 @@ void MoveManipulator::reparentTo(FormEditorItem *newParent)
|
|||||||
item->qmlItemNode().setParentProperty(parent.nodeAbstractProperty("data"));
|
item->qmlItemNode().setParentProperty(parent.nodeAbstractProperty("data"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_view->model()) {
|
|
||||||
m_snapper.setContainerFormEditorItem(newParent);
|
|
||||||
m_snapper.setTransformtionSpaceFormEditorItem(m_snapper.containerFormEditorItem());
|
|
||||||
m_snapper.updateSnappingLines(m_itemList);
|
|
||||||
updateHashes();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -69,6 +69,7 @@ public:
|
|||||||
~MoveManipulator();
|
~MoveManipulator();
|
||||||
void setItems(const QList<FormEditorItem*> &itemList);
|
void setItems(const QList<FormEditorItem*> &itemList);
|
||||||
void setItem(FormEditorItem* item);
|
void setItem(FormEditorItem* item);
|
||||||
|
void synchronizeInstanceParent(const QList<FormEditorItem*> &itemList);
|
||||||
|
|
||||||
void begin(const QPointF& beginPoint);
|
void begin(const QPointF& beginPoint);
|
||||||
void update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated = UseActualState);
|
void update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated = UseActualState);
|
||||||
|
@@ -256,6 +256,11 @@ void MoveTool::instancesCompleted(const QList<FormEditorItem*> & /*itemList*/)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MoveTool::instancesParentChanged(const QList<FormEditorItem *> &itemList)
|
||||||
|
{
|
||||||
|
m_moveManipulator.synchronizeInstanceParent(itemList);
|
||||||
|
}
|
||||||
|
|
||||||
bool MoveTool::haveSameParent(const QList<FormEditorItem*> &itemList)
|
bool MoveTool::haveSameParent(const QList<FormEditorItem*> &itemList)
|
||||||
{
|
{
|
||||||
if (itemList.isEmpty())
|
if (itemList.isEmpty())
|
||||||
|
@@ -67,7 +67,8 @@ public:
|
|||||||
|
|
||||||
void selectedItemsChanged(const QList<FormEditorItem*> &itemList);
|
void selectedItemsChanged(const QList<FormEditorItem*> &itemList);
|
||||||
|
|
||||||
void instancesCompleted(const QList<FormEditorItem*> &/*itemList*/);
|
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
||||||
|
void instancesParentChanged(const QList<FormEditorItem *> &itemList);
|
||||||
|
|
||||||
void updateMoveManipulator();
|
void updateMoveManipulator();
|
||||||
|
|
||||||
|
@@ -200,4 +200,10 @@ void ResizeTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ResizeTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -67,9 +67,11 @@ public:
|
|||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
||||||
|
void instancesParentChanged(const QList<FormEditorItem *> &itemList);
|
||||||
|
|
||||||
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SelectionIndicator m_selectionIndicator;
|
SelectionIndicator m_selectionIndicator;
|
||||||
ResizeIndicator m_resizeIndicator;
|
ResizeIndicator m_resizeIndicator;
|
||||||
|
@@ -275,6 +275,11 @@ void SelectionTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SelectionTool::instancesParentChanged(const QList<FormEditorItem *> &/*itemList*/)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void SelectionTool::selectUnderPoint(QGraphicsSceneMouseEvent *event)
|
void SelectionTool::selectUnderPoint(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
m_singleSelectionManipulator.begin(event->scenePos());
|
m_singleSelectionManipulator.begin(event->scenePos());
|
||||||
|
@@ -80,6 +80,8 @@ public:
|
|||||||
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
void formEditorItemsChanged(const QList<FormEditorItem*> &itemList);
|
||||||
|
|
||||||
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
void instancesCompleted(const QList<FormEditorItem*> &itemList);
|
||||||
|
void instancesParentChanged(const QList<FormEditorItem *> &itemList);
|
||||||
|
|
||||||
|
|
||||||
void selectUnderPoint(QGraphicsSceneMouseEvent *event);
|
void selectUnderPoint(QGraphicsSceneMouseEvent *event);
|
||||||
|
|
||||||
|
@@ -69,6 +69,7 @@ class ChangeIdsCommand;
|
|||||||
class RemoveInstancesCommand;
|
class RemoveInstancesCommand;
|
||||||
class RemovePropertiesCommand;
|
class RemovePropertiesCommand;
|
||||||
class CompleteComponentCommand;
|
class CompleteComponentCommand;
|
||||||
|
class InformationContainer;
|
||||||
|
|
||||||
class CORESHARED_EXPORT NodeInstanceView : public AbstractView, public NodeInstanceClientInterface
|
class CORESHARED_EXPORT NodeInstanceView : public AbstractView, public NodeInstanceClientInterface
|
||||||
{
|
{
|
||||||
@@ -161,6 +162,8 @@ private: // functions
|
|||||||
void clearStateInstance();
|
void clearStateInstance();
|
||||||
|
|
||||||
NodeInstanceServerInterface *nodeInstanceServer() const;
|
NodeInstanceServerInterface *nodeInstanceServer() const;
|
||||||
|
QMultiHash<ModelNode, InformationName> informationChanged(const QVector<InformationContainer> &containerVector);
|
||||||
|
|
||||||
|
|
||||||
CreateSceneCommand createCreateSceneCommand();
|
CreateSceneCommand createCreateSceneCommand();
|
||||||
ClearSceneCommand createClearSceneCommand() const;
|
ClearSceneCommand createClearSceneCommand() const;
|
||||||
|
@@ -1058,14 +1058,11 @@ void NodeInstanceView::pixmapChanged(const PixmapChangedCommand &command)
|
|||||||
emitInstancesRenderImageChanged(renderImageChangeSet.toList().toVector());
|
emitInstancesRenderImageChanged(renderImageChangeSet.toList().toVector());
|
||||||
}
|
}
|
||||||
|
|
||||||
void NodeInstanceView::informationChanged(const InformationChangedCommand &command)
|
QMultiHash<ModelNode, InformationName> NodeInstanceView::informationChanged(const QVector<InformationContainer> &containerVector)
|
||||||
{
|
{
|
||||||
if (!model())
|
|
||||||
return;
|
|
||||||
|
|
||||||
QMultiHash<ModelNode, InformationName> informationChangeHash;
|
QMultiHash<ModelNode, InformationName> informationChangeHash;
|
||||||
|
|
||||||
foreach(const InformationContainer &container, command.informations()) {
|
foreach (const InformationContainer &container, containerVector) {
|
||||||
if (hasInstanceForId(container.instanceId())) {
|
if (hasInstanceForId(container.instanceId())) {
|
||||||
NodeInstance instance = instanceForId(container.instanceId());
|
NodeInstance instance = instanceForId(container.instanceId());
|
||||||
if (instance.isValid()) {
|
if (instance.isValid()) {
|
||||||
@@ -1076,6 +1073,16 @@ void NodeInstanceView::informationChanged(const InformationChangedCommand &comma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return informationChangeHash;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NodeInstanceView::informationChanged(const InformationChangedCommand &command)
|
||||||
|
{
|
||||||
|
if (!model())
|
||||||
|
return;
|
||||||
|
|
||||||
|
QMultiHash<ModelNode, InformationName> informationChangeHash = informationChanged(command.informations());
|
||||||
|
|
||||||
if (!informationChangeHash.isEmpty())
|
if (!informationChangeHash.isEmpty())
|
||||||
emitInstanceInformationsChange(informationChangeHash);
|
emitInstanceInformationsChange(informationChangeHash);
|
||||||
}
|
}
|
||||||
@@ -1138,6 +1145,7 @@ void NodeInstanceView::childrenChanged(const ChildrenChangedCommand &command)
|
|||||||
if (!model())
|
if (!model())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
QVector<ModelNode> childNodeVector;
|
QVector<ModelNode> childNodeVector;
|
||||||
|
|
||||||
foreach(qint32 instanceId, command.childrenInstances()) {
|
foreach(qint32 instanceId, command.childrenInstances()) {
|
||||||
@@ -1148,6 +1156,11 @@ void NodeInstanceView::childrenChanged(const ChildrenChangedCommand &command)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QMultiHash<ModelNode, InformationName> informationChangeHash = informationChanged(command.informations());
|
||||||
|
|
||||||
|
if (!informationChangeHash.isEmpty())
|
||||||
|
emitInstanceInformationsChange(informationChangeHash);
|
||||||
|
|
||||||
if (!childNodeVector.isEmpty())
|
if (!childNodeVector.isEmpty())
|
||||||
emitInstancesChildrenChanged(childNodeVector);
|
emitInstancesChildrenChanged(childNodeVector);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user