forked from qt-creator/qt-creator
QmlDesigner: Handle binding properties in FormEditorView
Since the target property affects how transitions are visualized, we have to implement this callback and update the items. Change-Id: I30fe74dedfc0187498eee9b884f099703ca001d5 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
committed by
Tim Jenssen
parent
6d32975d9a
commit
6622c6a4b7
@@ -36,6 +36,7 @@
|
|||||||
#include "formeditorscene.h"
|
#include "formeditorscene.h"
|
||||||
#include "abstractcustomtool.h"
|
#include "abstractcustomtool.h"
|
||||||
|
|
||||||
|
#include <bindingproperty.h>
|
||||||
#include <designersettings.h>
|
#include <designersettings.h>
|
||||||
#include <designmodecontext.h>
|
#include <designmodecontext.h>
|
||||||
#include <modelnode.h>
|
#include <modelnode.h>
|
||||||
@@ -367,6 +368,32 @@ void FormEditorView::selectedNodesChanged(const QList<ModelNode> &selectedNodeLi
|
|||||||
m_scene->update();
|
m_scene->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FormEditorView::bindingPropertiesChanged(const QList<BindingProperty> &propertyList, AbstractView::PropertyChangeFlags propertyChange)
|
||||||
|
{
|
||||||
|
for (const BindingProperty &property : propertyList) {
|
||||||
|
QmlVisualNode node(property.parentModelNode());
|
||||||
|
if (node.isFlowTransition()) {
|
||||||
|
qDebug() << "isflow" << node;
|
||||||
|
FormEditorItem *item = m_scene->itemForQmlItemNode(node.toQmlItemNode());
|
||||||
|
if (item) {
|
||||||
|
m_scene->reparentItem(node.toQmlItemNode(), node.toQmlItemNode().modelParentItem());
|
||||||
|
m_scene->synchronizeTransformation(item);
|
||||||
|
item->update();
|
||||||
|
}
|
||||||
|
} else if (QmlFlowActionAreaNode::isValidQmlFlowActionAreaNode(property.parentModelNode())) {
|
||||||
|
const QmlVisualNode target = property.resolveToModelNode();
|
||||||
|
if (target.modelNode().isValid() && target.isFlowTransition()) {
|
||||||
|
FormEditorItem *item = m_scene->itemForQmlItemNode(target.toQmlItemNode());
|
||||||
|
if (item) {
|
||||||
|
m_scene->reparentItem(node.toQmlItemNode(), node.toQmlItemNode().modelParentItem());
|
||||||
|
m_scene->synchronizeTransformation(item);
|
||||||
|
item->update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void FormEditorView::documentMessagesChanged(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &)
|
void FormEditorView::documentMessagesChanged(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &)
|
||||||
{
|
{
|
||||||
if (!errors.isEmpty())
|
if (!errors.isEmpty())
|
||||||
|
|||||||
@@ -76,6 +76,9 @@ public:
|
|||||||
void selectedNodesChanged(const QList<ModelNode> &selectedNodeList,
|
void selectedNodesChanged(const QList<ModelNode> &selectedNodeList,
|
||||||
const QList<ModelNode> &lastSelectedNodeList) override;
|
const QList<ModelNode> &lastSelectedNodeList) override;
|
||||||
|
|
||||||
|
void bindingPropertiesChanged(const QList<BindingProperty>& propertyList,
|
||||||
|
PropertyChangeFlags propertyChange) override;
|
||||||
|
|
||||||
void documentMessagesChanged(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &warnings) override;
|
void documentMessagesChanged(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &warnings) override;
|
||||||
|
|
||||||
void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data) override;
|
void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data) override;
|
||||||
|
|||||||
Reference in New Issue
Block a user