diff options
-rw-r--r-- | src/corelib/tools/qpoint.cpp | 16 | ||||
-rw-r--r-- | src/corelib/tools/qpoint.h | 10 | ||||
-rw-r--r-- | tests/auto/corelib/tools/qpoint/tst_qpoint.cpp | 15 | ||||
-rw-r--r-- | tests/auto/corelib/tools/qpointf/tst_qpointf.cpp | 15 |
4 files changed, 56 insertions, 0 deletions
diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp index 368ef7d697..785e255db5 100644 --- a/src/corelib/tools/qpoint.cpp +++ b/src/corelib/tools/qpoint.cpp @@ -326,6 +326,14 @@ QT_BEGIN_NAMESPACE */ /*! + \fn const QPoint operator+(const QPoint &point) + \relates QPoint + \since 5.0 + + Returns \a point unmodified. +*/ + +/*! \fn const QPoint operator-(const QPoint &point) \overload \relates QPoint @@ -664,6 +672,14 @@ QDebug operator<<(QDebug d, const QPointF &p) */ /*! + \fn const QPointF operator+(const QPointF &point) + \relates QPointF + \since 5.0 + + Returns \a point unmodified. +*/ + +/*! \fn const QPointF operator-(const QPointF &point) \relates QPointF \overload diff --git a/src/corelib/tools/qpoint.h b/src/corelib/tools/qpoint.h index be9567bc52..dc38ec622a 100644 --- a/src/corelib/tools/qpoint.h +++ b/src/corelib/tools/qpoint.h @@ -86,6 +86,7 @@ public: friend Q_DECL_CONSTEXPR inline const QPoint operator*(double, const QPoint &); friend Q_DECL_CONSTEXPR inline const QPoint operator*(const QPoint &, int); friend Q_DECL_CONSTEXPR inline const QPoint operator*(int, const QPoint &); + friend Q_DECL_CONSTEXPR inline const QPoint operator+(const QPoint &); friend Q_DECL_CONSTEXPR inline const QPoint operator-(const QPoint &); friend Q_DECL_CONSTEXPR inline const QPoint operator/(const QPoint &, qreal); @@ -182,6 +183,9 @@ Q_DECL_CONSTEXPR inline const QPoint operator*(double factor, const QPoint &p) Q_DECL_CONSTEXPR inline const QPoint operator*(int factor, const QPoint &p) { return QPoint(p.xp*factor, p.yp*factor); } +Q_DECL_CONSTEXPR inline const QPoint operator+(const QPoint &p) +{ return p; } + Q_DECL_CONSTEXPR inline const QPoint operator-(const QPoint &p) { return QPoint(-p.xp, -p.yp); } @@ -235,6 +239,7 @@ public: friend Q_DECL_CONSTEXPR inline const QPointF operator-(const QPointF &, const QPointF &); friend Q_DECL_CONSTEXPR inline const QPointF operator*(qreal, const QPointF &); friend Q_DECL_CONSTEXPR inline const QPointF operator*(const QPointF &, qreal); + friend Q_DECL_CONSTEXPR inline const QPointF operator+(const QPointF &); friend Q_DECL_CONSTEXPR inline const QPointF operator-(const QPointF &); friend Q_DECL_CONSTEXPR inline const QPointF operator/(const QPointF &, qreal); @@ -355,6 +360,11 @@ Q_DECL_CONSTEXPR inline const QPointF operator*(qreal c, const QPointF &p) return QPointF(p.xp*c, p.yp*c); } +Q_DECL_CONSTEXPR inline const QPointF operator+(const QPointF &p) +{ + return p; +} + Q_DECL_CONSTEXPR inline const QPointF operator-(const QPointF &p) { return QPointF(-p.xp, -p.yp); diff --git a/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp b/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp index 9f30fe6e4a..cb24325765 100644 --- a/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp +++ b/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp @@ -71,6 +71,9 @@ private slots: void operator_divide_data(); void operator_divide(); + void operator_unary_plus_data(); + void operator_unary_plus(); + void operator_unary_minus_data(); void operator_unary_minus(); @@ -269,6 +272,18 @@ void tst_QPoint::operator_divide() QCOMPARE(point, expected); } +void tst_QPoint::operator_unary_plus_data() +{ + operator_unary_minus_data(); +} + +void tst_QPoint::operator_unary_plus() +{ + QFETCH(QPoint, point); + // Should be a NOOP. + QCOMPARE(+point, point); +} + void tst_QPoint::operator_unary_minus_data() { QTest::addColumn<QPoint>("point"); diff --git a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp index 07564d60f0..df5efe88ca 100644 --- a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp +++ b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp @@ -76,6 +76,9 @@ private slots: void operator_divide(); void division(); + void operator_unary_plus_data(); + void operator_unary_plus(); + void operator_unary_minus_data(); void operator_unary_minus(); @@ -283,6 +286,18 @@ void tst_QPointF::division() } } +void tst_QPointF::operator_unary_plus_data() +{ + operator_unary_minus_data(); +} + +void tst_QPointF::operator_unary_plus() +{ + QFETCH(QPointF, point); + // Should be a NOOP. + QCOMPARE(+point, point); +} + void tst_QPointF::operator_unary_minus_data() { QTest::addColumn<QPointF>("point"); |