diff options
author | Boxiang Sun <daetalusun@gmail.com> | 2018-05-20 11:04:45 +0800 |
---|---|---|
committer | Boxiang Sun <daetalusun@gmail.com> | 2018-06-01 15:09:19 +0000 |
commit | ee8e7117c79f6820cb228e0f0da522ce7d3c1dce (patch) | |
tree | 13cd0847be4ff45a80e2457b945f86b9bd9b4a20 /sources/shiboken2/generator | |
parent | ddbd93680730811a5020b4d429c2e3e11d6823e3 (diff) |
Improve the QByteArray implementation
The available constructors for QByteArray are now:
bytes, bytearray, and QByteArray, unicode is not
accepted anymore.
Also the concatenation is now possible between QByteArrays.
Even though is not possible to initialize a QByteArray
with an unicode, we include the possibility to compare it with
one (Compatibility with PyQt).
The __repr__ and __str__ are now properly working.
There seemed to be a confusion regarding data types between
Shiboken, Python2 and Python3 related to bytes,
so now the structure is based on the flag SBK_BYTES_NAME,
which is define as "bytes" for Python3 and "str" for Python2.
Many tests were modified to properly handle string,
using the `py3kcompat` module.
Task-number: PYSIDE-232
Change-Id: I8b671f367c60a0870c72dcbe5662106b3225037d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/shiboken2/generator')
-rw-r--r-- | sources/shiboken2/generator/shiboken2/cppgenerator.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp index bd654f17c..badb6a4cd 100644 --- a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp @@ -1988,7 +1988,7 @@ void CppGenerator::writeErrorSection(QTextStream& s, OverloadData& overloadData) QString strArg; AbstractMetaType* argType = arg->type(); if (isCString(argType)) { - strArg = QLatin1String("\" SBK_STR_NAME \""); + strArg = QLatin1String("\" SBK_BYTES_NAME \""); } else if (argType->isPrimitive()) { const PrimitiveTypeEntry* ptp = reinterpret_cast<const PrimitiveTypeEntry*>(argType->typeEntry()); while (ptp->referencedTypeEntry()) @@ -2025,7 +2025,9 @@ void CppGenerator::writeErrorSection(QTextStream& s, OverloadData& overloadData) else if (strArg == QLatin1String("PyString")) strArg = QLatin1String("str"); else if (strArg == QLatin1String("PyBytes")) - strArg = QLatin1String("\" SBK_STR_NAME \""); + strArg = QLatin1String("\" SBK_BYTES_NAME \""); + else if (strArg == QLatin1String("PyByteArray")) + strArg = QLatin1String("bytearray"); else if (strArg == QLatin1String("PySequence")) strArg = QLatin1String("list"); else if (strArg == QLatin1String("PyTuple")) |