diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-07-20 01:41:45 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-07-22 21:14:05 +0000 |
commit | d348d40473d44720cc5c7e63962ae448149e9549 (patch) | |
tree | 2907e63d0088ef247dea0c279991a431eb361904 /src/gui/painting/qcolor.h | |
parent | b549758c6101aac382769235cbef32323c1d3678 (diff) |
QColor: make nothrow move-assignable and -constructible
The move special members were inhibited by the presence of
user-defined copy ctor and assignment operator, which we
cannot remove since the class is exported.
Change-Id: I54fe6c28351fe69ca4b75066adb76ea07c959dfe
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/gui/painting/qcolor.h')
-rw-r--r-- | src/gui/painting/qcolor.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/gui/painting/qcolor.h b/src/gui/painting/qcolor.h index 8af87a49af..b0192662cc 100644 --- a/src/gui/painting/qcolor.h +++ b/src/gui/painting/qcolor.h @@ -67,9 +67,20 @@ public: QColor(QRgba64 rgba64); QColor(const QString& name); QColor(const char *name); - QColor(const QColor &color); // ### Qt 6: remove, the trivial one is fine. QColor(Spec spec); +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + QColor(const QColor &color); // ### Qt 6: remove all of these, the trivial ones are fine. +# ifdef Q_COMPILER_RVALUE_REFS + QColor(QColor &&other) Q_DECL_NOTHROW : cspec(other.cspec), ct(other.ct) {} + QColor &operator=(QColor &&other) Q_DECL_NOTHROW + { cspec = other.cspec; ct = other.ct; return *this; } +# endif + QColor &operator=(const QColor &); +#endif // Qt < 6 + + QColor &operator=(Qt::GlobalColor color); + bool isValid() const; // ### Qt 6: merge overloads @@ -195,9 +206,6 @@ public: QColor dark(int f = 200) const Q_REQUIRED_RESULT; QColor darker(int f = 200) const Q_REQUIRED_RESULT; - QColor &operator=(const QColor &); - QColor &operator=(Qt::GlobalColor color); - bool operator==(const QColor &c) const; bool operator!=(const QColor &c) const; @@ -262,9 +270,11 @@ inline QColor::QColor(const char *aname) inline QColor::QColor(const QString& aname) { setNamedColor(aname); } +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) inline QColor::QColor(const QColor &acolor) : cspec(acolor.cspec) { ct.argb = acolor.ct.argb; } +#endif inline bool QColor::isValid() const { return cspec != Invalid; } |