summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/tools/qpoint.cpp16
-rw-r--r--src/corelib/tools/qpoint.h10
-rw-r--r--tests/auto/corelib/tools/qpoint/tst_qpoint.cpp15
-rw-r--r--tests/auto/corelib/tools/qpointf/tst_qpointf.cpp15
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");