diff options
author | Marco Bubke <marco.bubke@digia.com> | 2013-05-28 14:14:07 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@digia.com> | 2013-05-30 14:11:57 +0200 |
commit | b97422b710be8489c3798febcc82dc8cc6b86c3d (patch) | |
tree | 1a80913bc447b570852666f88aa98a71d48b793e /src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp | |
parent | 21c821806db143239d1824af42eac2dcb216c76f (diff) | |
download | qt-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.cpp | 14 |
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); |