Added QDataStream methods to read and write QString, QChar and QStringList.

This commit is contained in:
Hugo Parente Lima 2010-06-08 09:59:01 -03:00
commit 00918cb847
2 changed files with 66 additions and 32 deletions

View file

@ -2050,6 +2050,7 @@
<modify-function signature="operator&gt;&gt;(float&amp;)" remove="all"/> <modify-function signature="operator&gt;&gt;(float&amp;)" remove="all"/>
<modify-function signature="operator&gt;&gt;(double&amp;)" remove="all"/> <modify-function signature="operator&gt;&gt;(double&amp;)" remove="all"/>
<modify-function signature="operator&gt;&gt;(char*&amp;)" remove="all"/> <modify-function signature="operator&gt;&gt;(char*&amp;)" remove="all"/>
<modify-function signature="operator&gt;&gt;(QDataStream&amp;,QVariant&amp;)" remove="all"/>
<modify-function signature="operator&lt;&lt;(qint8)" remove="all"/> <modify-function signature="operator&lt;&lt;(qint8)" remove="all"/>
<modify-function signature="operator&lt;&lt;(bool)" remove="all"/> <modify-function signature="operator&lt;&lt;(bool)" remove="all"/>
@ -2062,8 +2063,57 @@
<modify-function signature="operator&lt;&lt;(quint64)" remove="all"/> <modify-function signature="operator&lt;&lt;(quint64)" remove="all"/>
<modify-function signature="operator&lt;&lt;(float)" remove="all"/> <modify-function signature="operator&lt;&lt;(float)" remove="all"/>
<modify-function signature="operator&lt;&lt;(double)" remove="all"/> <modify-function signature="operator&lt;&lt;(double)" remove="all"/>
<modify-function signature="operator&lt;&lt;(QDataStream&amp;,const QVariant&amp;)" remove="all"/>
<modify-function signature="operator&lt;&lt;(const char*)" remove="all"/> <modify-function signature="operator&lt;&lt;(const char*)" remove="all"/>
<add-function signature="writeQString(const QString&amp;)">
<inject-code class="target">
*(%CPPSELF) &lt;&lt; %1;
</inject-code>
</add-function>
<add-function signature="readQString()" return-type="QString">
<inject-code class="target">
%RETURN_TYPE val;
*(%CPPSELF) &gt;&gt; val;
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val);
</inject-code>
</add-function>
<add-function signature="writeQChar(const QChar&amp;)">
<inject-code class="target">
*(%CPPSELF) &lt;&lt; %1;
</inject-code>
</add-function>
<add-function signature="readQChar()" return-type="QChar">
<inject-code class="target">
%RETURN_TYPE val;
*(%CPPSELF) &gt;&gt; val;
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val);
</inject-code>
</add-function>
<add-function signature="writeQStringList(const QStringList&amp;)">
<inject-code class="target">
*(%CPPSELF) &lt;&lt; %1;
</inject-code>
</add-function>
<add-function signature="readQStringList()" return-type="QStringList">
<inject-code class="target">
%RETURN_TYPE val;
*(%CPPSELF) &gt;&gt; val;
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val);
</inject-code>
</add-function>
<add-function signature="writeQVariant(const QVariant&amp;)">
<inject-code class="target">
*(%CPPSELF) &lt;&lt; %1;
</inject-code>
</add-function>
<add-function signature="readQVariant()" return-type="QVariant">
<inject-code class="target">
%RETURN_TYPE val;
*(%CPPSELF) &gt;&gt; val;
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](val);
</inject-code>
</add-function>
<modify-function signature="readRawData(char*,int)" remove="all"/> <modify-function signature="readRawData(char*,int)" remove="all"/>
<modify-function signature="readBytes(char*&amp;,uint&amp;)" remove="all"/> <modify-function signature="readBytes(char*&amp;,uint&amp;)" remove="all"/>
<modify-function signature="writeRawData(const char*,int)" remove="all"/> <modify-function signature="writeRawData(const char*,int)" remove="all"/>

View file

@ -76,22 +76,17 @@ class QDataStreamShift(unittest.TestCase):
def testQCharValid(self): def testQCharValid(self):
'''QDataStream <<>> QChar - valid''' '''QDataStream <<>> QChar - valid'''
self.stream << QChar(42) self.stream.writeQChar(42)
res = QChar() res = self.read_stream.readQChar()
self.assertEqual(res, unichr(42))
self.read_stream >> res
self.assertEqual(res, QChar(42))
def testQCharNull(self): def testQCharNull(self):
'''QDataStream <<>> QChar - null''' '''QDataStream <<>> QChar - null'''
self.stream << QChar() self.stream.writeQChar(None)
res = QChar() res = self.read_stream.readQChar()
self.assertEqual(res, u'\x00')
self.read_stream >> res
self.assertEqual(res, QChar())
self.assert_(res.isNull())
def testQByteArrayValid(self): def testQByteArrayValid(self):
'''QDataStream <<>> QByteArray - valid''' '''QDataStream <<>> QByteArray - valid'''
@ -126,35 +121,24 @@ class QDataStreamShift(unittest.TestCase):
def testQStringValid(self): def testQStringValid(self):
'''QDataStream <<>> QString - valid''' '''QDataStream <<>> QString - valid'''
self.stream << QString('Ka-boom') self.stream.writeQString('Ka-boom')
res = QString() res = self.read_stream.readQString()
self.assertEqual(res, u'Ka-boom')
self.read_stream >> res
self.assertEqual(res, QString('Ka-boom'))
def testQStringEmpty(self): def testQStringEmpty(self):
'''QDataStream <<>> QString - empty''' '''QDataStream <<>> QString - empty'''
self.stream << QString('') self.stream.writeQString('')
res = QString() res = self.read_stream.readQString()
self.assertEqual(res, u'')
self.read_stream >> res
self.assertEqual(res, QString(""))
self.assert_(res.isEmpty())
self.assert_(not res.isNull())
def testQStringNull(self): def testQStringNull(self):
'''QDataStream <<>> QString - null''' '''QDataStream <<>> QString - null'''
self.stream << QString() self.stream.writeQString(None)
res = QString()
self.read_stream >> res
self.assertEqual(res, QString())
self.assert_(res.isEmpty())
self.assert_(res.isNull())
res = self.read_stream.readQString()
self.assertEqual(res, u'')
def testQBitArrayNull(self): def testQBitArrayNull(self):
'''QDataStream <<>> QBitArray - null''' '''QDataStream <<>> QBitArray - null'''