| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use new enum in code.
- Rewrite the Clang type parsing to make use of it.
- Adapt some typesystem files.
This enables the distinction between "int *" and "int *const"
and fixes the signatures from "int const &" to the more common "const int&".
Task-number: PYSIDE-672
Change-Id: Ic1bff0015188c32f53d0e6f347b1523254cb7e4f
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the volatile keyword ended up as a part of the
qualified type name while parsing in translateType().
Add the token to TypeParser and add it to AbstractMetaType.
Task-number: PYSIDE-672
Change-Id: I553ea1b35e7e99ffde4442471b82e32be84731ba
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the int "indirections" field of TypeInfo and AbstractMetaType
by a Vector of an enumeration representing '*' and "* const".
It is then possible distinguish between "int *" and "int *const".
Task-number: PYSIDE-672
Change-Id: I68677fa515abb7e94217fc1c2b6ac28b42678284
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
| |
Task-number: PYSIDE-672
Change-Id: I6fad16453f20f16e264eba33493c86160505812c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Pass up errors from translateType() to traverseFunction().
Remove the check for void type parameters since that
is not needed any more after 50dd4ae202d7afb3556335c056db003f5ef50532.
Task-number: PYSIDE-672
Change-Id: I82c095f027196361200b8854139b4bbc1fcc38c8
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extract a static AbstractMetaType *AbstractMetaBuilder::translateType()
method from the existing AbstractMetaBuilderPrivate::translateType()
which can be passed the current class.
Internally, add a AbstractMetaBuilderPrivate::translateTypeStatic()
method that takes AbstractMetaBuilderPrivate parameter.
Use that in conjunction with the TypeParse code to remove
the type parsing code in
ShibokenGenerator::buildAbstractMetaTypeFromString().
Task-number: PYSIDE-672
Change-Id: Ia17f0eb542099dcb843a59708110fc9d90fab12f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When streamlining the typeinfo structs in
7f798dfc9fc6e3e9756f06f0fedc821e16f1320a,
the parser was wrongly changed to use TypeInfo::m_arguments
for template instantiations. This field is intented
for function pointer arguments (which the parser does not support).
Add a new TypeInfo::m_instantiations (matching
AbstractMetaType::m_instantiations) for templates, support
it in the type parser and to the toString() method.
This allows to remove the mysterious TypeInfo::instantiationName() method.
Task-number: PYSIDE-672
Change-Id: I705b26d65988ebfb837e8323941076b4fb37d120
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\
| |
| |
| | |
refs/staging/dev
|
| |\
| | |
| | |
| | | |
Change-Id: I52be54b4bd400df557255b7d88eb22cb7260ca31
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Check the cursor availability to detect deleted functions. This fixes
the build of the Qt 5.12 API, which for the first time has a
Q_DISABLE(QCBorStreamReader) in a public section, causing a copy
constructor to be reported.
Task-number: PYSIDE-487
Change-Id: I31ba0103cf612a4238c0e282ffcfeeab29df97d1
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add the enumeration to the scope stack only if it actually has values.
This occurs for the first time in Qt 5.12, which introduces a forward
declaration of enum class QCborSimpleType at
src/corelib/kernel/qmetatype.h:65.
Task-number: PYSIDE-487
Change-Id: I5798eb8e47bcd4d21dc554dc5cdd257c7163ca90
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The Py_TPFLAGS_DEFAULT in Python 3 has the
Py_TPFLAGS_HAVE_VERSION_TAG flag, which causes
the type attribute cache in _PyType_Lookup. According to
the Shiboken implementation for Python 2, this is not we expected.
So remove the Py_TPFLAGS_HAVE_VERSION_TAG flag from
Py_TPFLAGS_DEFAULT in Python 3.
Task-number: PYSIDE-60
Change-Id: Id731a59b65640eb5adea56fe06e0deb58ac4a168
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
This helps to write the signatures for modifications and
rejections.
Change-Id: I89f6152d48175708d520312412829877ab49d7ff
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Output template arguments of TypeEntry/AbstractMetaType.
Task-number: PYSIDE-672
Change-Id: Ib7e161c8313f91a540659c395a8684498e86aba2
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\|
| |
| |
| | |
Change-Id: Ib2eeca97ebabcff53ef7ddd9fc769be6424db39f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After the fix for PYSIDE-441,
another issue appeared related to QVariants and PySequences
PYSIDE-641, which was related due to the nature of this
python data type.
The problem had the same root cause,
using PySequences assuming they are always finite,
but not including the case of a class implementing
the __getitem__ method without a length.
The fix for PYSIDE-441 did not include the option
of having incomplete PySequences, so this change
add an extra condition to transfer the ownership
of a incomplete PySequence element.
Task-number: PYSIDE-671
Change-Id: I72ed1f5ea51c0c5b5a40ec51ab850732eea3c3b9
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This improves the readability.
Task-number: PYSIDE-672
Change-Id: I936ef46fb30af6163b8337adbf9cf585e68f3424
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Pre-dating the Clang-parser, there is code that tries
to fix template parameter in template class declarations, for
example copy constructors like:
"QList(const QList &)" -> "QList(const QList<T> &)"
The code no longer triggers since Clang always provides
the parameters, so, remove it.
Task-number: PYSIDE-672
Change-Id: I15949d71fa4391e7088fe0e29a1821487ced2105
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| | |
Change-Id: I88c4148000acba2ba1e2013fe587e7f5fbe6c2ca
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The C++ language level was previously hard-coded in the default options.
This is potentially problematic for projects using shiboken and also
fell apart with Qt 5.12, where the experimental level "c++1z" used for
MSVC2017/Clang 4 no longer works due to not being able to handle
enumerator value deprecation attributes.
Introduce an enumeration to represent the level and add functions
to convert back to and forth to the respective Clang option.
Add an option to shiboken.
Add a function returning a default value for the emulated compiler,
returning C++ 14 or C++1Z for the CMSVC2017/Clang 4 case.
Task-number: PYSIDE-724
Change-Id: Ie7e19bf7f099a34e6cdaad4b462157a9a3ee8797
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PySide has successfully been tested with the Python 3.7 branch.
There will be no change in the areas that are important for us.
It is then safe to bump the supported version and the limited API version
checks to fully include Python 3.7.
The macro errors in the limited API was fixed by a pull request, but it
was too late to get it into 3.7rc1.
The error workaround was therefore extracted into pep384_issue33738.cpp
and will be deactivated later.
Change-Id: Iec3f277b02cac03a5cf44cbcf955ddc690c112e5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prepend virtual methods when creating function groups
so that overriding method the most-derived class is seen first.
Task-number: PYSIDE-570
Change-Id: I791e3da09783c4c31ac293060aed8bb2bc8472d5
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace the search executed at build time by CMake by
a run time search in shiboken since the location at build time
typically won't match any more for the deployment case.
Task-number: PYSIDE-693
Change-Id: Ib15fbba5d8c3fecf30aaae7195b88a648a7ed0fe
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refactor class HeaderPath to contain an enumeration for the type
instead of the boolean framework flag and add handling.
Task-number: PYSIDE-693
Change-Id: I60a62b831ddd5ce7519a066135854ff723db2fc6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Add some handling in case an argument type cannot be parsed.
Change-Id: Ib901d023ed60f74fe82a06d8c08fd704f1350a7a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The signature is passed through TypeDatabase::normalizedSignature()
which calls QMetaObject::normalizedSignature().
Keep the original signature and output it in the error message.
Change-Id: Ibd1ddd0dee17d828710caf4bf6d674c35776b4c2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace .cpp by .py and try to find the snippet. Fall back to .cpp.
Task-number: PYSIDE-363
Change-Id: I82b23df9894e626c97b44dc5a841f5fa70ae1d57
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently we transform QVariant arguments to internal
types, starting from the Python ones, to others
related to shiboken.
After checking if the current object is a PyDict
we proceed to check if it's a PySequence.
PySequence is the complementary 'sequence-like' type of PyDict,
and allows finite and infinite sequences,
like lists or generators.
The problem is that when one implements a class
which includes the __getitem__ method, Python already
thinks that it correspond to a PySequence, then
we try to get the elements to transform into
a QList<QVariant> but it fails at the first attempt.
The solution was to not assume that all PySequences
have finite length (or a length), and also to have
a fallback case similarly to the PyDict treatment,
wrapping the PyObject as a QVariant.
Task-number: PYSIDE-641
Change-Id: I3b755f47ed076147024de38e5e0a86932d981f88
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is to start generating snapshot wheels again, so that they would
not override the v5.11.0 release wheels.
Change-Id: I1b4c5211471ec760cad14d56aa3ee2102fea5322
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
And in shiboken_version.py.
Change-Id: I52132c555ee9a911c2232f5eeabfa0d7960990bc
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ie3eefe170294a8eafc91b434650dc483aadf02c0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |\
| | |
| | |
| | | |
Change-Id: I2de0fe8456fca242c56ea28520126f9ebbf540d8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The functions which were named Pep384XXX were renamed
in order to get "PepType" as a function-like macro that suggests
the similarity between "PyTypeObject" and "PepTypeObject".
But the renaming of the module initialization function was not
intended.
Change-Id: I555633ccbd8e1354c27f2c1957c81905be54d86b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
By lots of editing, somehow an expression in voidptr.cpp
became incomplete.
We should improve the current test to be certain that the
VoidPtr is working.
This problem can be avoided by not doing many type
casts at once.
Doing the same in two steps is much safer because a forgotten
call would give a compile time error.
Task-number: PYSIDE-560
Change-Id: Ibb24a27f439cbda490723131f34f93978725420f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Replace struct TypeParser::Info by TypeInfo and remove
TypeParser::Info. Move method
TypeParser::Info::instantiationName() to TypeInfo
for this purpose.
Change TypeParser::parse() to return TypeInfo.
Task-number: QTBUG-672
Change-Id: I123d5bf378ad146867b571e47e31ae08a92b2504
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The qualified name was obtained by splitting by "::", which would
result in
"std::list<std::string>" -> ("std", "list<std", string>").
Fix by splitting up to first '<' or '(' only.
Task-number: PYSIDE-672
Change-Id: I9d790535e877da251a5b6c352dc550e4077877bd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If `unicode` is used in Python 2,
shiboken cannot properly translate it to `const char *`.
sbkstring did not supported a proper conversion of unicode
types in Python2, and this change includes it.
Task-number: PYSIDE-100
Change-Id: I3a70d935ad61b0e567e620c62754800370270a6b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I5c0a76679669ec8c62e41ba0b38afc784a3a741b
|
| |\|
| | |
| | |
| | | |
Change-Id: I31a0ff26bc02e6cc2ec2a816c16d170fc334f800
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It was weird seeing "-DFORCE_LIMITED_API=yes" being passed from
setup.py to CMake when "--limited-api" is not included on the
command line, and then seeing "-DFORCE_LIMITED_API=yes" with Python 2
builds. It gives the impression that maybe it could work with
Python 2.
Instead, don't pass "FORCE_LIMITED_API=yes" from setup.py by default
(but still pass it if it's present on the command line), and instead
default to "yes" within the CMake project themselves.
In the end nothing changes, limited API builds will still be default,
but at least it's not as confusing to see the
"-DFORCE_LIMITED_API=yes" lines for Python 2 builds in the CI log.
Change-Id: I08c863394dd148d88bec324a6cab35459d75303a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This includes .abi3.so on Linux and macOS, and .pyd
on Windows. Otherwise if you build with Python 3.6, and
try to install the package on Python 3.5, none of the
modules would be found on import.
Change-Id: I56639da6319cfa06e23ae793d66099813074adf4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is the condensed checkin of 18 commits which created
the implementation of PEP 384.
Task-number: PYSIDE-560
Change-Id: I834c659af4c2b55b268f8e8dc4cfa53f02502409
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Remove bool *ok-parameter from AbstractMetaBuilderPrivate::translateType()
It was only used to handle the special case of void return values of
functions where translateType() returned nullptr/ok = true.
Add a check TypeInfo::isVoid for this purpose and move this handling
to traverseFunction instead. For all other cases, translateType()
returning nullptr means failure.
- Remove the code triggered by the bool resolveScope parameter
of AbstractMetaBuilderPrivate::translateType(). It has been
observed to not find any matches, likely due to the types
being fully qualified by Clang.
- Remove function AbstractMetaBuilderPrivate::decideUsagePattern()
which was a one-liner calling AbstractMetaType::decideUsagePattern()
Task-number: PYSIDE-672
Change-Id: I0336896917cb914d4d622eefa0a21e6e319efa0f
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I705ce29f87ca2427077a4f063610be4384d25cee
|
| |\|
| | |
| | |
| | | |
Change-Id: I0c5b60263ed642a9b6f6b5d6a1492a11f278bfd5
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The functions has been renamed due to PEP8 formatting.
Amends 71249b93a5d12a320b44c608c05fb9d220788a18
Change-Id: I00206e1dda77f672d6883406e47debda19bc622f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I1b140f5bf38175187a6287768f460699cf6a717b
|
| |\|
| | |
| | |
| | | |
Change-Id: I20cf741f5b07426ad5113eb8c52f144102c331ce
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The XQuery used to obtain the function description can fail due to
argument type mismatches (typedefs or blank formatting).
In that case, repeat the query restricting the search
the argument count. If exactly one match is found, use that
with a warning. Output the matches otherwise.
Split out functions for the function queries and and helper
function for creating the XQuery with flags.
Task-number: PYSIDE-363
Change-Id: I83aaa53511896ee78a25f39a769ca907d0ac10bb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|