diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2009-06-22 02:49:54 (GMT) |
---|---|---|
committer | Michael Brasser <michael.brasser@nokia.com> | 2009-06-22 02:49:54 (GMT) |
commit | 329897ea89f0cc01e95873cc0f7722588ab3e817 (patch) | |
tree | 97fb0c6087041db733eb3bf1736838d0cc4528b3 | |
parent | 30b9cf0ff65bca3dbfddbd74cb21ec3eb68cbd88 (diff) | |
download | Qt-329897ea89f0cc01e95873cc0f7722588ab3e817.zip Qt-329897ea89f0cc01e95873cc0f7722588ab3e817.tar.gz Qt-329897ea89f0cc01e95873cc0f7722588ab3e817.tar.bz2 |
Fix Item scale + rotation on GraphicsView.
-rw-r--r-- | src/declarative/canvas/qsimplecanvasitem.cpp | 11 | ||||
-rw-r--r-- | src/declarative/canvas/qsimplecanvasitem_p.h | 6 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/declarative/canvas/qsimplecanvasitem.cpp b/src/declarative/canvas/qsimplecanvasitem.cpp index cbdc324..0ceb7b7 100644 --- a/src/declarative/canvas/qsimplecanvasitem.cpp +++ b/src/declarative/canvas/qsimplecanvasitem.cpp @@ -1027,7 +1027,16 @@ void QSimpleCanvasItem::setTransform(const QSimpleCanvas::Matrix &m) Q_D(QSimpleCanvasItem); if (d->graphicsItem) { d->graphicsItem->transform = QSimpleCanvasConfig::matrixToTransform(m); - d->graphicsItem->setTransform(QTransform::fromScale(d->scale, d->scale) * d->graphicsItem->transform); + QTransform t; + if (d->scale != 1) { + QPointF to = transformOriginPoint(); + if (to.x() != 0. || to.y() != 0.) + t.translate(to.x(), to.y()); + t.scale(d->scale, d->scale); + if (to.x() != 0. || to.y() != 0.) + t.translate(-to.x(), -to.y()); + } + d->graphicsItem->setTransform(t * d->graphicsItem->transform); } else { if (!d->data()->transformUser) d->data()->transformUser = new QSimpleCanvas::Matrix; diff --git a/src/declarative/canvas/qsimplecanvasitem_p.h b/src/declarative/canvas/qsimplecanvasitem_p.h index 6c21d9f..7a8f40a 100644 --- a/src/declarative/canvas/qsimplecanvasitem_p.h +++ b/src/declarative/canvas/qsimplecanvasitem_p.h @@ -53,8 +53,8 @@ #include "qgraphicsitem.h" - QT_BEGIN_NAMESPACE + class QSimpleGraphicsItem : public QGraphicsItem { public: @@ -265,6 +265,6 @@ public: Q_DECLARE_OPERATORS_FOR_FLAGS(QSimpleCanvasItemPrivate::FocusStateCheckDatas) Q_DECLARE_OPERATORS_FOR_FLAGS(QSimpleCanvasItemPrivate::FocusStateCheckRDatas) -#endif // QSIMPLECANVASITEM_P_H - QT_END_NAMESPACE + +#endif // QSIMPLECANVASITEM_P_H |