Add QDataStream streaming operator for QFlags
We're already using it, for example in qpaintengine_pic.cpp:502: d->s << p << ti.text() << fnt << ti.renderFlags() << [...] ^ [ChangeLog][QtCore][QFlags] Added operator<< and operator>> for streaming QFlags into and out of QDataStreams. Change-Id: I33dc971f005a4848bb8ffffd1478e79d6102d1bc Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This commit is contained in:
parent
dee16fe491
commit
7314c53d31
@ -48,6 +48,8 @@
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
class QDataStream;
|
||||||
|
|
||||||
class QFlag
|
class QFlag
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -95,6 +97,8 @@ class QFlags
|
|||||||
|
|
||||||
struct Private;
|
struct Private;
|
||||||
typedef int (Private::*Zero);
|
typedef int (Private::*Zero);
|
||||||
|
template <typename E> friend QDataStream &operator>>(QDataStream &, QFlags<E> &);
|
||||||
|
template <typename E> friend QDataStream &operator<<(QDataStream &, QFlags<E>);
|
||||||
public:
|
public:
|
||||||
#if defined(Q_CC_MSVC) || defined(Q_QDOC)
|
#if defined(Q_CC_MSVC) || defined(Q_QDOC)
|
||||||
// see above for MSVC
|
// see above for MSVC
|
||||||
|
@ -359,6 +359,14 @@ inline QDataStream &QDataStream::operator<<(quint32 i)
|
|||||||
inline QDataStream &QDataStream::operator<<(quint64 i)
|
inline QDataStream &QDataStream::operator<<(quint64 i)
|
||||||
{ return *this << qint64(i); }
|
{ return *this << qint64(i); }
|
||||||
|
|
||||||
|
template <typename Enum>
|
||||||
|
inline QDataStream &operator<<(QDataStream &s, QFlags<Enum> e)
|
||||||
|
{ return s << e.i; }
|
||||||
|
|
||||||
|
template <typename Enum>
|
||||||
|
inline QDataStream &operator>>(QDataStream &s, QFlags<Enum> &e)
|
||||||
|
{ return s >> e.i; }
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline QDataStream &operator>>(QDataStream &s, QList<T> &l)
|
inline QDataStream &operator>>(QDataStream &s, QList<T> &l)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user