diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-11-13 10:46:55 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-11-17 19:55:04 +0100 |
commit | 63f03f5e2da2714407933f9bafe7fc675a8e7a89 (patch) | |
tree | 94f53253907070e2a127bfed2080373233e399ea /src/gui | |
parent | f5010c49a37729375e37e6fe8cea60dd4b880d83 (diff) |
Make QPageRanges::detach public, add data stream operators
As per QUIP-19 discussion, value types should have streaming operators,
and detach should be public.
detach() is still documented as \internal, like other public detach
methods in value types.
Change-Id: I30451909ad5226088fb05206f83983dda5b0c6b5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/painting/qpageranges.cpp | 35 | ||||
-rw-r--r-- | src/gui/painting/qpageranges.h | 9 |
2 files changed, 43 insertions, 1 deletions
diff --git a/src/gui/painting/qpageranges.cpp b/src/gui/painting/qpageranges.cpp index 0d66014d83..dc43143d9c 100644 --- a/src/gui/painting/qpageranges.cpp +++ b/src/gui/painting/qpageranges.cpp @@ -42,6 +42,7 @@ #include <QtCore/qstack.h> #include <QtCore/qdebug.h> +#include <QtCore/qdatastream.h> QT_BEGIN_NAMESPACE @@ -325,6 +326,40 @@ void QPageRanges::detach() d.reset(new QPageRangesPrivate); } +#if !defined(QT_NO_DATASTREAM) +/*! + \fn QDataStream &operator<<(QDataStream &stream, const QPageRanges &pageRanges) + \relates QPageRanges + + Writes \a pageRanges to \a stream as a range string. + + \sa QPageRanges::toString +*/ + +QDataStream &operator<<(QDataStream &s, const QPageRanges &pageRanges) +{ + s << pageRanges.toString(); + return s; +} + +/*! + \fn QDataStream &operator>>(QDataStream &stream, QPageRanges &pageRanges) + \relates QPageRanges + + Reads a page ranges string from \a stream and stores it in \a pageRanges. + + \sa QPageRanges::fromString +*/ + +QDataStream &operator>>(QDataStream &s, QPageRanges &pageRanges) +{ + QString rangesString; + s >> rangesString; + pageRanges = QPageRanges::fromString(rangesString); + return s; +} +#endif // QT_NO_DATASTREAM + #ifndef QT_NO_DEBUG_STREAM QDebug operator<<(QDebug dbg, const QPageRanges &pageRanges) { diff --git a/src/gui/painting/qpageranges.h b/src/gui/painting/qpageranges.h index 481fee109b..823d83665b 100644 --- a/src/gui/painting/qpageranges.h +++ b/src/gui/painting/qpageranges.h @@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE class QDebug; +class QDataStream; class QPageRangesPrivate; QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QPageRangesPrivate, Q_GUI_EXPORT) @@ -97,13 +98,19 @@ public: int firstPage() const; int lastPage() const; + void detach(); + private: bool isEqual(const QPageRanges &other) const noexcept; - void detach(); QExplicitlySharedDataPointer<QPageRangesPrivate> d; }; +#ifndef QT_NO_DATASTREAM +Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QPageRanges &); +Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPageRanges &); +#endif + #ifndef QT_NO_DEBUG_STREAM Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QPageRanges &pageRanges); #endif |