summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Layt <jlayt@kde.org>2014-02-14 15:23:47 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-21 20:33:10 +0100
commit9c6447e0815a18102e5ebe236c52ba4343dbb8fa (patch)
tree2e27887362be73a6b252ebb93bf7e333eaa5d823
parentdb352e1e97a0eb38cb5756f264b3162efeb86c02 (diff)
QMargins - Add missing operators
Add missing standard operators. [ChangeLog][QtCore][QMargins] Added missing addition and subtraction operators. Change-Id: I6aeed39531a736c12d378a817a9431279da79bc4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
-rw-r--r--src/corelib/tools/qmargins.cpp45
-rw-r--r--src/corelib/tools/qmargins.h23
-rw-r--r--tests/auto/corelib/tools/qmargins/tst_qmargins.cpp7
3 files changed, 75 insertions, 0 deletions
diff --git a/src/corelib/tools/qmargins.cpp b/src/corelib/tools/qmargins.cpp
index 06f41a6737..7d8a167a88 100644
--- a/src/corelib/tools/qmargins.cpp
+++ b/src/corelib/tools/qmargins.cpp
@@ -182,6 +182,42 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \fn const QMargins operator+(const QMargins &lhs, int rhs)
+ \relates QMargins
+
+ Returns a QMargins object that is formed by adding \a rhs to
+ \a lhs.
+
+ \sa QMargins::operator+=(), QMargins::operator-=()
+
+ \since 5.3
+*/
+
+/*!
+ \fn const QMargins operator+(int lhs, const QMargins &rhs)
+ \relates QMargins
+
+ Returns a QMargins object that is formed by adding \a lhs to
+ \a rhs.
+
+ \sa QMargins::operator+=(), QMargins::operator-=()
+
+ \since 5.3
+*/
+
+/*!
+ \fn const QMargins operator-(const QMargins &lhs, int rhs)
+ \relates QMargins
+
+ Returns a QMargins object that is formed by subtracting \a rhs from
+ \a lhs.
+
+ \sa QMargins::operator+=(), QMargins::operator-=()
+
+ \since 5.3
+*/
+
+/*!
\fn const QMargins operator*(const QMargins &margins, int factor)
\relates QMargins
@@ -258,6 +294,15 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \fn QMargins operator+(const QMargins &margins)
+ \relates QMargins
+
+ Returns a QMargin object that is formed from all components of \a margins.
+
+ \since 5.3
+*/
+
+/*!
\fn QMargins operator-(const QMargins &margins)
\relates QMargins
diff --git a/src/corelib/tools/qmargins.h b/src/corelib/tools/qmargins.h
index 6bffa544c1..55355ac859 100644
--- a/src/corelib/tools/qmargins.h
+++ b/src/corelib/tools/qmargins.h
@@ -161,6 +161,24 @@ Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &m1, const QMargins &m
m1.right() - m2.right(), m1.bottom() - m2.bottom());
}
+Q_DECL_CONSTEXPR inline QMargins operator+(const QMargins &lhs, int rhs)
+{
+ return QMargins(lhs.left() + rhs, lhs.top() + rhs,
+ lhs.right() + rhs, lhs.bottom() + rhs);
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator+(int lhs, const QMargins &rhs)
+{
+ return QMargins(rhs.left() + lhs, rhs.top() + lhs,
+ rhs.right() + lhs, rhs.bottom() + lhs);
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &lhs, int rhs)
+{
+ return QMargins(lhs.left() - rhs, lhs.top() - rhs,
+ lhs.right() - rhs, lhs.bottom() - rhs);
+}
+
Q_DECL_CONSTEXPR inline QMargins operator*(const QMargins &margins, int factor)
{
return QMargins(margins.left() * factor, margins.top() * factor,
@@ -245,6 +263,11 @@ inline QMargins &QMargins::operator/=(qreal divisor)
return *this = *this / divisor;
}
+Q_DECL_CONSTEXPR inline QMargins operator+(const QMargins &margins)
+{
+ return margins;
+}
+
Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &margins)
{
return QMargins(-margins.left(), -margins.top(), -margins.right(), -margins.bottom());
diff --git a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
index ec83740196..d49e0efe43 100644
--- a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
+++ b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
@@ -123,6 +123,13 @@ void tst_QMargins::operators()
QCOMPARE(a, halved);
QCOMPARE(m1 + (-m1), QMargins());
+
+ QMargins m3 = QMargins(10, 11, 12, 13);
+ QCOMPARE(m3 + 1, QMargins(11, 12, 13, 14));
+ QCOMPARE(1 + m3, QMargins(11, 12, 13, 14));
+ QCOMPARE(m3 - 1, QMargins(9, 10, 11, 12));
+ QCOMPARE(+m3, QMargins(10, 11, 12, 13));
+ QCOMPARE(-m3, QMargins(-10, -11, -12, -13));
}
// Testing QDataStream operators