diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2012-02-16 16:38:52 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-17 14:39:14 +0100 |
commit | a68ada633f165d1a6f9d4a4b3cab26487e92cb21 (patch) | |
tree | 717acdb7dc140493bd5aa0dbf46d8c6d3f26c98b /src/corelib/tools/qsize.h | |
parent | f8e2753323248e2c8d5812a4a4f4b28aff61aa17 (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.h | 24 |
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; } |