Commit 2d4b5fcb authored by Marco Bubke's avatar Marco Bubke Committed by Thomas Hartmann

QmlDesigner: Fix slowness for many items

The information change notifier provided no hint which infotmation changed.
So the property editor has updated the anchors for all information changes.
Now there is a hint and the update is only happen for a anchor change.

Change-Id: I3b6d7546f43bce4c08757662e7af32604a8db56f
Reviewed-on: http://codereview.qt.nokia.com/811Reviewed-by: default avatarQt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: default avatarThomas Hartmann <Thomas.Hartmann@nokia.com>
parent 52f0eae3
......@@ -34,12 +34,14 @@
#define COMMONDEFINES_H
#include <QMetaType>
#include <QPair>
namespace QmlDesigner {
enum InformationName
{
NoName,
NoInformationChange = NoName,
Size,
BoundingRect,
Transform,
......
......@@ -468,11 +468,11 @@ void FormEditorView::instancesCompleted(const QVector<ModelNode> &completedNodeL
currentTool()->instancesCompleted(itemNodeList);
}
void FormEditorView::instanceInformationsChange(const QVector<ModelNode> &nodeList)
void FormEditorView::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash)
{
QList<FormEditorItem*> itemNodeList;
foreach (const ModelNode &node, nodeList) {
foreach (const ModelNode &node, informationChangeHash.keys()) {
QmlItemNode qmlItemNode(node);
if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) {
scene()->synchronizeTransformation(qmlItemNode);
......
......@@ -106,7 +106,7 @@ public:
void auxiliaryDataChanged(const ModelNode &node, const QString &name, const QVariant &data);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -208,7 +208,7 @@ void ComponentView::rootNodeTypeChanged(const QString &/*type*/, int /*majorVers
void ComponentView::scriptFunctionsChanged(const ModelNode &/*node*/, const QStringList &/*scriptFunctionList*/) {}
void ComponentView::instancePropertyChange(const QList<QPair<ModelNode, QString> > &/*propertyList*/) {}
void ComponentView::instancesCompleted(const QVector<ModelNode> &/*completedNodeList*/) {}
void ComponentView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/) {}
void ComponentView::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &/*informationChangeHash*/) {}
void ComponentView::instancesRenderImageChanged(const QVector<ModelNode> &/*nodeList*/) {}
void ComponentView::instancesPreviewImageChanged(const QVector<ModelNode> &/*nodeList*/) {}
void ComponentView::instancesChildrenChanged(const QVector<ModelNode> &/*nodeList*/) {}
......
......@@ -77,7 +77,7 @@ public:
void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList);
void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &/*informationChangeHash*/);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -72,7 +72,7 @@ void DesignDocumentControllerView::instancesCompleted(const QVector<ModelNode> &
{
}
void DesignDocumentControllerView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/)
void DesignDocumentControllerView::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &/*informationChangeHash*/)
{
}
......
......@@ -64,7 +64,7 @@ public:
virtual void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList);
void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -155,7 +155,7 @@ void ItemLibraryView::instancesCompleted(const QVector<ModelNode> &)
}
void ItemLibraryView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/)
void ItemLibraryView::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &/*informationChangeHash*/)
{
}
......
......@@ -80,7 +80,7 @@ public:
void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList);
void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -218,7 +218,7 @@ void NavigatorView::instancesCompleted(const QVector<ModelNode> &/*completedNode
{
}
void NavigatorView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/)
void NavigatorView::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &/*informationChangeHash*/)
{
}
......
......@@ -88,7 +88,7 @@ public:
void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList);
void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -882,13 +882,14 @@ void PropertyEditor::bindingPropertiesChanged(const QList<BindingProperty>& prop
}
void PropertyEditor::instanceInformationsChange(const QVector<ModelNode> &nodeList)
void PropertyEditor::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash)
{
if (!m_selectedNode.isValid())
return;
m_locked = true;
if (nodeList.contains(m_selectedNode))
QList<InformationName> informationNameList = informationChangeHash.values(m_selectedNode);
if (informationNameList.contains(Anchor))
m_currentType->m_backendAnchorBinding.setup(QmlItemNode(m_selectedNode));
m_locked = false;
}
......
......@@ -105,7 +105,7 @@ public:
void variantPropertiesChanged(const QList<VariantProperty>& propertyList, PropertyChangeFlags propertyChange);
void bindingPropertiesChanged(const QList<BindingProperty>& propertyList, PropertyChangeFlags propertyChange);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void nodeIdChanged(const ModelNode& node, const QString& newId, const QString& oldId);
void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList);
......
......@@ -39,6 +39,7 @@
#include <modelnode.h>
#include <abstractproperty.h>
#include <rewritertransaction.h>
#include <commondefines.h>
#include <QObject>
......@@ -114,7 +115,7 @@ public:
void emitInstancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void emitInstancesCompleted(const QVector<ModelNode> &nodeList);
void emitInstanceInformationsChange(const QVector<ModelNode> &nodeList);
void emitInstanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void emitInstancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void emitInstancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void emitInstancesChildrenChanged(const QVector<ModelNode> &nodeList);
......@@ -139,7 +140,7 @@ public:
virtual void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList) = 0;
virtual void instancesCompleted(const QVector<ModelNode> &completedNodeList) = 0;
virtual void instanceInformationsChange(const QVector<ModelNode> &nodeList) = 0;
virtual void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash) = 0;
virtual void instancesRenderImageChanged(const QVector<ModelNode> &nodeList) = 0;
virtual void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList) = 0;
virtual void instancesChildrenChanged(const QVector<ModelNode> &nodeList) = 0;
......
......@@ -85,11 +85,28 @@ public:
protected:
void setProperty(const QString &name, const QVariant &value);
void setInformation(InformationName name,
InformationName setInformation(InformationName name,
const QVariant &information,
const QVariant &secondInformation,
const QVariant &thirdInformation);
InformationName setInformationSize(const QSizeF &size);
InformationName setInformationBoundingRect(const QRectF &rectangle);
InformationName setInformationTransform(const QTransform &transform);
InformationName setInformationPenWith(int penWidth);
InformationName setInformationPosition(const QPointF &position);
InformationName setInformationIsInPositioner(bool isInPositioner);
InformationName setInformationSceneTransform(const QTransform &sceneTransform);
InformationName setInformationIsResizable(bool isResizable);
InformationName setInformationIsMovable(bool isMovable);
InformationName setInformationIsAnchoredByChildren(bool isAnchoredByChildren);
InformationName setInformationIsAnchoredBySibling(bool isAnchoredBySibling);
InformationName setInformationHasContent(bool hasContent);
InformationName setInformationHasAnchor(const QString &sourceAnchorLine, bool hasAnchor);
InformationName setInformationAnchor(const QString &sourceAnchorLine, const QString &targetAnchorLine, qint32 targetInstanceId);
InformationName setInformationInstanceTypeForProperty(const QString &property, const QString &type);
InformationName setInformationHasBindingForProperty(const QString &property, bool hasProperty);
void setParentId(qint32 instanceId);
void setRenderImage(const QImage &image);
NodeInstance(ProxyNodeInstanceData *d);
......
......@@ -102,7 +102,7 @@ public:
void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void importsChanged(const QList<Import> &addedImports, const QList<Import> &removedImports);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -94,7 +94,7 @@ public:
void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -139,7 +139,7 @@ public:
void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void instancesCompleted(const QVector<ModelNode> &completedNodeList);
void instanceInformationsChange(const QVector<ModelNode> &nodeList);
void instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void instancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void instancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -317,28 +317,191 @@ void NodeInstance::setParentId(qint32 instanceId)
d->parentInstanceId = instanceId;
}
void NodeInstance::setInformation(InformationName name, const QVariant &information, const QVariant &secondInformation, const QVariant &thirdInformation)
InformationName NodeInstance::setInformationSize(const QSizeF &size)
{
if (d->size != size) {
d->size = size;
return Size;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationBoundingRect(const QRectF &rectangle)
{
if (d->boundingRect != rectangle) {
d->boundingRect = rectangle;
return BoundingRect;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationTransform(const QTransform &transform)
{
if (d->transform != transform) {
d->transform = transform;
return Transform;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationPenWith(int penWidth)
{
if (d->penWidth != penWidth) {
d->penWidth = penWidth;
return PenWidth;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationPosition(const QPointF &position)
{
if (d->position != position) {
d->position = position;
return Position;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationIsInPositioner(bool isInPositioner)
{
if (d->isInPositioner != isInPositioner) {
d->isInPositioner = isInPositioner;
return IsInPositioner;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationSceneTransform(const QTransform &sceneTransform)
{
if (d->sceneTransform != sceneTransform) {
d->sceneTransform = sceneTransform;
return SceneTransform;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationIsResizable(bool isResizable)
{
if (d->isResizable != isResizable) {
d->isResizable = isResizable;
return IsResizable;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationIsMovable(bool isMovable)
{
if (d->isMovable != isMovable) {
d->isMovable = isMovable;
return IsMovable;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationIsAnchoredByChildren(bool isAnchoredByChildren)
{
if (d->isAnchoredByChildren != isAnchoredByChildren) {
d->isAnchoredByChildren = isAnchoredByChildren;
return IsAnchoredByChildren;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationIsAnchoredBySibling(bool isAnchoredBySibling)
{
if (d->isAnchoredBySibling != isAnchoredBySibling) {
d->isAnchoredBySibling = isAnchoredBySibling;
return IsAnchoredBySibling;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationHasContent(bool hasContent)
{
if (d->hasContent != hasContent) {
d->hasContent = hasContent;
return HasContent;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationHasAnchor(const QString &sourceAnchorLine, bool hasAnchor)
{
if (d->hasAnchors.value(sourceAnchorLine) != hasAnchor) {
d->hasAnchors.insert(sourceAnchorLine, hasAnchor);
return HasAnchor;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationAnchor(const QString &sourceAnchorLine, const QString &targetAnchorLine, qint32 targetInstanceId)
{
QPair<QString, qint32> anchorPair = QPair<QString, qint32>(targetAnchorLine, targetInstanceId);
if (d->anchors.value(sourceAnchorLine) != anchorPair) {
d->anchors.insert(sourceAnchorLine, anchorPair);
return Anchor;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationInstanceTypeForProperty(const QString &property, const QString &type)
{
if (d->instanceTypes.value(property) != type) {
d->instanceTypes.insert(property, type);
return InstanceTypeForProperty;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformationHasBindingForProperty(const QString &property, bool hasProperty)
{
if (d->hasBindingForProperty.value(property) != hasProperty) {
d->hasBindingForProperty.insert(property, hasProperty);
return HasBindingForProperty;
}
return NoInformationChange;
}
InformationName NodeInstance::setInformation(InformationName name, const QVariant &information, const QVariant &secondInformation, const QVariant &thirdInformation)
{
switch (name) {
case Size: d->size = information.toSizeF(); break;
case BoundingRect: d->boundingRect = information.toRectF(); break;
case Transform: d->transform = information.value<QTransform>(); break;
case PenWidth: d->penWidth = information.toInt(); break;
case Position: d->position = information.toPointF(); break;
case IsInPositioner: d->isInPositioner = information.toBool(); break;
case SceneTransform: d->sceneTransform = information.value<QTransform>(); break;
case IsResizable: d->isResizable = information.toBool(); break;
case IsMovable: d->isMovable = information.toBool(); break;
case IsAnchoredByChildren: d->isAnchoredByChildren = information.toBool(); break;
case IsAnchoredBySibling: d->isAnchoredBySibling = information.toBool(); break;
case HasContent: d->hasContent = information.toBool(); break;
case HasAnchor: d->hasAnchors.insert(information.toString(), secondInformation.toBool());break;
case Anchor: d->anchors.insert(information.toString(), qMakePair(secondInformation.toString(), thirdInformation.value<qint32>())); break;
case InstanceTypeForProperty: d->instanceTypes.insert(information.toString(), secondInformation.toString()); break;
case HasBindingForProperty: d->hasBindingForProperty.insert(information.toString(), secondInformation.toBool()); break;
case Size: return setInformationSize(information.toSizeF()); break;
case BoundingRect: return setInformationBoundingRect(information.toRectF()); break;
case Transform: return setInformationTransform(information.value<QTransform>()); break;
case PenWidth: return setInformationPenWith(information.toInt()); break;
case Position: return setInformationPosition(information.toPointF()); break;
case IsInPositioner: return setInformationIsInPositioner(information.toBool()); break;
case SceneTransform: return setInformationSceneTransform(information.value<QTransform>()); break;
case IsResizable: return setInformationIsResizable(information.toBool()); break;
case IsMovable: return setInformationIsMovable(information.toBool()); break;
case IsAnchoredByChildren: return setInformationIsAnchoredByChildren(information.toBool()); break;
case IsAnchoredBySibling: return setInformationIsAnchoredBySibling(information.toBool()); break;
case HasContent: return setInformationHasContent(information.toBool()); break;
case HasAnchor: return setInformationHasAnchor(information.toString(), secondInformation.toBool());break;
case Anchor: return setInformationAnchor(information.toString(), secondInformation.toString(), thirdInformation.value<qint32>()); break;
case InstanceTypeForProperty: return setInformationInstanceTypeForProperty(information.toString(), secondInformation.toString()); break;
case HasBindingForProperty: return setInformationHasBindingForProperty(information.toString(), secondInformation.toBool()); break;
case NoName:
default: break;
}
return NoInformationChange;
}
bool operator ==(const NodeInstance &first, const NodeInstance &second)
......
......@@ -42,6 +42,7 @@
#include <QGraphicsScene>
#include <QGraphicsObject>
#include <QFileSystemWatcher>
#include <QMultiHash>
#include <model.h>
#include <modelnode.h>
......@@ -462,7 +463,7 @@ void NodeInstanceView::importsChanged(const QList<Import> &/*addedImports*/, con
restartProcess();
}
void NodeInstanceView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/)
void NodeInstanceView::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &/*informationChangeHash*/)
{
}
......@@ -1062,21 +1063,21 @@ void NodeInstanceView::informationChanged(const InformationChangedCommand &comma
if (!model())
return;
QVector<ModelNode> informationChangedVector;
QMultiHash<ModelNode, InformationName> informationChangeHash;
foreach(const InformationContainer &container, command.informations()) {
if (hasInstanceForId(container.instanceId())) {
NodeInstance instance = instanceForId(container.instanceId());
if (instance.isValid()) {
instance.setInformation(container.name(), container.information(), container.secondInformation(), container.thirdInformation());
if (!informationChangedVector.contains(instance.modelNode()))
informationChangedVector.append(instance.modelNode());
InformationName informationChange = instance.setInformation(container.name(), container.information(), container.secondInformation(), container.thirdInformation());
if (informationChange != NoInformationChange)
informationChangeHash.insert(instance.modelNode(), informationChange);
}
}
}
if (!informationChangedVector.isEmpty())
emitInstanceInformationsChange(informationChangedVector);
if (!informationChangeHash.isEmpty())
emitInstanceInformationsChange(informationChangeHash);
}
QImage NodeInstanceView::statePreviewImage(const ModelNode &stateNode) const
......
......@@ -399,10 +399,10 @@ void AbstractView::emitInstancesCompleted(const QVector<ModelNode> &nodeVector)
model()->m_d->notifyInstancesCompleted(nodeVector);
}
void AbstractView::emitInstanceInformationsChange(const QVector<ModelNode> &nodeVector)
void AbstractView::emitInstanceInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash)
{
if (model() && nodeInstanceView() == this)
model()->m_d->notifyInstancesInformationsChange(nodeVector);
model()->m_d->notifyInstancesInformationsChange(informationChangeHash);
}
void AbstractView::emitInstancesRenderImageChanged(const QVector<ModelNode> &nodeVector)
......
......@@ -45,6 +45,7 @@
#include <QtXml/QXmlStreamReader>
#include <QtCore/QDebug>
#include <QPlainTextEdit>
#include <QHashIterator>
#include "abstractview.h"
#include "nodeinstanceview.h"
......@@ -472,16 +473,27 @@ void ModelPrivate::notifyInstancesCompleted(const QVector<ModelNode> &nodeVector
}
}
void ModelPrivate::notifyInstancesInformationsChange(const QVector<ModelNode> &nodeVector)
QMultiHash<ModelNode, InformationName> convertModelNodeInformationHash(const QMultiHash<ModelNode, InformationName> &informationChangeHash, AbstractView *view)
{
QMultiHash<ModelNode, InformationName> convertedModelNodeInformationHash;
QHashIterator<ModelNode, InformationName> hashIterator(informationChangeHash);
while (hashIterator.hasNext()) {
hashIterator.next();
convertedModelNodeInformationHash.insert(ModelNode(hashIterator.key(), view), hashIterator.value());
}
return convertedModelNodeInformationHash;
}
void ModelPrivate::notifyInstancesInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash)
{
bool resetModel = false;
QString description;
QVector<Internal::InternalNode::Pointer> internalVector(toInternalNodeVector(nodeVector));
try {
if (rewriterView())
rewriterView()->instanceInformationsChange(toModelNodeVector(internalVector, rewriterView()));
rewriterView()->instanceInformationsChange(convertModelNodeInformationHash(informationChangeHash, rewriterView()));
} catch (RewritingException &e) {
description = e.description();
resetModel = true;
......@@ -489,11 +501,11 @@ void ModelPrivate::notifyInstancesInformationsChange(const QVector<ModelNode> &n
foreach (const QWeakPointer<AbstractView> &view, m_viewList) {
Q_ASSERT(view != 0);
view->instanceInformationsChange(toModelNodeVector(internalVector, view.data()));
view->instanceInformationsChange(convertModelNodeInformationHash(informationChangeHash, view.data()));
}
if (nodeInstanceView()) {
nodeInstanceView()->instanceInformationsChange(toModelNodeVector(internalVector, nodeInstanceView()));
nodeInstanceView()->instanceInformationsChange(convertModelNodeInformationHash(informationChangeHash, nodeInstanceView()));
}
if (resetModel) {
......
......@@ -152,7 +152,7 @@ public:
void notifyCustomNotification(const AbstractView *senderView, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data);
void notifyInstancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList);
void notifyInstancesCompleted(const QVector<ModelNode> &nodeList);
void notifyInstancesInformationsChange(const QVector<ModelNode> &nodeList);
void notifyInstancesInformationsChange(const QMultiHash<ModelNode, InformationName> &informationChangeHash);
void notifyInstancesRenderImageChanged(const QVector<ModelNode> &nodeList);
void notifyInstancesPreviewImageChanged(const QVector<ModelNode> &nodeList);
void notifyInstancesChildrenChanged(const QVector<ModelNode> &nodeList);
......
......@@ -389,7 +389,7 @@ void QmlModelView::instancesCompleted(const QVector<ModelNode> &/*completedNodeL
{
}
void QmlModelView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/)
void QmlModelView::instanceInformationsChange(const QMultiHash<ModelNode, InformationName> &/*informationChangeHash*/)