diff options
Diffstat (limited to 'src/gui/painting/qcolorspace.h')
-rw-r--r-- | src/gui/painting/qcolorspace.h | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/gui/painting/qcolorspace.h b/src/gui/painting/qcolorspace.h index a7c1091911..11987b9a37 100644 --- a/src/gui/painting/qcolorspace.h +++ b/src/gui/painting/qcolorspace.h @@ -42,27 +42,27 @@ #include <QtGui/qtguiglobal.h> #include <QtGui/qcolortransform.h> +#include <QtCore/qobjectdefs.h> #include <QtCore/qshareddata.h> QT_BEGIN_NAMESPACE class QColorSpacePrivate; +class QPointF; class Q_GUI_EXPORT QColorSpace { Q_GADGET public: - enum ColorSpaceId { - Undefined = 0, - Unknown = 1, - SRgb, + enum NamedColorSpace { + SRgb = 1, SRgbLinear, AdobeRgb, DisplayP3, ProPhotoRgb, Bt2020, }; - Q_ENUM(ColorSpaceId) + Q_ENUM(NamedColorSpace) enum class Primaries { Custom = 0, SRgb, @@ -82,7 +82,8 @@ public: }; Q_ENUM(TransferFunction) - QColorSpace(ColorSpaceId colorSpaceId = Undefined); + QColorSpace(); + QColorSpace(NamedColorSpace namedColorSpace); QColorSpace(Primaries primaries, TransferFunction fun, float gamma = 0.0f); QColorSpace(Primaries primaries, float gamma); QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, @@ -90,15 +91,22 @@ public: TransferFunction fun, float gamma = 0.0f); ~QColorSpace(); - QColorSpace(QColorSpace &&colorSpace) noexcept; QColorSpace(const QColorSpace &colorSpace); - QColorSpace &operator=(QColorSpace &&colorSpace) noexcept; QColorSpace &operator=(const QColorSpace &colorSpace); + QColorSpace(QColorSpace &&colorSpace) noexcept + : d_ptr(qExchange(colorSpace.d_ptr, nullptr)) + { } + QColorSpace &operator=(QColorSpace &&colorSpace) noexcept + { + // Make the deallocation of this->d_ptr happen in ~QColorSpace() + QColorSpace(std::move(colorSpace)).swap(*this); + return *this; + } + void swap(QColorSpace &colorSpace) noexcept { qSwap(d_ptr, colorSpace.d_ptr); } - ColorSpaceId colorSpaceId() const noexcept; Primaries primaries() const noexcept; TransferFunction transferFunction() const noexcept; float gamma() const noexcept; @@ -123,7 +131,11 @@ public: private: Q_DECLARE_PRIVATE(QColorSpace) - QExplicitlySharedDataPointer<QColorSpacePrivate> d_ptr; + QColorSpacePrivate *d_ptr = nullptr; + +#ifndef QT_NO_DEBUG_STREAM + friend Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QColorSpace &colorSpace); +#endif }; bool Q_GUI_EXPORT operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2); |