Deprecate all methods that use QMatrix

Don't use QMatrix in implementation classes anymore.

Task-number: QTBUG-46653
Fixes: QTBUG-81627
Change-Id: I4806c1302e42645dc6a608062c8d9c336ae8629b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Jarek Kobus 2020-01-10 10:08:37 +01:00
parent be8c257da9
commit 4bb897a384
55 changed files with 269 additions and 116 deletions

View File

@ -234,11 +234,11 @@ void View::setupMatrix()
{ {
qreal scale = qPow(qreal(2), (zoomSlider->value() - 250) / qreal(50)); qreal scale = qPow(qreal(2), (zoomSlider->value() - 250) / qreal(50));
QMatrix matrix; QTransform matrix;
matrix.scale(scale, scale); matrix.scale(scale, scale);
matrix.rotate(rotateSlider->value()); matrix.rotate(rotateSlider->value());
graphicsView->setMatrix(matrix); graphicsView->setTransform(matrix);
setResetButtonEnabled(); setResetButtonEnabled();
} }

View File

@ -231,8 +231,8 @@ void MainWindow::fontSizeChanged(const QString &)
void MainWindow::sceneScaleChanged(const QString &scale) void MainWindow::sceneScaleChanged(const QString &scale)
{ {
double newScale = scale.left(scale.indexOf(tr("%"))).toDouble() / 100.0; double newScale = scale.left(scale.indexOf(tr("%"))).toDouble() / 100.0;
QMatrix oldMatrix = view->matrix(); QTransform oldMatrix = view->transform();
view->resetMatrix(); view->resetTransform();
view->translate(oldMatrix.dx(), oldMatrix.dy()); view->translate(oldMatrix.dx(), oldMatrix.dy());
view->scale(newScale, newScale); view->scale(newScale, newScale);
} }

View File

@ -223,7 +223,7 @@ void XFormView::setRotation(qreal r)
m_rotation = r; m_rotation = r;
QPointF center(pts->points().at(0)); QPointF center(pts->points().at(0));
QMatrix m; QTransform m;
m.translate(center.x(), center.y()); m.translate(center.x(), center.y());
m.rotate(m_rotation - old_rot); m.rotate(m_rotation - old_rot);
m.translate(-center.x(), -center.y()); m.translate(-center.x(), -center.y());
@ -236,7 +236,7 @@ void XFormView::timerEvent(QTimerEvent *e)
{ {
if (e->timerId() == timer.timerId()) { if (e->timerId() == timer.timerId()) {
QPointF center(pts->points().at(0)); QPointF center(pts->points().at(0));
QMatrix m; QTransform m;
m.translate(center.x(), center.y()); m.translate(center.x(), center.y());
m.rotate(0.2); m.rotate(0.2);
m.translate(-center.x(), -center.y()); m.translate(-center.x(), -center.y());

View File

@ -374,7 +374,7 @@ void PathDeformRenderer::setText(const QString &text)
} }
for (int i=0; i<m_paths.size(); ++i) for (int i=0; i<m_paths.size(); ++i)
m_paths[i] = m_paths[i] * QMatrix(1, 0, 0, 1, -m_pathBounds.x(), -m_pathBounds.y()); m_paths[i] = m_paths[i] * QTransform(1, 0, 0, 1, -m_pathBounds.x(), -m_pathBounds.y());
update(); update();
} }

View File

@ -511,10 +511,10 @@ void PathStrokeRenderer::initializePoints()
m_points.clear(); m_points.clear();
m_vectors.clear(); m_vectors.clear();
QMatrix m; QTransform m;
qreal rot = 360.0 / count; qreal rot = 360.0 / count;
QPointF center(width() / 2, height() / 2); QPointF center(width() / 2, height() / 2);
QMatrix vm; QTransform vm;
vm.shear(2, -1); vm.shear(2, -1);
vm.scale(3, 3); vm.scale(3, 3);

View File

@ -93,9 +93,9 @@ painter2->begin(myWidget); // impossible - only one painter at a time
//! [4] //! [4]
void QPainter::rotate(qreal angle) void QPainter::rotate(qreal angle)
{ {
QMatrix matrix; QTransform matrix;
matrix.rotate(angle); matrix.rotate(angle);
setWorldMatrix(matrix, true); setWorldTransform(matrix, true);
} }
//! [4] //! [4]

View File

@ -2881,7 +2881,13 @@ QImage QImage::scaledToHeight(int h, Qt::TransformationMode mode) const
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\obsolete
Use trueMatrix(const QTransform &matrix, int w, int h) instead.
\fn QMatrix QImage::trueMatrix(const QMatrix &matrix, int width, int height) \fn QMatrix QImage::trueMatrix(const QMatrix &matrix, int width, int height)
Returns the actual matrix used for transforming an image with the Returns the actual matrix used for transforming an image with the
@ -2903,6 +2909,10 @@ QMatrix QImage::trueMatrix(const QMatrix &matrix, int w, int h)
} }
/*! /*!
\obsolete
Use transformed(const QTransform &matrix, Qt::TransformationMode mode) instead.
Returns a copy of the image that is transformed using the given Returns a copy of the image that is transformed using the given
transformation \a matrix and transformation \a mode. transformation \a matrix and transformation \a mode.
@ -2927,6 +2937,8 @@ QImage QImage::transformed(const QMatrix &matrix, Qt::TransformationMode mode) c
return transformed(QTransform(matrix), mode); return transformed(QTransform(matrix), mode);
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
Builds and returns a 1-bpp mask from the alpha buffer in this Builds and returns a 1-bpp mask from the alpha buffer in this
image. Returns a null image if the image's format is image. Returns a null image if the image's format is

View File

@ -282,8 +282,12 @@ public:
Qt::TransformationMode mode = Qt::FastTransformation) const; Qt::TransformationMode mode = Qt::FastTransformation) const;
QImage scaledToWidth(int w, Qt::TransformationMode mode = Qt::FastTransformation) const; QImage scaledToWidth(int w, Qt::TransformationMode mode = Qt::FastTransformation) const;
QImage scaledToHeight(int h, Qt::TransformationMode mode = Qt::FastTransformation) const; QImage scaledToHeight(int h, Qt::TransformationMode mode = Qt::FastTransformation) const;
#if QT_DEPRECATED_SINCE(5, 15)
QT_DEPRECATED_X("Use transformed(const QTransform &matrix, Qt::TransformationMode mode)")
QImage transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const; QImage transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const;
QT_DEPRECATED_X("trueMatrix(const QTransform &, int w, int h)")
static QMatrix trueMatrix(const QMatrix &, int w, int h); static QMatrix trueMatrix(const QMatrix &, int w, int h);
#endif // QT_DEPRECATED_SINCE(5, 15)
QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const; QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const;
static QTransform trueMatrix(const QTransform &, int w, int h); static QTransform trueMatrix(const QTransform &, int w, int h);
#if defined(Q_COMPILER_REF_QUALIFIERS) && !defined(QT_COMPILING_QIMAGE_COMPAT_CPP) #if defined(Q_COMPILER_REF_QUALIFIERS) && !defined(QT_COMPILING_QIMAGE_COMPAT_CPP)

View File

@ -438,7 +438,7 @@ QImage QPixmap::toImage() const
} }
/*! /*!
\fn QMatrix QPixmap::trueMatrix(const QTransform &matrix, int width, int height) \fn QTransform QPixmap::trueMatrix(const QTransform &matrix, int width, int height)
Returns the actual matrix used for transforming a pixmap with the Returns the actual matrix used for transforming a pixmap with the
given \a width, \a height and \a matrix. given \a width, \a height and \a matrix.
@ -458,8 +458,12 @@ QTransform QPixmap::trueMatrix(const QTransform &m, int w, int h)
return QImage::trueMatrix(m, w, h); return QImage::trueMatrix(m, w, h);
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\overload \overload
\obsolete
Use trueMatrix(const QTransform &m, int w, int h) instead.
This convenience function loads the matrix \a m into a This convenience function loads the matrix \a m into a
QTransform and calls the overloaded function with the QTransform and calls the overloaded function with the
@ -469,6 +473,7 @@ QMatrix QPixmap::trueMatrix(const QMatrix &m, int w, int h)
{ {
return trueMatrix(QTransform(m), w, h).toAffine(); return trueMatrix(QTransform(m), w, h).toAffine();
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
@ -1233,8 +1238,12 @@ QPixmap QPixmap::transformed(const QTransform &transform,
return data->transformed(transform, mode); return data->transformed(transform, mode);
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\overload \overload
\obsolete
Use transformed(const QTransform &transform, Qt::TransformationMode mode)() instead.
This convenience function loads the \a matrix into a This convenience function loads the \a matrix into a
QTransform and calls the overloaded function. QTransform and calls the overloaded function.
@ -1243,6 +1252,7 @@ QPixmap QPixmap::transformed(const QMatrix &matrix, Qt::TransformationMode mode)
{ {
return transformed(QTransform(matrix), mode); return transformed(QTransform(matrix), mode);
} }
#endif // QT_DEPRECATED_SINCE(5, 15)

View File

@ -129,8 +129,12 @@ public:
Qt::TransformationMode mode = Qt::FastTransformation) const; Qt::TransformationMode mode = Qt::FastTransformation) const;
QPixmap scaledToWidth(int w, Qt::TransformationMode mode = Qt::FastTransformation) const; QPixmap scaledToWidth(int w, Qt::TransformationMode mode = Qt::FastTransformation) const;
QPixmap scaledToHeight(int h, Qt::TransformationMode mode = Qt::FastTransformation) const; QPixmap scaledToHeight(int h, Qt::TransformationMode mode = Qt::FastTransformation) const;
#if QT_DEPRECATED_SINCE(5, 15)
QT_DEPRECATED_X("Use transformed(const QTransform &, Qt::TransformationMode mode)")
QPixmap transformed(const QMatrix &, Qt::TransformationMode mode = Qt::FastTransformation) const; QPixmap transformed(const QMatrix &, Qt::TransformationMode mode = Qt::FastTransformation) const;
QT_DEPRECATED_X("Use trueMatrix(const QTransform &m, int w, int h)")
static QMatrix trueMatrix(const QMatrix &m, int w, int h); static QMatrix trueMatrix(const QMatrix &m, int w, int h);
#endif // QT_DEPRECATED_SINCE(5, 15)
QPixmap transformed(const QTransform &, Qt::TransformationMode mode = Qt::FastTransformation) const; QPixmap transformed(const QTransform &, Qt::TransformationMode mode = Qt::FastTransformation) const;
static QTransform trueMatrix(const QTransform &m, int w, int h); static QTransform trueMatrix(const QTransform &m, int w, int h);

View File

@ -47,7 +47,6 @@
#include "qimage.h" #include "qimage.h"
#include "qkeysequence.h" #include "qkeysequence.h"
#include "qtransform.h" #include "qtransform.h"
#include "qmatrix.h"
#include "qpalette.h" #include "qpalette.h"
#include "qpen.h" #include "qpen.h"
#include "qpixmap.h" #include "qpixmap.h"

View File

@ -187,7 +187,10 @@ QMatrix4x4::QMatrix4x4(const float *values, int cols, int rows)
flagBits = General; flagBits = General;
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\obsolete
Constructs a 4x4 matrix from a conventional Qt 2D affine Constructs a 4x4 matrix from a conventional Qt 2D affine
transformation \a matrix. transformation \a matrix.
@ -218,6 +221,7 @@ QMatrix4x4::QMatrix4x4(const QMatrix& matrix)
m[3][3] = 1.0f; m[3][3] = 1.0f;
flagBits = Translation | Scale | Rotation2D; flagBits = Translation | Scale | Rotation2D;
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
Constructs a 4x4 matrix from the conventional Qt 2D Constructs a 4x4 matrix from the conventional Qt 2D
@ -1659,7 +1663,12 @@ void QMatrix4x4::copyDataTo(float *values) const
values[row * 4 + col] = float(m[col][row]); values[row * 4 + col] = float(m[col][row]);
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\obsolete
Use toTransform() instead.
Returns the conventional Qt 2D affine transformation matrix that Returns the conventional Qt 2D affine transformation matrix that
corresponds to this matrix. It is assumed that this matrix corresponds to this matrix. It is assumed that this matrix
only contains 2D affine transformation elements. only contains 2D affine transformation elements.
@ -1672,6 +1681,7 @@ QMatrix QMatrix4x4::toAffine() const
m[1][0], m[1][1], m[1][0], m[1][1],
m[3][0], m[3][1]); m[3][0], m[3][1]);
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
Returns the conventional Qt 2D transformation matrix that Returns the conventional Qt 2D transformation matrix that

View File

@ -72,7 +72,9 @@ public:
QMatrix4x4(const float *values, int cols, int rows); QMatrix4x4(const float *values, int cols, int rows);
QMatrix4x4(const QTransform& transform); QMatrix4x4(const QTransform& transform);
#if QT_DEPRECATED_SINCE(5, 15)
QMatrix4x4(const QMatrix& matrix); QMatrix4x4(const QMatrix& matrix);
#endif // QT_DEPRECATED_SINCE(5, 15)
inline const float& operator()(int row, int column) const; inline const float& operator()(int row, int column) const;
inline float& operator()(int row, int column); inline float& operator()(int row, int column);
@ -156,7 +158,9 @@ public:
void copyDataTo(float *values) const; void copyDataTo(float *values) const;
QMatrix toAffine() const; #if QT_DEPRECATED_SINCE(5, 15)
QT_DEPRECATED_X("Use toTransform()") QMatrix toAffine() const;
#endif // QT_DEPRECATED_SINCE(5, 15)
QTransform toTransform() const; QTransform toTransform() const;
QTransform toTransform(float distanceToPlane) const; QTransform toTransform(float distanceToPlane) const;

View File

@ -893,8 +893,12 @@ bool QBrush::isOpaque() const
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\since 4.2 \since 4.2
\obsolete
Use setTransform() instead.
Sets \a matrix as an explicit transformation matrix on the Sets \a matrix as an explicit transformation matrix on the
current brush. The brush transformation matrix is merged with current brush. The brush transformation matrix is merged with
@ -906,6 +910,7 @@ void QBrush::setMatrix(const QMatrix &matrix)
{ {
setTransform(QTransform(matrix)); setTransform(QTransform(matrix));
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\since 4.3 \since 4.3
@ -923,14 +928,19 @@ void QBrush::setTransform(const QTransform &matrix)
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\fn void QBrush::matrix() const \fn void QBrush::matrix() const
\since 4.2 \since 4.2
\obsolete
Use transform() instead.
Returns the current transformation matrix for the brush. Returns the current transformation matrix for the brush.
\sa setMatrix() \sa setMatrix()
*/ */
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\fn bool QBrush::operator!=(const QBrush &brush) const \fn bool QBrush::operator!=(const QBrush &brush) const

View File

@ -89,8 +89,10 @@ public:
inline Qt::BrushStyle style() const; inline Qt::BrushStyle style() const;
void setStyle(Qt::BrushStyle); void setStyle(Qt::BrushStyle);
inline const QMatrix &matrix() const; #if QT_DEPRECATED_SINCE(5, 15)
void setMatrix(const QMatrix &mat); QT_DEPRECATED_X("Use transform()") inline const QMatrix &matrix() const;
QT_DEPRECATED_X("Use setTransform()") void setMatrix(const QMatrix &mat);
#endif // QT_DEPRECATED_SINCE(5, 15)
inline QTransform transform() const; inline QTransform transform() const;
void setTransform(const QTransform &); void setTransform(const QTransform &);
@ -157,7 +159,10 @@ struct QBrushData
inline Qt::BrushStyle QBrush::style() const { return d->style; } inline Qt::BrushStyle QBrush::style() const { return d->style; }
inline const QColor &QBrush::color() const { return d->color; } inline const QColor &QBrush::color() const { return d->color; }
#if QT_DEPRECATED_SINCE(5, 15)
QT_DEPRECATED_X("Use transform()")
inline const QMatrix &QBrush::matrix() const { return d->transform.toAffine(); } inline const QMatrix &QBrush::matrix() const { return d->transform.toAffine(); }
#endif // QT_DEPRECATED_SINCE(5, 15)
inline QTransform QBrush::transform() const { return d->transform; } inline QTransform QBrush::transform() const { return d->transform; }
inline bool QBrush::isDetached() const { return d->ref.loadRelaxed() == 1; } inline bool QBrush::isDetached() const { return d->ref.loadRelaxed() == 1; }

View File

@ -45,6 +45,7 @@
#include "qregion.h" #include "qregion.h"
#include "qpainterpath.h" #include "qpainterpath.h"
#include "qpainterpath_p.h" #include "qpainterpath_p.h"
#include "qtransform.h"
#include "qvariant.h" #include "qvariant.h"
#include <qmath.h> #include <qmath.h>
@ -680,7 +681,7 @@ QRegion QMatrix::map(const QRegion &r) const
} }
QPainterPath p = map(qt_regionToPath(r)); QPainterPath p = map(qt_regionToPath(r));
return p.toFillPolygon().toPolygon(); return p.toFillPolygon(QTransform()).toPolygon();
} }
/*! /*!

View File

@ -508,7 +508,7 @@ void QPaintEngine::drawEllipse(const QRectF &rect)
if (hasFeature(PainterPaths)) { if (hasFeature(PainterPaths)) {
drawPath(path); drawPath(path);
} else { } else {
QPolygonF polygon = path.toFillPolygon(); QPolygonF polygon = path.toFillPolygon(QTransform());
drawPolygon(polygon.data(), polygon.size(), ConvexMode); drawPolygon(polygon.data(), polygon.size(), ConvexMode);
} }
} }

View File

@ -273,7 +273,9 @@ public:
QBrush backgroundBrush() const; QBrush backgroundBrush() const;
Qt::BGMode backgroundMode() const; Qt::BGMode backgroundMode() const;
QFont font() const; QFont font() const;
QMatrix matrix() const; #if QT_DEPRECATED_SINCE(5, 15)
QT_DEPRECATED_X("Use transform()") QMatrix matrix() const;
#endif // QT_DEPRECATED_SINCE(5, 15)
QTransform transform() const; QTransform transform() const;
Qt::ClipOperation clipOperation() const; Qt::ClipOperation clipOperation() const;

View File

@ -2555,19 +2555,19 @@ QRegion QPainter::clipRegion() const
case QPainterClipInfo::PathClip: { case QPainterClipInfo::PathClip: {
QTransform matrix = (info.matrix * d->invMatrix); QTransform matrix = (info.matrix * d->invMatrix);
if (lastWasNothing) { if (lastWasNothing) {
region = QRegion((info.path * matrix).toFillPolygon().toPolygon(), region = QRegion((info.path * matrix).toFillPolygon(QTransform()).toPolygon(),
info.path.fillRule()); info.path.fillRule());
lastWasNothing = false; lastWasNothing = false;
continue; continue;
} }
if (info.operation == Qt::IntersectClip) { if (info.operation == Qt::IntersectClip) {
region &= QRegion((info.path * matrix).toFillPolygon().toPolygon(), region &= QRegion((info.path * matrix).toFillPolygon(QTransform()).toPolygon(),
info.path.fillRule()); info.path.fillRule());
} else if (info.operation == Qt::NoClip) { } else if (info.operation == Qt::NoClip) {
lastWasNothing = true; lastWasNothing = true;
region = QRegion(); region = QRegion();
} else { } else {
region = QRegion((info.path * matrix).toFillPolygon().toPolygon(), region = QRegion((info.path * matrix).toFillPolygon(QTransform()).toPolygon(),
info.path.fillRule()); info.path.fillRule());
} }
break; break;
@ -8089,6 +8089,8 @@ QFont QPaintEngineState::font() const
\since 4.2 \since 4.2
\obsolete \obsolete
Use transform() instead.
Returns the matrix in the current paint engine Returns the matrix in the current paint engine
state. state.

View File

@ -72,7 +72,6 @@ class QPen;
class QPolygon; class QPolygon;
class QTextItem; class QTextItem;
class QTextEngine; class QTextEngine;
class QMatrix;
class QTransform; class QTransform;
class QStaticText; class QStaticText;
class QGlyphRun; class QGlyphRun;

View File

@ -59,7 +59,6 @@
#include "QtGui/qfont.h" #include "QtGui/qfont.h"
#include "QtGui/qpen.h" #include "QtGui/qpen.h"
#include "QtGui/qregion.h" #include "QtGui/qregion.h"
#include "QtGui/qmatrix.h"
#include "QtGui/qpainter.h" #include "QtGui/qpainter.h"
#include "QtGui/qpainterpath.h" #include "QtGui/qpainterpath.h"
#include "QtGui/qpaintengine.h" #include "QtGui/qpaintengine.h"

View File

@ -1660,13 +1660,18 @@ QList<QPolygonF> QPainterPath::toSubpathPolygons(const QTransform &matrix) const
return flatCurves; return flatCurves;
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\overload \overload
\obsolete
Use toSubpathPolygons(const QTransform &matrix) instead.
*/ */
QList<QPolygonF> QPainterPath::toSubpathPolygons(const QMatrix &matrix) const QList<QPolygonF> QPainterPath::toSubpathPolygons(const QMatrix &matrix) const
{ {
return toSubpathPolygons(QTransform(matrix)); return toSubpathPolygons(QTransform(matrix));
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
Converts the path into a list of polygons using the Converts the path into a list of polygons using the
@ -1787,13 +1792,18 @@ QList<QPolygonF> QPainterPath::toFillPolygons(const QTransform &matrix) const
return polys; return polys;
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\overload \overload
\obsolete
Use toFillPolygons(const QTransform &matrix) instead.
*/ */
QList<QPolygonF> QPainterPath::toFillPolygons(const QMatrix &matrix) const QList<QPolygonF> QPainterPath::toFillPolygons(const QMatrix &matrix) const
{ {
return toFillPolygons(QTransform(matrix)); return toFillPolygons(QTransform(matrix));
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
//same as qt_polygon_isect_line in qpolygon.cpp //same as qt_polygon_isect_line in qpolygon.cpp
static void qt_painterpath_isect_line(const QPointF &p1, static void qt_painterpath_isect_line(const QPointF &p1,
@ -2904,14 +2914,18 @@ QPolygonF QPainterPath::toFillPolygon(const QTransform &matrix) const
return polygon; return polygon;
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\overload \overload
\obsolete
Use toFillPolygon(const QTransform &matrix) instead.
*/ */
QPolygonF QPainterPath::toFillPolygon(const QMatrix &matrix) const QPolygonF QPainterPath::toFillPolygon(const QMatrix &matrix) const
{ {
return toFillPolygon(QTransform(matrix)); return toFillPolygon(QTransform(matrix));
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
//derivative of the equation //derivative of the equation
static inline qreal slopeAt(qreal t, qreal a, qreal b, qreal c, qreal d) static inline qreal slopeAt(qreal t, qreal a, qreal b, qreal c, qreal d)

View File

@ -175,9 +175,15 @@ public:
bool isEmpty() const; bool isEmpty() const;
Q_REQUIRED_RESULT QPainterPath toReversed() const; Q_REQUIRED_RESULT QPainterPath toReversed() const;
#if QT_DEPRECATED_SINCE(5, 15)
QT_DEPRECATED_X("Use toSubpathPolygons(const QTransform &)")
QList<QPolygonF> toSubpathPolygons(const QMatrix &matrix = QMatrix()) const; QList<QPolygonF> toSubpathPolygons(const QMatrix &matrix = QMatrix()) const;
QT_DEPRECATED_X("Use toFillPolygons(const QTransform &")
QList<QPolygonF> toFillPolygons(const QMatrix &matrix = QMatrix()) const; QList<QPolygonF> toFillPolygons(const QMatrix &matrix = QMatrix()) const;
QT_DEPRECATED_X("Use toFillPolygon(const QTransform &)")
QPolygonF toFillPolygon(const QMatrix &matrix = QMatrix()) const; QPolygonF toFillPolygon(const QMatrix &matrix = QMatrix()) const;
#endif // QT_DEPRECATED_SINCE(5, 15)
QList<QPolygonF> toSubpathPolygons(const QTransform &matrix) const; QList<QPolygonF> toSubpathPolygons(const QTransform &matrix) const;
QList<QPolygonF> toFillPolygons(const QTransform &matrix) const; QList<QPolygonF> toFillPolygons(const QTransform &matrix) const;
QPolygonF toFillPolygon(const QTransform &matrix) const; QPolygonF toFillPolygon(const QTransform &matrix) const;

View File

@ -55,7 +55,6 @@
#ifndef QT_NO_PDF #ifndef QT_NO_PDF
#include "QtGui/qmatrix.h"
#include "QtCore/qstring.h" #include "QtCore/qstring.h"
#include "QtCore/qvector.h" #include "QtCore/qvector.h"
#include "private/qstroker_p.h" #include "private/qstroker_p.h"

View File

@ -40,9 +40,9 @@
#include "qpolygon.h" #include "qpolygon.h"
#include "qrect.h" #include "qrect.h"
#include "qdatastream.h" #include "qdatastream.h"
#include "qmatrix.h"
#include "qdebug.h" #include "qdebug.h"
#include "qpainterpath.h" #include "qpainterpath.h"
#include "qtransform.h"
#include "qvariant.h" #include "qvariant.h"
#include "qpainterpath_p.h" #include "qpainterpath_p.h"
#include "qbezier_p.h" #include "qbezier_p.h"
@ -111,7 +111,7 @@ static void qt_polygon_isect_line(const QPointF &p1, const QPointF &p2, const QP
from a specified index (resizing the polygon if necessary). from a specified index (resizing the polygon if necessary).
QPolygon provides the boundingRect() and translate() functions for QPolygon provides the boundingRect() and translate() functions for
geometry functions. Use the QMatrix::map() function for more geometry functions. Use the QTransform::map() function for more
general transformations of QPolygons. general transformations of QPolygons.
The QPolygon class is \l {Implicit Data Sharing}{implicitly The QPolygon class is \l {Implicit Data Sharing}{implicitly
@ -495,7 +495,7 @@ QDebug operator<<(QDebug dbg, const QPolygon &a)
In addition to the functions provided by QVector, QPolygonF In addition to the functions provided by QVector, QPolygonF
provides the boundingRect() and translate() functions for geometry provides the boundingRect() and translate() functions for geometry
operations. Use the QMatrix::map() function for more general operations. Use the QTransform::map() function for more general
transformations of QPolygonFs. transformations of QPolygonFs.
QPolygonF also provides the isClosed() function to determine QPolygonF also provides the isClosed() function to determine
@ -899,7 +899,7 @@ QPolygon QPolygon::united(const QPolygon &r) const
QPainterPath subject; subject.addPolygon(*this); QPainterPath subject; subject.addPolygon(*this);
QPainterPath clip; clip.addPolygon(r); QPainterPath clip; clip.addPolygon(r);
return subject.united(clip).toFillPolygon().toPolygon(); return subject.united(clip).toFillPolygon(QTransform()).toPolygon();
} }
/*! /*!
@ -918,7 +918,7 @@ QPolygon QPolygon::intersected(const QPolygon &r) const
QPainterPath subject; subject.addPolygon(*this); QPainterPath subject; subject.addPolygon(*this);
QPainterPath clip; clip.addPolygon(r); QPainterPath clip; clip.addPolygon(r);
return subject.intersected(clip).toFillPolygon().toPolygon(); return subject.intersected(clip).toFillPolygon(QTransform()).toPolygon();
} }
/*! /*!
@ -936,7 +936,7 @@ QPolygon QPolygon::subtracted(const QPolygon &r) const
QPainterPath subject; subject.addPolygon(*this); QPainterPath subject; subject.addPolygon(*this);
QPainterPath clip; clip.addPolygon(r); QPainterPath clip; clip.addPolygon(r);
return subject.subtracted(clip).toFillPolygon().toPolygon(); return subject.subtracted(clip).toFillPolygon(QTransform()).toPolygon();
} }
/*! /*!
@ -975,7 +975,7 @@ QPolygonF QPolygonF::united(const QPolygonF &r) const
QPainterPath subject; subject.addPolygon(*this); QPainterPath subject; subject.addPolygon(*this);
QPainterPath clip; clip.addPolygon(r); QPainterPath clip; clip.addPolygon(r);
return subject.united(clip).toFillPolygon(); return subject.united(clip).toFillPolygon(QTransform());
} }
/*! /*!
@ -994,7 +994,7 @@ QPolygonF QPolygonF::intersected(const QPolygonF &r) const
QPainterPath subject; subject.addPolygon(*this); QPainterPath subject; subject.addPolygon(*this);
QPainterPath clip; clip.addPolygon(r); QPainterPath clip; clip.addPolygon(r);
return subject.intersected(clip).toFillPolygon(); return subject.intersected(clip).toFillPolygon(QTransform());
} }
/*! /*!
@ -1011,7 +1011,7 @@ QPolygonF QPolygonF::subtracted(const QPolygonF &r) const
{ {
QPainterPath subject; subject.addPolygon(*this); QPainterPath subject; subject.addPolygon(*this);
QPainterPath clip; clip.addPolygon(r); QPainterPath clip; clip.addPolygon(r);
return subject.subtracted(clip).toFillPolygon(); return subject.subtracted(clip).toFillPolygon(QTransform());
} }
/*! /*!

View File

@ -46,6 +46,7 @@
#include "qvarlengtharray.h" #include "qvarlengtharray.h"
#include "qimage.h" #include "qimage.h"
#include "qbitmap.h" #include "qbitmap.h"
#include "qtransform.h"
#include <private/qdebug_p.h> #include <private/qdebug_p.h>
@ -3916,7 +3917,7 @@ QRegion::QRegion(const QRect &r, RegionType t)
} else if (t == Ellipse) { } else if (t == Ellipse) {
QPainterPath path; QPainterPath path;
path.addEllipse(r.x(), r.y(), r.width(), r.height()); path.addEllipse(r.x(), r.y(), r.width(), r.height());
QPolygon a = path.toSubpathPolygons().at(0).toPolygon(); QPolygon a = path.toSubpathPolygons(QTransform()).at(0).toPolygon();
d->qt_rgn = PolygonRegion(a.constData(), a.size(), EvenOddRule); d->qt_rgn = PolygonRegion(a.constData(), a.size(), EvenOddRule);
} }
} }

View File

@ -311,8 +311,10 @@ QTransform::QTransform(qreal h11, qreal h12, qreal h21,
{ {
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\fn QTransform::QTransform(const QMatrix &matrix) \fn QTransform::QTransform(const QMatrix &matrix)
\obsolete
Constructs a matrix that is a copy of the given \a matrix. Constructs a matrix that is a copy of the given \a matrix.
Note that the \c m13, \c m23, and \c m33 elements are set to 0, 0, Note that the \c m13, \c m23, and \c m33 elements are set to 0, 0,
@ -328,6 +330,7 @@ QTransform::QTransform(const QMatrix &mtx)
#endif #endif
{ {
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
Returns the adjoint of this matrix. Returns the adjoint of this matrix.
@ -2082,7 +2085,9 @@ void QTransform::map(int x, int y, int *tx, int *ty) const
*ty = qRound(fy); *ty = qRound(fy);
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\obsolete
Returns the QTransform as an affine matrix. Returns the QTransform as an affine matrix.
\warning If a perspective transformation has been specified, \warning If a perspective transformation has been specified,
@ -2092,6 +2097,7 @@ const QMatrix &QTransform::toAffine() const
{ {
return affine; return affine;
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
Returns the transformation type of this matrix. Returns the transformation type of this matrix.

View File

@ -73,7 +73,9 @@ public:
qreal h31, qreal h32, qreal h33 = 1.0); qreal h31, qreal h32, qreal h33 = 1.0);
QTransform(qreal h11, qreal h12, qreal h21, QTransform(qreal h11, qreal h12, qreal h21,
qreal h22, qreal dx, qreal dy); qreal h22, qreal dx, qreal dy);
#if QT_DEPRECATED_SINCE(5, 15)
explicit QTransform(const QMatrix &mtx); explicit QTransform(const QMatrix &mtx);
#endif // QT_DEPRECATED_SINCE(5, 15)
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
// ### Qt 6: remove; the compiler-generated ones are fine! // ### Qt 6: remove; the compiler-generated ones are fine!
@ -158,7 +160,9 @@ public:
void map(int x, int y, int *tx, int *ty) const; void map(int x, int y, int *tx, int *ty) const;
void map(qreal x, qreal y, qreal *tx, qreal *ty) const; void map(qreal x, qreal y, qreal *tx, qreal *ty) const;
#if QT_DEPRECATED_SINCE(5, 15)
const QMatrix &toAffine() const; const QMatrix &toAffine() const;
#endif // QT_DEPRECATED_SINCE(5, 15)
QTransform &operator*=(qreal div); QTransform &operator*=(qreal div);
QTransform &operator/=(qreal div); QTransform &operator/=(qreal div);

View File

@ -1025,7 +1025,7 @@ bool QWindowsXPStylePrivate::drawBackgroundThruNativeBuffer(XPThemeData &themeDa
imgCopy = cachedPixmap.toImage(); imgCopy = cachedPixmap.toImage();
if (themeData.rotate) { if (themeData.rotate) {
QMatrix rotMatrix; QTransform rotMatrix;
rotMatrix.rotate(themeData.rotate); rotMatrix.rotate(themeData.rotate);
imgCopy = imgCopy.transformed(rotMatrix); imgCopy = imgCopy.transformed(rotMatrix);
} }

View File

@ -55,7 +55,6 @@
#ifndef QT_NO_PRINTER #ifndef QT_NO_PRINTER
#include "QtCore/qmap.h" #include "QtCore/qmap.h"
#include "QtGui/qmatrix.h"
#include "QtCore/qstring.h" #include "QtCore/qstring.h"
#include "QtCore/qvector.h" #include "QtCore/qvector.h"
#include "QtGui/qpaintengine.h" #include "QtGui/qpaintengine.h"

View File

@ -264,7 +264,7 @@ void QPrintPreviewWidgetPrivate::_q_fit(bool doFitting)
} else { } else {
graphicsView->fitInView(target, Qt::KeepAspectRatio); graphicsView->fitInView(target, Qt::KeepAspectRatio);
if (zoomMode == QPrintPreviewWidget::FitInView) { if (zoomMode == QPrintPreviewWidget::FitInView) {
int step = qRound(graphicsView->matrix().mapRect(target).height()); const int step = qRound(graphicsView->transform().mapRect(target).height());
graphicsView->verticalScrollBar()->setSingleStep(step); graphicsView->verticalScrollBar()->setSingleStep(step);
graphicsView->verticalScrollBar()->setPageStep(step); graphicsView->verticalScrollBar()->setPageStep(step);
} }

View File

@ -380,10 +380,10 @@ void JavaStyle::drawControl(ControlElement control, const QStyleOption *option,
QRect rect = bar->rect; QRect rect = bar->rect;
if (bar->orientation == Qt::Vertical) { if (bar->orientation == Qt::Vertical) {
rect = QRect(rect.left(), rect.top(), rect.height(), rect.width()); rect = QRect(rect.left(), rect.top(), rect.height(), rect.width());
QMatrix m; QTransform m;
m.translate(rect.height()-1, 0); m.translate(rect.height()-1, 0);
m.rotate(90.0); m.rotate(90.0);
painter->setMatrix(m); painter->setTransform(m);
} }
painter->setPen(bar->palette.color(QPalette::Mid)); painter->setPen(bar->palette.color(QPalette::Mid));

View File

@ -231,7 +231,6 @@
#include <QtWidgets/qgraphicslayout.h> #include <QtWidgets/qgraphicslayout.h>
#include <QtWidgets/qgraphicsproxywidget.h> #include <QtWidgets/qgraphicsproxywidget.h>
#include <QtWidgets/qgraphicswidget.h> #include <QtWidgets/qgraphicswidget.h>
#include <QtGui/qmatrix.h>
#include <QtGui/qpaintengine.h> #include <QtGui/qpaintengine.h>
#include <QtGui/qpainter.h> #include <QtGui/qpainter.h>
#include <QtGui/qpixmapcache.h> #include <QtGui/qpixmapcache.h>

View File

@ -47,7 +47,6 @@
#include <QtGui/qbrush.h> #include <QtGui/qbrush.h>
#include <QtGui/qfont.h> #include <QtGui/qfont.h>
#include <QtGui/qtransform.h> #include <QtGui/qtransform.h>
#include <QtGui/qmatrix.h>
#include <QtGui/qpen.h> #include <QtGui/qpen.h>
QT_REQUIRE_CONFIG(graphicsview); QT_REQUIRE_CONFIG(graphicsview);

View File

@ -1795,7 +1795,13 @@ void QGraphicsView::setSceneRect(const QRectF &rect)
d->recalculateContentSize(); d->recalculateContentSize();
} }
#if QT_DEPRECATED_SINCE(5, 15)
/*! /*!
\obsolete
Use transform() instead.
Returns the current transformation matrix for the view. If no current Returns the current transformation matrix for the view. If no current
transformation is set, the identity matrix is returned. transformation is set, the identity matrix is returned.
@ -1808,6 +1814,10 @@ QMatrix QGraphicsView::matrix() const
} }
/*! /*!
\obsolete
Use setTransform() instead.
Sets the view's current transformation matrix to \a matrix. Sets the view's current transformation matrix to \a matrix.
If \a combine is true, then \a matrix is combined with the current matrix; If \a combine is true, then \a matrix is combined with the current matrix;
@ -1839,6 +1849,10 @@ void QGraphicsView::setMatrix(const QMatrix &matrix, bool combine)
} }
/*! /*!
\obsolete
Use resetTransform() instead.
Resets the view transformation matrix to the identity matrix. Resets the view transformation matrix to the identity matrix.
\sa resetTransform() \sa resetTransform()
@ -1848,6 +1862,8 @@ void QGraphicsView::resetMatrix()
resetTransform(); resetTransform();
} }
#endif // QT_DEPRECATED_SINCE(5, 15)
/*! /*!
Rotates the current view transformation \a angle degrees clockwise. Rotates the current view transformation \a angle degrees clockwise.

View File

@ -165,9 +165,11 @@ public:
void setSceneRect(const QRectF &rect); void setSceneRect(const QRectF &rect);
inline void setSceneRect(qreal x, qreal y, qreal w, qreal h); inline void setSceneRect(qreal x, qreal y, qreal w, qreal h);
QMatrix matrix() const; #if QT_DEPRECATED_SINCE(5, 15)
void setMatrix(const QMatrix &matrix, bool combine = false); QT_DEPRECATED_X("Use transform()") QMatrix matrix() const;
void resetMatrix(); QT_DEPRECATED_X("Use setTransform()") void setMatrix(const QMatrix &matrix, bool combine = false);
QT_DEPRECATED_X("Use resetTransform()") void resetMatrix();
#endif // QT_DEPRECATED_SINCE(5, 15)
QTransform transform() const; QTransform transform() const;
QTransform viewportTransform() const; QTransform viewportTransform() const;
bool isTransformed() const; bool isTransformed() const;

View File

@ -1556,7 +1556,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
qint64 maximum = qint64(pb->maximum); qint64 maximum = qint64(pb->maximum);
qint64 progress = qint64(pb->progress); qint64 progress = qint64(pb->progress);
QMatrix m; QTransform m;
if (vertical) { if (vertical) {
rect = QRect(rect.y(), rect.x(), rect.height(), rect.width()); // flip width and height rect = QRect(rect.y(), rect.x(), rect.height(), rect.width()); // flip width and height

View File

@ -1692,7 +1692,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
const bool vertical = pb->orientation == Qt::Vertical; const bool vertical = pb->orientation == Qt::Vertical;
const bool inverted = pb->invertedAppearance; const bool inverted = pb->invertedAppearance;
QMatrix m; QTransform m;
if (vertical) { if (vertical) {
rect = QRect(rect.y(), rect.x(), rect.height(), rect.width()); // flip width and height rect = QRect(rect.y(), rect.x(), rect.height(), rect.width()); // flip width and height
m.rotate(90); m.rotate(90);

View File

@ -992,12 +992,12 @@ void QWidgetTextControl::selectAll()
void QWidgetTextControl::processEvent(QEvent *e, const QPointF &coordinateOffset, QWidget *contextWidget) void QWidgetTextControl::processEvent(QEvent *e, const QPointF &coordinateOffset, QWidget *contextWidget)
{ {
QMatrix m; QTransform t;
m.translate(coordinateOffset.x(), coordinateOffset.y()); t.translate(coordinateOffset.x(), coordinateOffset.y());
processEvent(e, m, contextWidget); processEvent(e, t, contextWidget);
} }
void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget *contextWidget) void QWidgetTextControl::processEvent(QEvent *e, const QTransform &transform, QWidget *contextWidget)
{ {
Q_D(QWidgetTextControl); Q_D(QWidgetTextControl);
if (d->interactionFlags == Qt::NoTextInteraction) { if (d->interactionFlags == Qt::NoTextInteraction) {
@ -1038,22 +1038,22 @@ void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget
break; break;
case QEvent::MouseButtonPress: { case QEvent::MouseButtonPress: {
QMouseEvent *ev = static_cast<QMouseEvent *>(e); QMouseEvent *ev = static_cast<QMouseEvent *>(e);
d->mousePressEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), d->mousePressEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(),
ev->buttons(), ev->globalPos()); ev->buttons(), ev->globalPos());
break; } break; }
case QEvent::MouseMove: { case QEvent::MouseMove: {
QMouseEvent *ev = static_cast<QMouseEvent *>(e); QMouseEvent *ev = static_cast<QMouseEvent *>(e);
d->mouseMoveEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), d->mouseMoveEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(),
ev->buttons(), ev->globalPos()); ev->buttons(), ev->globalPos());
break; } break; }
case QEvent::MouseButtonRelease: { case QEvent::MouseButtonRelease: {
QMouseEvent *ev = static_cast<QMouseEvent *>(e); QMouseEvent *ev = static_cast<QMouseEvent *>(e);
d->mouseReleaseEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), d->mouseReleaseEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(),
ev->buttons(), ev->globalPos()); ev->buttons(), ev->globalPos());
break; } break; }
case QEvent::MouseButtonDblClick: { case QEvent::MouseButtonDblClick: {
QMouseEvent *ev = static_cast<QMouseEvent *>(e); QMouseEvent *ev = static_cast<QMouseEvent *>(e);
d->mouseDoubleClickEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), d->mouseDoubleClickEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(),
ev->buttons(), ev->globalPos()); ev->buttons(), ev->globalPos());
break; } break; }
case QEvent::InputMethod: case QEvent::InputMethod:
@ -1062,7 +1062,7 @@ void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget
#ifndef QT_NO_CONTEXTMENU #ifndef QT_NO_CONTEXTMENU
case QEvent::ContextMenu: { case QEvent::ContextMenu: {
QContextMenuEvent *ev = static_cast<QContextMenuEvent *>(e); QContextMenuEvent *ev = static_cast<QContextMenuEvent *>(e);
d->contextMenuEvent(ev->globalPos(), matrix.map(ev->pos()), contextWidget); d->contextMenuEvent(ev->globalPos(), transform.map(ev->pos()), contextWidget);
break; } break; }
#endif // QT_NO_CONTEXTMENU #endif // QT_NO_CONTEXTMENU
case QEvent::FocusIn: case QEvent::FocusIn:
@ -1077,7 +1077,7 @@ void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget
#ifndef QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP
case QEvent::ToolTip: { case QEvent::ToolTip: {
QHelpEvent *ev = static_cast<QHelpEvent *>(e); QHelpEvent *ev = static_cast<QHelpEvent *>(e);
d->showToolTip(ev->globalPos(), matrix.map(ev->pos()), contextWidget); d->showToolTip(ev->globalPos(), transform.map(ev->pos()), contextWidget);
break; break;
} }
#endif // QT_NO_TOOLTIP #endif // QT_NO_TOOLTIP
@ -1094,13 +1094,13 @@ void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget
break; break;
case QEvent::DragMove: { case QEvent::DragMove: {
QDragMoveEvent *ev = static_cast<QDragMoveEvent *>(e); QDragMoveEvent *ev = static_cast<QDragMoveEvent *>(e);
if (d->dragMoveEvent(e, ev->mimeData(), matrix.map(ev->pos()))) if (d->dragMoveEvent(e, ev->mimeData(), transform.map(ev->pos())))
ev->acceptProposedAction(); ev->acceptProposedAction();
break; break;
} }
case QEvent::Drop: { case QEvent::Drop: {
QDropEvent *ev = static_cast<QDropEvent *>(e); QDropEvent *ev = static_cast<QDropEvent *>(e);
if (d->dropEvent(ev->mimeData(), matrix.map(ev->pos()), ev->dropAction(), ev->source())) if (d->dropEvent(ev->mimeData(), transform.map(ev->pos()), ev->dropAction(), ev->source()))
ev->acceptProposedAction(); ev->acceptProposedAction();
break; break;
} }
@ -1109,32 +1109,32 @@ void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget
#if QT_CONFIG(graphicsview) #if QT_CONFIG(graphicsview)
case QEvent::GraphicsSceneMousePress: { case QEvent::GraphicsSceneMousePress: {
QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e); QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e);
d->mousePressEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), d->mousePressEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(), ev->buttons(),
ev->screenPos()); ev->screenPos());
break; } break; }
case QEvent::GraphicsSceneMouseMove: { case QEvent::GraphicsSceneMouseMove: {
QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e); QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e);
d->mouseMoveEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), d->mouseMoveEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(), ev->buttons(),
ev->screenPos()); ev->screenPos());
break; } break; }
case QEvent::GraphicsSceneMouseRelease: { case QEvent::GraphicsSceneMouseRelease: {
QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e); QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e);
d->mouseReleaseEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), d->mouseReleaseEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(), ev->buttons(),
ev->screenPos()); ev->screenPos());
break; } break; }
case QEvent::GraphicsSceneMouseDoubleClick: { case QEvent::GraphicsSceneMouseDoubleClick: {
QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e); QGraphicsSceneMouseEvent *ev = static_cast<QGraphicsSceneMouseEvent *>(e);
d->mouseDoubleClickEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), d->mouseDoubleClickEvent(ev, ev->button(), transform.map(ev->pos()), ev->modifiers(), ev->buttons(),
ev->screenPos()); ev->screenPos());
break; } break; }
case QEvent::GraphicsSceneContextMenu: { case QEvent::GraphicsSceneContextMenu: {
QGraphicsSceneContextMenuEvent *ev = static_cast<QGraphicsSceneContextMenuEvent *>(e); QGraphicsSceneContextMenuEvent *ev = static_cast<QGraphicsSceneContextMenuEvent *>(e);
d->contextMenuEvent(ev->screenPos(), matrix.map(ev->pos()), contextWidget); d->contextMenuEvent(ev->screenPos(), transform.map(ev->pos()), contextWidget);
break; } break; }
case QEvent::GraphicsSceneHoverMove: { case QEvent::GraphicsSceneHoverMove: {
QGraphicsSceneHoverEvent *ev = static_cast<QGraphicsSceneHoverEvent *>(e); QGraphicsSceneHoverEvent *ev = static_cast<QGraphicsSceneHoverEvent *>(e);
d->mouseMoveEvent(ev, Qt::NoButton, matrix.map(ev->pos()), ev->modifiers(),Qt::NoButton, d->mouseMoveEvent(ev, Qt::NoButton, transform.map(ev->pos()), ev->modifiers(),Qt::NoButton,
ev->screenPos()); ev->screenPos());
break; } break; }
@ -1148,12 +1148,12 @@ void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget
break; break;
case QEvent::GraphicsSceneDragMove: { case QEvent::GraphicsSceneDragMove: {
QGraphicsSceneDragDropEvent *ev = static_cast<QGraphicsSceneDragDropEvent *>(e); QGraphicsSceneDragDropEvent *ev = static_cast<QGraphicsSceneDragDropEvent *>(e);
if (d->dragMoveEvent(e, ev->mimeData(), matrix.map(ev->pos()))) if (d->dragMoveEvent(e, ev->mimeData(), transform.map(ev->pos())))
ev->acceptProposedAction(); ev->acceptProposedAction();
break; } break; }
case QEvent::GraphicsSceneDrop: { case QEvent::GraphicsSceneDrop: {
QGraphicsSceneDragDropEvent *ev = static_cast<QGraphicsSceneDragDropEvent *>(e); QGraphicsSceneDragDropEvent *ev = static_cast<QGraphicsSceneDragDropEvent *>(e);
if (d->dropEvent(ev->mimeData(), matrix.map(ev->pos()), ev->dropAction(), ev->source())) if (d->dropEvent(ev->mimeData(), transform.map(ev->pos()), ev->dropAction(), ev->source()))
ev->accept(); ev->accept();
break; } break; }
#endif // QT_CONFIG(graphicsview) #endif // QT_CONFIG(graphicsview)

View File

@ -252,7 +252,7 @@ public:
QPalette palette() const; QPalette palette() const;
void setPalette(const QPalette &pal); void setPalette(const QPalette &pal);
virtual void processEvent(QEvent *e, const QMatrix &matrix, QWidget *contextWidget = nullptr); virtual void processEvent(QEvent *e, const QTransform &transform, QWidget *contextWidget = nullptr);
void processEvent(QEvent *e, const QPointF &coordinateOffset = QPointF(), QWidget *contextWidget = nullptr); void processEvent(QEvent *e, const QPointF &coordinateOffset = QPointF(), QWidget *contextWidget = nullptr);
// control methods // control methods

View File

@ -3296,7 +3296,10 @@ void tst_QDataStream::streamRealDataTypes()
QCOMPARE(col, color); QCOMPARE(col, color);
stream >> rGrad; stream >> rGrad;
QCOMPARE(rGrad.style(), radialBrush.style()); QCOMPARE(rGrad.style(), radialBrush.style());
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
QCOMPARE(rGrad.matrix(), radialBrush.matrix()); QCOMPARE(rGrad.matrix(), radialBrush.matrix());
QT_WARNING_POP
QCOMPARE(rGrad.gradient()->type(), radialBrush.gradient()->type()); QCOMPARE(rGrad.gradient()->type(), radialBrush.gradient()->type());
QCOMPARE(rGrad.gradient()->stops(), radialBrush.gradient()->stops()); QCOMPARE(rGrad.gradient()->stops(), radialBrush.gradient()->stops());
QCOMPARE(rGrad.gradient()->spread(), radialBrush.gradient()->spread()); QCOMPARE(rGrad.gradient()->spread(), radialBrush.gradient()->spread());
@ -3305,7 +3308,10 @@ void tst_QDataStream::streamRealDataTypes()
QCOMPARE(((QRadialGradient *)rGrad.gradient())->radius(), ((QRadialGradient *)radialBrush.gradient())->radius()); QCOMPARE(((QRadialGradient *)rGrad.gradient())->radius(), ((QRadialGradient *)radialBrush.gradient())->radius());
stream >> cGrad; stream >> cGrad;
QCOMPARE(cGrad.style(), conicalBrush.style()); QCOMPARE(cGrad.style(), conicalBrush.style());
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
QCOMPARE(cGrad.matrix(), conicalBrush.matrix()); QCOMPARE(cGrad.matrix(), conicalBrush.matrix());
QT_WARNING_POP
QCOMPARE(cGrad.gradient()->type(), conicalBrush.gradient()->type()); QCOMPARE(cGrad.gradient()->type(), conicalBrush.gradient()->type());
QCOMPARE(cGrad.gradient()->stops(), conicalBrush.gradient()->stops()); QCOMPARE(cGrad.gradient()->stops(), conicalBrush.gradient()->stops());
QCOMPARE(cGrad.gradient()->spread(), conicalBrush.gradient()->spread()); QCOMPARE(cGrad.gradient()->spread(), conicalBrush.gradient()->spread());

View File

@ -32,7 +32,7 @@
#include <qimage.h> #include <qimage.h>
#include <qimagereader.h> #include <qimagereader.h>
#include <qlist.h> #include <qlist.h>
#include <qmatrix.h> #include <qtransform.h>
#include <qrandom.h> #include <qrandom.h>
#include <stdio.h> #include <stdio.h>
@ -1204,7 +1204,7 @@ void tst_QImage::rotate()
// original.save("rotated90_original.png", "png"); // original.save("rotated90_original.png", "png");
// Initialize the matrix manually (do not use rotate) to avoid rounding errors // Initialize the matrix manually (do not use rotate) to avoid rounding errors
QMatrix matRotate90; QTransform matRotate90;
matRotate90.rotate(degrees); matRotate90.rotate(degrees);
QImage dest = original; QImage dest = original;
// And rotate it 4 times, then the image should be identical to the original // And rotate it 4 times, then the image should be identical to the original
@ -1218,7 +1218,7 @@ void tst_QImage::rotate()
// dest.save("rotated90_result.png","png"); // dest.save("rotated90_result.png","png");
QCOMPARE(original, dest); QCOMPARE(original, dest);
// Test with QMatrix::rotate 90 also, since we trust that now // Test with QTransform::rotate 90 also, since we trust that now
matRotate90.rotate(degrees); matRotate90.rotate(degrees);
dest = original; dest = original;
// And rotate it 4 times, then the image should be identical to the original // And rotate it 4 times, then the image should be identical to the original

View File

@ -32,7 +32,6 @@
#include <qbitmap.h> #include <qbitmap.h>
#include <qimage.h> #include <qimage.h>
#include <qimagereader.h> #include <qimagereader.h>
#include <qmatrix.h>
#ifndef QT_NO_WIDGETS #ifndef QT_NO_WIDGETS
#include <qdesktopwidget.h> #include <qdesktopwidget.h>
#include <qsplashscreen.h> #include <qsplashscreen.h>

View File

@ -193,9 +193,14 @@ template<> struct TestValueFactory<QMetaType::QTextLength> {
template<> struct TestValueFactory<QMetaType::QTextFormat> { template<> struct TestValueFactory<QMetaType::QTextFormat> {
static QTextFormat *create() { return new QTextFormat(QTextFormat::FrameFormat); } static QTextFormat *create() { return new QTextFormat(QTextFormat::FrameFormat); }
}; };
#if QT_DEPRECATED_SINCE(5, 15)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
template<> struct TestValueFactory<QMetaType::QMatrix> { template<> struct TestValueFactory<QMetaType::QMatrix> {
static QMatrix *create() { return new QMatrix(10, 20, 30, 40, 50, 60); } static QMatrix *create() { return new QMatrix(10, 20, 30, 40, 50, 60); }
}; };
QT_WARNING_POP
#endif
template<> struct TestValueFactory<QMetaType::QTransform> { template<> struct TestValueFactory<QMetaType::QTransform> {
static QTransform *create() { return new QTransform(10, 20, 30, 40, 50, 60); } static QTransform *create() { return new QTransform(10, 20, 30, 40, 50, 60); }
}; };

View File

@ -402,6 +402,9 @@ void tst_QGuiVariant::toString()
QCOMPARE( str, result ); QCOMPARE( str, result );
} }
#if QT_DEPRECATED_SINCE(5, 15)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
void tst_QGuiVariant::matrix() void tst_QGuiVariant::matrix()
{ {
QVariant variant; QVariant variant;
@ -414,6 +417,8 @@ void tst_QGuiVariant::matrix()
QVERIFY(mmatrix); QVERIFY(mmatrix);
QMetaType::destroy(QVariant::Matrix, mmatrix); QMetaType::destroy(QVariant::Matrix, mmatrix);
} }
QT_WARNING_POP
#endif
void tst_QGuiVariant::matrix4x4() void tst_QGuiVariant::matrix4x4()
{ {

View File

@ -3061,6 +3061,9 @@ void tst_QMatrixNxN::columnsAndRows()
QVERIFY(m1.row(3) == QVector4D(4, 8, 12, 16)); QVERIFY(m1.row(3) == QVector4D(4, 8, 12, 16));
} }
#if QT_DEPRECATED_SINCE(5, 15)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
// Test converting QMatrix objects into QMatrix4x4 and then // Test converting QMatrix objects into QMatrix4x4 and then
// checking that transformations in the original perform the // checking that transformations in the original perform the
// equivalent transformations in the new matrix. // equivalent transformations in the new matrix.
@ -3107,6 +3110,8 @@ void tst_QMatrixNxN::convertQMatrix()
QVERIFY(qFuzzyCompare(float(m5.dx()), float(m7.dx()))); QVERIFY(qFuzzyCompare(float(m5.dx()), float(m7.dx())));
QVERIFY(qFuzzyCompare(float(m5.dy()), float(m7.dy()))); QVERIFY(qFuzzyCompare(float(m5.dy()), float(m7.dy())));
} }
QT_WARNING_POP
#endif
// Test converting QTransform objects into QMatrix4x4 and then // Test converting QTransform objects into QMatrix4x4 and then
// checking that transformations in the original perform the // checking that transformations in the original perform the

View File

@ -1704,8 +1704,11 @@ void tst_QPainter::combinedMatrix()
QTransform ct = p.combinedTransform(); QTransform ct = p.combinedTransform();
#if QT_DEPRECATED_SINCE(5, 13) #if QT_DEPRECATED_SINCE(5, 13)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
QMatrix cm = p.combinedMatrix(); QMatrix cm = p.combinedMatrix();
QCOMPARE(cm, ct.toAffine()); QCOMPARE(cm, ct.toAffine());
QT_WARNING_POP
#endif #endif
QPointF pt = QPointF(0, 0) * ct.toAffine(); QPointF pt = QPointF(0, 0) * ct.toAffine();
@ -2245,7 +2248,7 @@ void tst_QPainter::clippedPolygon()
{ {
QFETCH(QSize, imageSize); QFETCH(QSize, imageSize);
QFETCH(QPainterPath, path); QFETCH(QPainterPath, path);
QPolygonF polygon = path.toFillPolygon(); QPolygonF polygon = path.toFillPolygon(QTransform());
QFETCH(QRect, clipRect); QFETCH(QRect, clipRect);
QPainterPath clipPath; QPainterPath clipPath;
clipPath.addRect(clipRect); clipPath.addRect(clipRect);
@ -3066,7 +3069,7 @@ void tst_QPainter::fpe_steepSlopes_data()
const qreal dsin = 0.000014946676875461832484392500630665523431162000633776187896728515625; const qreal dsin = 0.000014946676875461832484392500630665523431162000633776187896728515625;
const qreal dcos = 0.9999999998882984630910186751862056553363800048828125; const qreal dcos = 0.9999999998882984630910186751862056553363800048828125;
const QTransform transform = QTransform(QMatrix(dcos, dsin, -dsin, dcos, 64, 64)); const QTransform transform = QTransform(dcos, dsin, -dsin, dcos, 64, 64);
const QLineF line(2, 2, 2, 6); const QLineF line(2, 2, 2, 6);
QTest::newRow("task 207147 aa") << transform << line << true; QTest::newRow("task 207147 aa") << transform << line << true;
@ -4064,7 +4067,7 @@ void tst_QPainter::drawPolygon()
path.moveTo(2, 34); path.moveTo(2, 34);
path.lineTo(34, 2); path.lineTo(34, 2);
QPolygonF poly = stroker.createStroke(path).toFillPolygon(); QPolygonF poly = stroker.createStroke(path).toFillPolygon(QTransform());
img.fill(0xffffffff); img.fill(0xffffffff);
QPainter p(&img); QPainter p(&img);
@ -4133,7 +4136,10 @@ void tst_QPainter::inactivePainter()
p.setClipping(true); p.setClipping(true);
#if QT_DEPRECATED_SINCE(5, 13) #if QT_DEPRECATED_SINCE(5, 13)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
p.combinedMatrix(); p.combinedMatrix();
QT_WARNING_POP
#endif #endif
p.combinedTransform(); p.combinedTransform();
@ -4142,7 +4148,10 @@ void tst_QPainter::inactivePainter()
p.device(); p.device();
#if QT_DEPRECATED_SINCE(5, 13) #if QT_DEPRECATED_SINCE(5, 13)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
p.deviceMatrix(); p.deviceMatrix();
QT_WARNING_POP
#endif #endif
p.deviceTransform(); p.deviceTransform();
@ -4168,7 +4177,10 @@ void tst_QPainter::inactivePainter()
p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, false); p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, false);
#if QT_DEPRECATED_SINCE(5, 13) #if QT_DEPRECATED_SINCE(5, 13)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
p.resetMatrix(); p.resetMatrix();
QT_WARNING_POP
#endif #endif
p.resetTransform(); p.resetTransform();
p.rotate(1); p.rotate(1);
@ -4186,8 +4198,11 @@ void tst_QPainter::inactivePainter()
p.setWindow(QRect(10, 10, 620, 460)); p.setWindow(QRect(10, 10, 620, 460));
#if QT_DEPRECATED_SINCE(5, 13) #if QT_DEPRECATED_SINCE(5, 13)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
p.worldMatrix(); p.worldMatrix();
p.setWorldMatrix(QMatrix().translate(43, 21), true); p.setWorldMatrix(QMatrix().translate(43, 21), true);
QT_WARNING_POP
#endif #endif
p.setWorldMatrixEnabled(true); p.setWorldMatrixEnabled(true);

View File

@ -713,9 +713,5 @@ QPainterPath Paths::bezierQuadrant()
path.closeSubpath(); path.closeSubpath();
} }
QMatrix m(2, 0,
0, 2,
0, 0);
return path; return path;
} }

View File

@ -152,7 +152,7 @@ void tst_QPathClipper::initTestCase()
for (int i = 0; i < paths.size(); ++i) { for (int i = 0; i < paths.size(); ++i) {
QRectF bounds = paths[i].boundingRect(); QRectF bounds = paths[i].boundingRect();
QMatrix m(1, 0, QTransform m(1, 0,
0, 1, 0, 1,
-bounds.center().x(), -bounds.center().y()); -bounds.center().x(), -bounds.center().y());

View File

@ -331,17 +331,13 @@ void tst_QTransform::mapToPolygon()
void tst_QTransform::qhash() void tst_QTransform::qhash()
{ {
QMatrix m1; QTransform t1;
m1.shear(3.0, 2.0); t1.shear(3.0, 2.0);
m1.rotate(44); t1.rotate(44);
QMatrix m2 = m1; QTransform t2 = t1;
QTransform t1(m1);
QTransform t2(m2);
// not really much to test here, so just the bare minimum: // not really much to test here, so just the bare minimum:
QCOMPARE(qHash(m1), qHash(m2));
QCOMPARE(qHash(t1), qHash(t2)); QCOMPARE(qHash(t1), qHash(t2));
} }
@ -376,6 +372,9 @@ void tst_QTransform::scale()
QVERIFY( QTransform::fromScale( 1, 1 ) == QTransform()); QVERIFY( QTransform::fromScale( 1, 1 ) == QTransform());
} }
#if QT_DEPRECATED_SINCE(5, 15)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
void tst_QTransform::matrix() void tst_QTransform::matrix()
{ {
QMatrix mat1; QMatrix mat1;
@ -414,7 +413,7 @@ void tst_QTransform::matrix()
QRect rect(43, 70, 200, 200); QRect rect(43, 70, 200, 200);
QPoint pt(43, 66); QPoint pt(43, 66);
QCOMPARE(tranInv.map(pt), matInv.map(pt)); QCOMPARE(tranInv.mapRect(rect), matInv.mapRect(rect));
QCOMPARE(tranInv.map(pt), matInv.map(pt)); QCOMPARE(tranInv.map(pt), matInv.map(pt));
QPainterPath path; QPainterPath path;
@ -431,6 +430,8 @@ void tst_QTransform::testOffset()
const QMatrix &aff = trans.toAffine(); const QMatrix &aff = trans.toAffine();
QCOMPARE((void*)(&aff), (void*)(&trans)); QCOMPARE((void*)(&aff), (void*)(&trans));
} }
QT_WARNING_POP
#endif
void tst_QTransform::types() void tst_QTransform::types()
{ {

View File

@ -32,6 +32,9 @@
#include <qmath.h> #include <qmath.h>
#include <qpolygon.h> #include <qpolygon.h>
#if QT_DEPRECATED_SINCE(5, 15)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
class tst_QWMatrix : public QObject class tst_QWMatrix : public QObject
{ {
@ -324,5 +327,8 @@ void tst_QWMatrix::mapPolygon()
} }
} }
QT_WARNING_POP
#endif
QTEST_APPLESS_MAIN(tst_QWMatrix) QTEST_APPLESS_MAIN(tst_QWMatrix)
#include "tst_qwmatrix.moc" #include "tst_qwmatrix.moc"

View File

@ -8014,11 +8014,21 @@ public:
//Doesn't use the extended style option so the exposed rect is the boundingRect //Doesn't use the extended style option so the exposed rect is the boundingRect
if (!(flags() & QGraphicsItem::ItemUsesExtendedStyleOption)) { if (!(flags() & QGraphicsItem::ItemUsesExtendedStyleOption)) {
QCOMPARE(option->exposedRect, boundingRect()); QCOMPARE(option->exposedRect, boundingRect());
#if QT_DEPRECATED_SINCE(5, 13)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
QCOMPARE(option->matrix, QMatrix()); QCOMPARE(option->matrix, QMatrix());
QT_WARNING_POP
#endif
} else { } else {
QVERIFY(option->exposedRect != QRect()); QVERIFY(option->exposedRect != QRect());
QVERIFY(option->exposedRect != boundingRect()); QVERIFY(option->exposedRect != boundingRect());
#if QT_DEPRECATED_SINCE(5, 13)
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
QCOMPARE(option->matrix, sceneTransform().toAffine()); QCOMPARE(option->matrix, sceneTransform().toAffine());
QT_WARNING_POP
#endif
} }
} }
QGraphicsRectItem::paint(painter, option, widget); QGraphicsRectItem::paint(painter, option, widget);

View File

@ -31,7 +31,6 @@
#include <qgraphicsitemanimation.h> #include <qgraphicsitemanimation.h>
#include <QtCore/qtimeline.h> #include <QtCore/qtimeline.h>
#include <QtGui/qmatrix.h>
class tst_QGraphicsItemAnimation : public QObject class tst_QGraphicsItemAnimation : public QObject
{ {

View File

@ -67,7 +67,7 @@ using namespace QTestPrivate;
Q_DECLARE_METATYPE(ExpectedValueDescription) Q_DECLARE_METATYPE(ExpectedValueDescription)
Q_DECLARE_METATYPE(QList<int>) Q_DECLARE_METATYPE(QList<int>)
Q_DECLARE_METATYPE(QList<QRectF>) Q_DECLARE_METATYPE(QList<QRectF>)
Q_DECLARE_METATYPE(QMatrix) Q_DECLARE_METATYPE(QTransform)
Q_DECLARE_METATYPE(QPainterPath) Q_DECLARE_METATYPE(QPainterPath)
Q_DECLARE_METATYPE(Qt::ScrollBarPolicy) Q_DECLARE_METATYPE(Qt::ScrollBarPolicy)
Q_DECLARE_METATYPE(ScrollBarCount) Q_DECLARE_METATYPE(ScrollBarCount)
@ -291,7 +291,7 @@ void tst_QGraphicsView::construction()
QCOMPARE(view.sceneRect(), QRectF()); QCOMPARE(view.sceneRect(), QRectF());
QVERIFY(view.viewport()); QVERIFY(view.viewport());
QCOMPARE(view.viewport()->metaObject()->className(), "QWidget"); QCOMPARE(view.viewport()->metaObject()->className(), "QWidget");
QCOMPARE(view.matrix(), QMatrix()); QCOMPARE(view.transform(), QTransform());
QVERIFY(view.items().isEmpty()); QVERIFY(view.items().isEmpty());
QVERIFY(view.items(QPoint()).isEmpty()); QVERIFY(view.items(QPoint()).isEmpty());
QVERIFY(view.items(QRect()).isEmpty()); QVERIFY(view.items(QRect()).isEmpty());
@ -1208,37 +1208,37 @@ void tst_QGraphicsView::matrix()
void tst_QGraphicsView::matrix_convenience() void tst_QGraphicsView::matrix_convenience()
{ {
QGraphicsView view; QGraphicsView view;
QCOMPARE(view.matrix(), QMatrix()); QCOMPARE(view.transform(), QTransform());
// Check the convenience functions // Check the convenience functions
view.rotate(90); view.rotate(90);
QCOMPARE(view.matrix(), QMatrix().rotate(90)); QCOMPARE(view.transform(), QTransform().rotate(90));
view.scale(2, 2); view.scale(2, 2);
QCOMPARE(view.matrix(), QMatrix().scale(2, 2) * QMatrix().rotate(90)); QCOMPARE(view.transform(), QTransform().scale(2, 2) * QTransform().rotate(90));
view.shear(1.2, 1.2); view.shear(1.2, 1.2);
QCOMPARE(view.matrix(), QMatrix().shear(1.2, 1.2) * QMatrix().scale(2, 2) * QMatrix().rotate(90)); QCOMPARE(view.transform(), QTransform().shear(1.2, 1.2) * QTransform().scale(2, 2) * QTransform().rotate(90));
view.translate(1, 1); view.translate(1, 1);
QCOMPARE(view.matrix(), QMatrix().translate(1, 1) * QMatrix().shear(1.2, 1.2) * QMatrix().scale(2, 2) * QMatrix().rotate(90)); QCOMPARE(view.transform(), QTransform().translate(1, 1) * QTransform().shear(1.2, 1.2) * QTransform().scale(2, 2) * QTransform().rotate(90));
} }
void tst_QGraphicsView::matrix_combine() void tst_QGraphicsView::matrix_combine()
{ {
// Check matrix combining // Check matrix combining
QGraphicsView view; QGraphicsView view;
QCOMPARE(view.matrix(), QMatrix()); QCOMPARE(view.transform(), QTransform());
view.setMatrix(QMatrix().rotate(90), true); view.setTransform(QTransform().rotate(90), true);
view.setMatrix(QMatrix().rotate(90), true); view.setTransform(QTransform().rotate(90), true);
view.setMatrix(QMatrix().rotate(90), true); view.setTransform(QTransform().rotate(90), true);
view.setMatrix(QMatrix().rotate(90), true); view.setTransform(QTransform().rotate(90), true);
QCOMPARE(view.matrix(), QMatrix()); QCOMPARE(view.transform(), QTransform());
view.resetMatrix(); view.resetTransform();
QCOMPARE(view.matrix(), QMatrix()); QCOMPARE(view.transform(), QTransform());
view.setMatrix(QMatrix().rotate(90), false); view.setTransform(QTransform().rotate(90), false);
view.setMatrix(QMatrix().rotate(90), false); view.setTransform(QTransform().rotate(90), false);
view.setMatrix(QMatrix().rotate(90), false); view.setTransform(QTransform().rotate(90), false);
view.setMatrix(QMatrix().rotate(90), false); view.setTransform(QTransform().rotate(90), false);
QCOMPARE(view.matrix(), QMatrix().rotate(90)); QCOMPARE(view.transform(), QTransform().rotate(90));
} }
void tst_QGraphicsView::centerOnPoint() void tst_QGraphicsView::centerOnPoint()
@ -2125,8 +2125,8 @@ void tst_QGraphicsView::mapFromScenePath()
QPainterPath path2; QPainterPath path2;
path2.addPolygon(polygon2); path2.addPolygon(polygon2);
QPolygonF pathPoly = view.mapFromScene(path).toFillPolygon(); QPolygonF pathPoly = view.mapFromScene(path).toFillPolygon(QTransform());
QPolygonF path2Poly = path2.toFillPolygon(); QPolygonF path2Poly = path2.toFillPolygon(QTransform());
for (int i = 0; i < pathPoly.size(); ++i) { for (int i = 0; i < pathPoly.size(); ++i) {
QVERIFY(qAbs(pathPoly[i].x() - path2Poly[i].x()) < 3); QVERIFY(qAbs(pathPoly[i].x() - path2Poly[i].x()) < 3);

View File

@ -187,7 +187,7 @@ void View::setupMatrix()
{ {
qreal scale = qPow(qreal(2), (zoomSlider->value() - 250) / qreal(50)); qreal scale = qPow(qreal(2), (zoomSlider->value() - 250) / qreal(50));
QMatrix matrix; QTransform matrix;
matrix.scale(scale, scale); matrix.scale(scale, scale);
matrix.rotate(rotateSlider->value()); matrix.rotate(rotateSlider->value());