Add QDataStream operators to QMargins, so it can be streamed
* QDataStream format documented * Added Unit test for QDataStream operators * Updated Unit test Change-Id: Idbcfcb0b927e6369e8d31b57693c7aa0d1a154e7 Reviewed-by: Olivier Goffart <ogoffart@kde.org>
This commit is contained in:
parent
ddce31c12f
commit
fca432c1c0
@ -196,6 +196,13 @@
|
|||||||
\o The number of items (quint32)
|
\o The number of items (quint32)
|
||||||
\o For all items, the key (Key) and value (T)
|
\o For all items, the key (Key) and value (T)
|
||||||
\endlist
|
\endlist
|
||||||
|
\row \o QMargins
|
||||||
|
\o \list
|
||||||
|
\o left (int)
|
||||||
|
\o top (int)
|
||||||
|
\o right (int)
|
||||||
|
\o bottom (int)
|
||||||
|
\endlist
|
||||||
\row \o QMatrix
|
\row \o QMatrix
|
||||||
\o \list
|
\o \list
|
||||||
\o m11 (double)
|
\o m11 (double)
|
||||||
|
@ -156,6 +156,47 @@ QT_BEGIN_NAMESPACE
|
|||||||
Returns true if \a m1 and \a m2 are different; otherwise returns false.
|
Returns true if \a m1 and \a m2 are different; otherwise returns false.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
QMargins stream functions
|
||||||
|
*****************************************************************************/
|
||||||
|
#ifndef QT_NO_DATASTREAM
|
||||||
|
/*!
|
||||||
|
\fn QDataStream &operator<<(QDataStream &stream, const QMargins &m)
|
||||||
|
\relates QMargins
|
||||||
|
|
||||||
|
Writes the given \a margin to the given \a stream and returns a
|
||||||
|
reference to the stream.
|
||||||
|
|
||||||
|
\sa {Serializing Qt Data Types}
|
||||||
|
*/
|
||||||
|
|
||||||
|
QDataStream &operator<<(QDataStream &s, const QMargins &m)
|
||||||
|
{
|
||||||
|
s << m.left() << m.top() << m.right() << m.bottom();
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn QDataStream &operator>>(QDataStream &stream, QMargins &m)
|
||||||
|
\relates QMargins
|
||||||
|
|
||||||
|
Reads a margin from the given \a stream into the given \a margin
|
||||||
|
and returns a reference to the stream.
|
||||||
|
|
||||||
|
\sa {Serializing Qt Data Types}
|
||||||
|
*/
|
||||||
|
|
||||||
|
QDataStream &operator>>(QDataStream &s, QMargins &m)
|
||||||
|
{
|
||||||
|
int left, top, right, bottom;
|
||||||
|
s >> left; m.setLeft(left);
|
||||||
|
s >> top; m.setTop(top);
|
||||||
|
s >> right; m.setRight(right);
|
||||||
|
s >> bottom; m.setBottom(bottom);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
#endif // QT_NO_DATASTREAM
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG_STREAM
|
#ifndef QT_NO_DEBUG_STREAM
|
||||||
QDebug operator<<(QDebug dbg, const QMargins &m) {
|
QDebug operator<<(QDebug dbg, const QMargins &m) {
|
||||||
dbg.nospace() << "QMargins(" << m.left() << ", "
|
dbg.nospace() << "QMargins(" << m.left() << ", "
|
||||||
|
@ -80,6 +80,14 @@ private:
|
|||||||
|
|
||||||
Q_DECLARE_TYPEINFO(QMargins, Q_MOVABLE_TYPE);
|
Q_DECLARE_TYPEINFO(QMargins, Q_MOVABLE_TYPE);
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
QMargins stream functions
|
||||||
|
*****************************************************************************/
|
||||||
|
#ifndef QT_NO_DATASTREAM
|
||||||
|
Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QMargins &);
|
||||||
|
Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QMargins &);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
QMargins inline functions
|
QMargins inline functions
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -61,6 +61,7 @@ public slots:
|
|||||||
void cleanup();
|
void cleanup();
|
||||||
private slots:
|
private slots:
|
||||||
void getSetCheck();
|
void getSetCheck();
|
||||||
|
void dataStreamCheck();
|
||||||
};
|
};
|
||||||
|
|
||||||
// Testing get/set functions
|
// Testing get/set functions
|
||||||
@ -86,6 +87,31 @@ void tst_QMargins::getSetCheck()
|
|||||||
QCOMPARE(margins, QMargins(5, 0, 5, 0));
|
QCOMPARE(margins, QMargins(5, 0, 5, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing QDataStream operators
|
||||||
|
void tst_QMargins::dataStreamCheck()
|
||||||
|
{
|
||||||
|
QByteArray buffer;
|
||||||
|
|
||||||
|
// stream out
|
||||||
|
{
|
||||||
|
QMargins marginsOut(0,INT_MIN,INT_MAX,6852);
|
||||||
|
QDataStream streamOut(&buffer, QIODevice::WriteOnly);
|
||||||
|
streamOut << marginsOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
// stream in & compare
|
||||||
|
{
|
||||||
|
QMargins marginsIn;
|
||||||
|
QDataStream streamIn(&buffer, QIODevice::ReadOnly);
|
||||||
|
streamIn >> marginsIn;
|
||||||
|
|
||||||
|
QCOMPARE(marginsIn.left(), 0);
|
||||||
|
QCOMPARE(marginsIn.top(), INT_MIN);
|
||||||
|
QCOMPARE(marginsIn.right(), INT_MAX);
|
||||||
|
QCOMPARE(marginsIn.bottom(), 6852);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tst_QMargins::tst_QMargins()
|
tst_QMargins::tst_QMargins()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user