summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2009-07-22 19:09:42 (GMT)
committerLars Knoll <lars.knoll@nokia.com>2009-07-29 03:46:01 (GMT)
commit348d74a53bfe0b1db6081748d25303637180ad9d (patch)
tree3ea9678fd5ce27e43f4a9ed6fd3aeef6ddf3c23d
parentc2cfe5c403f379b3196416960880ade859b7e509 (diff)
downloadQt-348d74a53bfe0b1db6081748d25303637180ad9d.zip
Qt-348d74a53bfe0b1db6081748d25303637180ad9d.tar.gz
Qt-348d74a53bfe0b1db6081748d25303637180ad9d.tar.bz2
Remove the rotation/scale properties from QFxItem
This is directly supported in QGraphicsItem and we should use the methods from there. The transformation handling code in QGraphicsItem needs further cleanups to get to the agreed model (using a QGraphicsTransform and only implementing rotate/scale as trivial transformations)
-rw-r--r--src/declarative/fx/qfxitem.cpp102
-rw-r--r--src/declarative/fx/qfxitem.h11
-rw-r--r--src/declarative/fx/qfxitem_p.h9
3 files changed, 7 insertions, 115 deletions
diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp
index edf61e4..35f3b71 100644
--- a/src/declarative/fx/qfxitem.cpp
+++ b/src/declarative/fx/qfxitem.cpp
@@ -308,12 +308,6 @@ void QFxContents::setItem(QFxItem *item)
*/
/*!
- \fn void QFxItem::scaleChanged()
-
- This signal is emitted when the scale of the item changes.
-*/
-
-/*!
\fn void QFxItem::stateChanged(const QString &state)
This signal is emitted when the \a state of the item changes.
@@ -1334,29 +1328,6 @@ void QFxItem::setBaselineOffset(qreal offset)
*/
/*!
- \property QFxItem::rotation
- This property holds the rotation of the item in degrees.
-
- This specifies how many degrees to rotate the item around its transformOrigin.
- The default rotation is 0 degrees (i.e. not rotated at all).
-*/
-qreal QFxItem::rotation() const
-{
- Q_D(const QFxItem);
- return d->_rotation;
-}
-
-void QFxItem::setRotation(qreal rotation)
-{
- Q_D(QFxItem);
- if (d->_rotation == rotation)
- return;
- d->_rotation = rotation;
- setTransform(d->transform);
- emit rotationChanged();
-}
-
-/*!
\qmlproperty real Item::scale
This property holds the scale of the item.
@@ -1393,21 +1364,6 @@ void QFxItem::setRotation(qreal rotation)
*/
/*!
- \property QFxItem::scale
- This property holds the scale of the item.
-
- A scale of less than 1 means the item will be displayed smaller than
- normal, and a scale of greater than 1 means the item will be
- displayed larger than normal. A negative scale means the item will
- be mirrored.
-
- By default, items are displayed at a scale of 1 (i.e. at their
- normal size).
-
- Scaling is from the item's transformOrigin.
-*/
-
-/*!
\qmlproperty real Item::opacity
The opacity of the item. Opacity is specified as a number between 0
@@ -1837,7 +1793,7 @@ QFxItemPrivate::AnchorLines::AnchorLines(QFxItem *q)
baseline.anchorLine = QFxAnchorLine::Baseline;
}
-QPointF QFxItemPrivate::transformOrigin() const
+QPointF QFxItemPrivate::computeTransformOrigin() const
{
Q_Q(const QFxItem);
@@ -1980,14 +1936,14 @@ void QFxItem::setTransformOrigin(TransformOrigin origin)
Q_D(QFxItem);
if (origin != d->origin) {
d->origin = origin;
- update();
+ QPointF to = d->computeTransformOrigin();
+ QGraphicsItem::setTransformOrigin(to.x(), to.y());
}
}
QPointF QFxItem::transformOriginPoint() const
{
- Q_D(const QFxItem);
- return d->transformOrigin();
+ return QGraphicsItem::transformOrigin();
}
qreal QFxItem::width() const
@@ -2080,61 +2036,11 @@ bool QFxItem::heightValid() const
return d->heightValid;
}
-qreal QFxItem::scale() const
-{
- Q_D(const QFxItem);
- return d->scale;
-}
-
-void QFxItem::setScale(qreal s)
-{
- Q_D(QFxItem);
- if (d->scale == s)
- return;
-
- d->scale = s;
- setTransform(d->transform);
-
- emit scaleChanged();
-}
-
QRect QFxItem::itemBoundingRect()
{
return boundingRect().toAlignedRect();
}
-QTransform QFxItem::transform() const
-{
- Q_D(const QFxItem);
- return d->transform;
-}
-
-//### optimize (perhaps cache scale and rot transforms, and have dirty flags)
-//### we rely on there not being an "if (d->transform == m) return;" check
-void QFxItem::setTransform(const QTransform &m)
-{
- Q_D(QFxItem);
- d->transform = m;
- QTransform scaleTransform, rotTransform;
- if (d->scale != 1) {
- QPointF to = transformOriginPoint();
- if (to.x() != 0. || to.y() != 0.)
- scaleTransform.translate(to.x(), to.y());
- scaleTransform.scale(d->scale, d->scale);
- if (to.x() != 0. || to.y() != 0.)
- scaleTransform.translate(-to.x(), -to.y());
- }
- if (d->_rotation != 0) {
- QPointF to = d->transformOrigin();
- if (to.x() != 0. || to.y() != 0.)
- rotTransform.translate(to.x(), to.y());
- rotTransform.rotate(d->_rotation);
- if (to.x() != 0. || to.y() != 0.)
- rotTransform.translate(-to.x(), -to.y());
- }
- QGraphicsItem::setTransform(scaleTransform * rotTransform * d->transform);
-}
-
QFxItem *QFxItem::mouseGrabberItem() const
{
QGraphicsScene *s = scene();
diff --git a/src/declarative/fx/qfxitem.h b/src/declarative/fx/qfxitem.h
index c444507..3047713 100644
--- a/src/declarative/fx/qfxitem.h
+++ b/src/declarative/fx/qfxitem.h
@@ -142,8 +142,6 @@ class Q_DECLARATIVE_EXPORT QFxItem : public QGraphicsObject, public QmlParserSta
Q_PROPERTY(QFxAnchorLine verticalCenter READ verticalCenter CONSTANT FINAL)
Q_PROPERTY(QFxAnchorLine baseline READ baseline CONSTANT FINAL)
Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset NOTIFY baselineOffsetChanged)
- Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged) // ## remove me
- Q_PROPERTY(qreal scale READ scale WRITE setScale NOTIFY scaleChanged) // ### remove me
Q_PROPERTY(bool clip READ clip WRITE setClip) // ### move to QGI/QGO, NOTIFY
Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged FINAL)
Q_PROPERTY(bool activeFocus READ hasActiveFocus NOTIFY activeFocusChanged FINAL)
@@ -205,12 +203,6 @@ public:
qreal baselineOffset() const;
void setBaselineOffset(qreal);
- qreal rotation() const;
- void setRotation(qreal);
-
- qreal scale() const;
- void setScale(qreal);
-
QList<QFxTransform *> *transform();
bool isClassComplete() const;
@@ -245,9 +237,6 @@ public:
QRectF boundingRect() const;
virtual void paintContents(QPainter &);
- QTransform transform() const; // ### remove me
- void setTransform(const QTransform &); // ### remove me
-
QFxItem *mouseGrabberItem() const;
virtual bool hasFocus() const;
diff --git a/src/declarative/fx/qfxitem_p.h b/src/declarative/fx/qfxitem_p.h
index 08d2e4a..7bdd382 100644
--- a/src/declarative/fx/qfxitem_p.h
+++ b/src/declarative/fx/qfxitem_p.h
@@ -76,13 +76,13 @@ class QFxItemPrivate : public QGraphicsItemPrivate
public:
QFxItemPrivate()
: _anchors(0), _contents(0), qmlItem(0), _qmlcomp(0),
- _baselineOffset(0), _rotation(0.),
+ _baselineOffset(0),
_classComplete(true), _componentComplete(true), _keepMouse(false),
_anchorLines(0),
_stateGroup(0), canvas(0), origin(QFxItem::TopLeft),
options(QFxItem::NoOption),
widthValid(false), heightValid(false), width(0), height(0),
- paintmargin(0), scale(1)
+ paintmargin(0)
{}
~QFxItemPrivate()
{ delete _anchors; }
@@ -149,7 +149,6 @@ public:
QList<QmlComponent*> _qmlnewcomp;
QmlNullableValue<qreal> _baselineOffset;
- float _rotation;
bool _classComplete:1;
bool _componentComplete:1;
@@ -189,10 +188,8 @@ public:
qreal width;
qreal height;
qreal paintmargin;
- qreal scale;
- QPointF transformOrigin() const;
- QTransform transform;
+ QPointF computeTransformOrigin() const;
void gvRemoveMouseFilter();
void gvAddMouseFilter();