summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qsize.h
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2012-02-16 16:38:52 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-17 14:39:14 +0100
commita68ada633f165d1a6f9d4a4b3cab26487e92cb21 (patch)
tree717acdb7dc140493bd5aa0dbf46d8c6d3f26c98b /src/corelib/tools/qsize.h
parentf8e2753323248e2c8d5812a4a4f4b28aff61aa17 (diff)
QSize/QSizeF: add const versions of scale()/transpose()
Non-mutating functions can (potentially) be constexpr. On top of that, they often make for more readable code. Change-Id: I3547327cf5a7162737353a864a1025d0d02ccc2f Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: David Faure <faure@kde.org>
Diffstat (limited to 'src/corelib/tools/qsize.h')
-rw-r--r--src/corelib/tools/qsize.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/corelib/tools/qsize.h b/src/corelib/tools/qsize.h
index 5400f76a3a..fece0ac943 100644
--- a/src/corelib/tools/qsize.h
+++ b/src/corelib/tools/qsize.h
@@ -64,9 +64,12 @@ public:
void setWidth(int w);
void setHeight(int h);
void transpose();
+ QSize transposed() const;
void scale(int w, int h, Qt::AspectRatioMode mode);
void scale(const QSize &s, Qt::AspectRatioMode mode);
+ QSize scaled(int w, int h, Qt::AspectRatioMode mode) const;
+ QSize scaled(const QSize &s, Qt::AspectRatioMode mode) const;
QSize expandedTo(const QSize &) const;
QSize boundedTo(const QSize &) const;
@@ -134,9 +137,18 @@ inline void QSize::setWidth(int w)
inline void QSize::setHeight(int h)
{ ht = h; }
+inline QSize QSize::transposed() const
+{ return QSize(ht, wd); }
+
inline void QSize::scale(int w, int h, Qt::AspectRatioMode mode)
{ scale(QSize(w, h), mode); }
+inline void QSize::scale(const QSize &s, Qt::AspectRatioMode mode)
+{ *this = scaled(s, mode); }
+
+inline QSize QSize::scaled(int w, int h, Qt::AspectRatioMode mode) const
+{ return scaled(QSize(w, h), mode); }
+
inline int &QSize::rwidth()
{ return wd; }
@@ -214,9 +226,12 @@ public:
void setWidth(qreal w);
void setHeight(qreal h);
void transpose();
+ QSizeF transposed() const;
void scale(qreal w, qreal h, Qt::AspectRatioMode mode);
void scale(const QSizeF &s, Qt::AspectRatioMode mode);
+ QSizeF scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const;
+ QSizeF scaled(const QSizeF &s, Qt::AspectRatioMode mode) const;
QSizeF expandedTo(const QSizeF &) const;
QSizeF boundedTo(const QSizeF &) const;
@@ -292,9 +307,18 @@ inline void QSizeF::setWidth(qreal w)
inline void QSizeF::setHeight(qreal h)
{ ht = h; }
+inline QSizeF QSizeF::transposed() const
+{ return QSizeF(ht, wd); }
+
inline void QSizeF::scale(qreal w, qreal h, Qt::AspectRatioMode mode)
{ scale(QSizeF(w, h), mode); }
+inline void QSizeF::scale(const QSizeF &s, Qt::AspectRatioMode mode)
+{ *this = scaled(s, mode); }
+
+inline QSizeF QSizeF::scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const
+{ return scaled(QSizeF(w, h), mode); }
+
inline qreal &QSizeF::rwidth()
{ return wd; }