summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@digia.com>2013-05-28 14:14:07 +0200
committerMarco Bubke <marco.bubke@digia.com>2013-05-30 14:11:57 +0200
commitb97422b710be8489c3798febcc82dc8cc6b86c3d (patch)
tree1a80913bc447b570852666f88aa98a71d48b793e /src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
parent21c821806db143239d1824af42eac2dcb216c76f (diff)
downloadqt-creator-b97422b710be8489c3798febcc82dc8cc6b86c3d.tar.gz
QmlDesigner: Add container item support in node instances
Change-Id: I30e0d11346b8c63188d052b46656e7ede179e55d Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Diffstat (limited to 'src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp')
-rw-r--r--src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
index 4d35342924..b1e1800ddf 100644
--- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
@@ -116,8 +116,9 @@ void MoveManipulator::updateHashes()
// foreach (FormEditorItem* item, m_itemList)
// m_beginItemRectHash[item] = item->mapRectToParent(item->qmlItemNode().instanceBoundingRect());
+ QTransform fromSceneToContentItemTransform = m_snapper.containerFormEditorItem()->qmlItemNode().instanceSceneContentItemTransform().inverted();
foreach (FormEditorItem* item, m_itemList) {
- QPointF positionInParentSpace = m_snapper.containerFormEditorItem()->mapFromScene(m_beginPositionInSceneSpaceHash.value(item));
+ QPointF positionInParentSpace = fromSceneToContentItemTransform.map(m_beginPositionInSceneSpaceHash.value(item));
m_beginItemRectHash[item].translate(positionInParentSpace - m_beginPositionHash.value(item));
m_beginPositionHash.insert(item, positionInParentSpace);
}
@@ -147,17 +148,19 @@ void MoveManipulator::begin(const QPointF &beginPoint)
m_beginItemRectHash.insert(item, m_snapper.containerFormEditorItem()->mapRectFromItem(item, item->qmlItemNode().instanceBoundingRect()));
}
+ QTransform fromContentItemToSceneTransform = m_snapper.containerFormEditorItem()->qmlItemNode().instanceSceneContentItemTransform();
foreach (FormEditorItem* item, m_itemList) {
if (item && item->qmlItemNode().isValid()) {
QPointF positionInParentSpace(item->qmlItemNode().instancePosition());
- QPointF positionInScenesSpace = m_snapper.containerFormEditorItem()->mapToScene(positionInParentSpace);
+ QPointF positionInScenesSpace = fromContentItemToSceneTransform.map(positionInParentSpace);
m_beginPositionInSceneSpaceHash.insert(item, positionInScenesSpace);
}
}
+ QTransform fromSceneToContentItemTransform = m_snapper.containerFormEditorItem()->qmlItemNode().instanceSceneContentItemTransform().inverted();
foreach (FormEditorItem* item, m_itemList) {
if (item && item->qmlItemNode().isValid()) {
- QPointF positionInParentSpace = m_snapper.containerFormEditorItem()->mapFromScene(m_beginPositionInSceneSpaceHash.value(item));
+ QPointF positionInParentSpace = fromSceneToContentItemTransform.map(m_beginPositionInSceneSpaceHash.value(item));
m_beginPositionHash.insert(item, positionInParentSpace);
QmlAnchors anchors(item->qmlItemNode().anchors());
@@ -270,8 +273,9 @@ void MoveManipulator::update(const QPointF& updatePoint, Snapper::Snapping useSn
if (m_itemList.isEmpty()) {
return;
} else {
- QPointF updatePointInContainerSpace(m_snapper.containerFormEditorItem()->mapFromScene(updatePoint));
- QPointF beginPointInContainerSpace(m_snapper.containerFormEditorItem()->mapFromScene(m_beginPoint));
+ QTransform fromSceneToContentItemTransform = m_snapper.containerFormEditorItem()->qmlItemNode().instanceSceneContentItemTransform().inverted();
+ QPointF updatePointInContainerSpace(fromSceneToContentItemTransform.map(updatePoint));
+ QPointF beginPointInContainerSpace(fromSceneToContentItemTransform.map(m_beginPoint));
QPointF offsetVector(updatePointInContainerSpace - beginPointInContainerSpace);