summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-13 10:46:55 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-17 19:55:04 +0100
commit63f03f5e2da2714407933f9bafe7fc675a8e7a89 (patch)
tree94f53253907070e2a127bfed2080373233e399ea /src
parentf5010c49a37729375e37e6fe8cea60dd4b880d83 (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')
-rw-r--r--src/gui/painting/qpageranges.cpp35
-rw-r--r--src/gui/painting/qpageranges.h9
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