| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Change-Id: I7329fe88ed77e705c57a4991655600942471f6ae
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Updated test to accept base types derived using std::shared_ptr;
* Generate new coode to be able to convert smart pointers into shared
pointers of base class.
Functions that accepts SharedPointer<A> as argument should be able to
accept SharedPointer<B> if B is derived from A.
Task-number: PYSIDE-1397
Change-Id: I7e5235980daaf4651dad3ab1c880373f1c64e134
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
| |
Register the correct name for smart pointers.
Change-Id: If12701901319b0578602ff5b5ab8eecad820d969
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
| |
Add the missing call to decideUsagePattern().
Change-Id: Ibfe07afa3f830cefc953b8702aeca57e2b615f36
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add new way of building rst-only documentation
* Updating recommended libclang for 5.15
* recommending python 3.5+
* link commercial license
* Show videos as grid
* changing title of a tutorial to be more specific
* add missing step to build only shiboken
* add venv as an option before virtualenv
* add problem on windows and python 3.8.0
* add section to create a virtual environment
* only show titles of tutorials to avoid having a long page
Change-Id: Iebb99d2cd776c3d5b72dc44153f325f74a1626cc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure that we have copy constructor for SharedPtr with derived
types.
This will be necessary for test SharedPtr implicit conversions.
Task-number: PYSIDE-1397
Change-Id: Ic970c84bef025403a0fbef79dce97433254d2f56
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
| |
Use constFirst/Last() instead of first()/last().
Change-Id: I3e7c72e3ab72b86565eea087b470f2a51b2999f8
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
| |
The test uses "ushort" as a type name, which is apparently
pulled from some header with increased language level.
Use a real custom name to circumvent this.
Change-Id: I6f3ba16d8f25f5b12edcfd53b1397de9f7c1d583
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Do not consider RValue-references as invalid types;
this causes an assert crash by 556c13f39244b4eb75638cd8f4434167eadf0c98.
They are filtered out later.
Change-Id: I6c477bb8319aa99ad73ff9a002ec11992a9ac538
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Introduce new values for the pattern enum representing
template parameters, which were previously invalid and add
a missing call to decideUsagePattern().
Change-Id: I7edeb80a67ab1edfe895e96311d54c9128fad5a3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
| |
This lays the foundation for adding further specializations
of QFuture and QFutureWatcher to dependent modules.
Task-number: PYSIDE-1202
Change-Id: I82f9940db9d50ced95d4e1388c6460c6efc0469b
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding a specialization of template type ValueWithUnit from libsample
to libother would fail since the SBK index array of libsample would
be used with the index from libother for it.
Build up the inheritance for typesystem typedefs early on and add
a lookup which matches the template specializations found during
traversing functions to the type def and the class that is
generated for it so that it can be used.
As a side effect, special case entries for template
specializations can be deleted from the signature mappings since
they change to the class name and thus are normal types.
Task-number: PYSIDE-1202
Change-Id: I5cc9650f70e9dc975171c80919685ebf5e752749
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Split the code adding the specialized template functions from
AbstractMetaBuilderPrivate::inheritTemplate() into a separate function.
The part setting up the base classes can then be called at an
earlier stage so that it is known when traversing the functions.
Task-number: PYSIDE-1202
Change-Id: I958d357b78572c9b5130dbe1bf517d2af82a6f1a
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
| |
Mimicks some template which might be used trying to enforce
correctness of units by type checking.
Task-number: PYSIDE-725
Change-Id: Ia7008d7db5638920eee3d0ef36cc32a63796b98e
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
| |
Task-number: PYSIDE-1202
Change-Id: I7039b113ffd43289f96f890ca55cb5b9b4607c92
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- AbstractMetaType: Pass TypeEntry to constructor
- AbstractMetaType: Return instantiations() by const ref
- AbstractMetaClass: Make baseTemplateInstantiations a member instead of
a global hash.
Simplify the code accordingly.
Task-number: PYSIDE-1202
Change-Id: I1a18aa4ff97481af8cb13e8732fe3952c48edb29
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, nullptr for an AbstractMetaType meant "void", particularly
for function return types. The problem with this is that it
causes unexpected crashes when dealing with template types
like QFuture<void> due to one of the instantiations of the
AbstractMetaType being nullptr. Use an AbstractMetaType based
on the existing "void" type entry for this.
Task-number: PYSIDE-1202
Change-Id: Ib06035cc7903480fd509f7e927d9114c55d51b62
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Don't output the generateCode field in hex after
4761ea81d1789d153ae986be6f749853f5a68332.
Output typedef entries of type database.
Task-number: PYSIDE-725
Task-number: PYSIDE-1202
Change-Id: Ib194eceedf2764a9c23353f4a833cb1e57a6e359
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Static properties are not easy to support.
They need an extra property subtype and support in the meta-class.
A problem is that the implementation needs to go deeply into the
innards of things and need to use `_PyType_Lookup`.
That is hard to circumvent when the limited API is used.
Therefore, the current implementation will be it for 5.15 .
At most we might add a few missing properties through XML.
Task-number: PYSIDE-1019
Change-Id: I56a9eabe5f774c1ff04c149227e06318c8bf4f29
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
| |
Skip base classes whose generation was disabled by reject or
generate='no'. This can happen for typedef entries.
Task-number: PYSIDE-1202
Change-Id: Ie6fac2408a6aa7b3303b4f06e744a2d2405e2a30
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TypeEntry::CodeGeneration::GenerateCpp was unused. Consequently,
the GenerateAll mask is not needed, either.
Replace GenerateCpp and GenerateTargetLang by a generic GenerateCode
value.
Introduce a new GenerationDisabled value to be able to distinguish
a generate='no' XML attribute from a plain rejection.
Fix many invalid usages of bool generateCode() testing against
the flag value.
Use the enum instead of uint for the code generation field.
Task-number: PYSIDE-1202
Change-Id: I0aec5bd1ebfb9a50b80d5a187372c4271490e1b3
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
For wrapper types, generate the class-related extra includes into
the wrapper header since they might be required for it (for
example, instantiation type of a typedef typesystem entry).
Task-number: PYSIDE-1202
Change-Id: I9f57bdfe54d6273e4a1ffa9570e3352959dea480
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extra includes might be required for the template instantiation type.
Add the includes and modifications obtained from parsing the
sub-elements to the target entry in endElement().
Complements bfd1de3495b18c0ecc251260442a9a46009861e.
Task-number: PYSIDE-725
Task-number: PYSIDE-1202
Change-Id: I71e399879feb641238d4d6035faa3f4c34932a87
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ife42d7a3f855816c66dcbd4b8062b72f947510e7
Fixes: PYSIDE-1398
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When checking a debug build, refcounting problems showed up.
The reason was that somewhere the static strings were
treated with normal refcounting. This is easily possible if
some string is used in the interpreter: The string becomes
interned, maybe before it is used by us, and will be
deallocated without our knowledge.
We are turning the list of referenced strings into a set.
Also, the strings are made immortal by adding one extra count.
This way, our set does not need to cope with deletions and
will work either way.
The final cleanup removes that, anyway.
Change-Id: I192ea47f739cc785ea3e354cfb82c5fa5a6eac78
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When checking a debug build, refcounting problems showed up.
It is unclear where references are lost, at the moment at the
strings "__div__" and "__idiv__".
It is possible that these strings were already in a destruction
list of another module. When turning the list into a set, the
problem vanishes, because we no longer know how much references
to expect. Because they are not negative, this seems to be ok.
Change-Id: I0bc59b83f43becf5ee5f5f19213fc46513041909
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
| |
Replace the macro generated into the code by the one
introduced by 430d02db24b95a56ae0acc6a9df6a0effe49da0d.
Change-Id: I8e713ff25c180a22569a3ba589d04dca43fdc804
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Factor out method to write the operator functions and call it for the
module wrapper, too.
Fixes: PYSIDE-1326
Change-Id: I5b6faf19d253d5828474dec36b454aa20753123c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is one of the lesser known things that any project generating
bindings for Qt-based code needs to include pyside2_global.h in
order for signals, slots and properties to be recognized, since
the annotation macro definitions are in this file.
Move the definitions over to shiboken2 to remove the need to
include it.
[ChangeLog][shiboken2] Projects generating bindings for Qt-based
code no longer need to include pyside2_global.h.
Change-Id: I531bb7444561ccfc352f3be09ecdf854f9f7dd3d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the 3 libraries that need to export symbols,
(libshiboken, libpyside, pysidetest), fix up the
export/import macros to follow the Qt convention:
- Define generic export/import macros LIBSHIBOKEN_EX/IMPORT equivalent
to Q_DECL_EX/IMPORT. Remove definitions for the ancient g++ 4.X.
- Reuse those in libpyside, pysidetest as PYSIDE_EX/IMPORT and
PYSIDETEST_EX/IMPORT.
- While building, define some BUILD_ macro indicating export.
- Define the _API macros depending on the BUILD_ macro to be export or
import, respectively as is done in Qt. Remove the ugly hack in
pysidetest that tried to re-use the PYSIDE_API macro.
- Brush up the headers a bit.
Change-Id: I635891b7eec5a52a1dcf45022f7bfb6a9cfee83f
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
| |
Remove space and use reinterpret_cast.
Task-number: PYSIDE-1326
Change-Id: I1adfc545c97278eb7da01aec550cb6e2e15945ba
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
namespaces
Add them in ShibokenGenerator::getFunctionGroupsImpl() with some
helpers.
Fixes: PYSIDE-1075
Change-Id: Ie627c6e12f82e40cdb4f306ddac6b682e77124c5
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
| |
functions
Mainly add those in ShibokenGenerator::getGlobalFunctionGroups() with
some adaptions.
Task-number: PYSIDE-1075
Change-Id: I6dabac72c204904e76162542b5aa3ea1ac3b56ec
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To avoid having to add a
ShibokenGenerator::lookForFunctionsInClassesNotToBeGenerated()
to fix the function issue,
replace ShibokenGenerator::lookForEnumsInClassesNotToBeGenerated()
by several helper functions:
- Add a list of top level invisible namespace to the generators
- Add functions to retrieve enumerations of nested invisible namespaces
to AbstractMetaClass with recursion helpers.
Task-number: PYSIDE-1075
Change-Id: I421113770e622611caeb221498b872d0a6ba1aeb
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Generate the sbk-index values for enums in
writeTypeIndexValueLines(AbstractMetaClass *) for invisible
namespaces as well instead of adding them to the global
enum list. Remove checks for private/protected on global enums
as they originate from namespaces.
This removes one usage of
ShibokenGenerator::lookForFunctionsInClassesNotToBeGenerated()
which will be removed in a consecutive change.
Task-number: PYSIDE-1075
Change-Id: I9ee7aba20802e9794f371006f9fdbd7ab8d67cab
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the process to get the documentation built
is to build the whole project, that is too time consuming.
Additionally, using qdoc on the Qt API takes a lot of time.
This patch introduces the setup.py option called 'build_rst_docs'
which skip the general build, and only generates HTML documentation
based on all the .rst files we have for shiboken and pyside.
To use it:
python setup.py build_rst_docs
The build will throw warnings related missing directories, and files,
which are generated on the 'qdoc' process, but since they are skipped
they are not present.
Some missing references warnings are skipped due to also come from
the qdoc-based step.
Task-number: PYSIDE-1106
Fixes: PYSIDE-1390
Change-Id: I4118fd3b64e217717df6cae093138f6951d37094
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
protected hack
Add a missing check for final class.
Amends 170756fa1e5de0ce7ba33521f1eb168d70ad276d.
Fixes: PYSIDE-1388
Change-Id: I6b7cd5c9a769838287ac7165bdc2d5ad63b289a1
Reviewed-by: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the tests for PYSIDE-1074 from samplenamespace.h to
removednamespaces.h. The latter has also a test case for an
invisible namespace under a visible namespace besides the
invisible top level namespace test.
Task-number: PYSIDE-1074
Task-number: PYSIDE-1075
Change-Id: I5d1c6428f6ceadf929063c2c69723a7871173f4e
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
| |
Add functions that indent/outdent for usage in a stream statement.
Streamline the code accordingly, removing unneeded braces
in one case.
Change-Id: Iac4a16919eebdb667bbc302b0f937cc03a01c724
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
| |
This allows for removing a few temporary variables and/or qAsConst().
Task-number: PYSIDE-1075
Change-Id: Ib48070950ac682ec66e19af3dc8c0be5bfdffcee
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After implementing selectable features, support from the signature
module was quite much missing. It was not clear for some time what
to do the best.
It turned out to have the smallest impact and runtime penalty
to use the Python parser output dictionaries and create copies
with snake case naming. That has almost no overhead.
Also, it was necessary to augment the internal map_dict with
snake_case versions. It may be possible to simplify that map_dict
further in another check-in.
Remaining is the problem of static properties. This will be tried
using the PySide Property objects which can be improved.
Change-Id: Ied83ccb197a3c15932c4202b5f1ade772416e17b
Task-number: PYSIDE-1019
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
| |
Change-Id: I07a87ad49546534f3492b534b2a2dd4945304de7
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
| |
Change the formatting for better readability and use
the "visible" attribute instead of the deprecated "generate".
Task-number: PYSIDE-1075
Change-Id: Ibbb33d2482c1d682f74d2edce2dd7d3bb1a50821
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
| |
lists by const ref
This allows for removing a few temporary variables and/or qAsConst().
Task-number: PYSIDE-1075
Change-Id: I0fe3544f0ce4d3a8d56de9c93e300972e0844177
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add an XML attribute specifying whether code is to
be generated to the XML properties.
- Split the generator functions for field setters and getters
apart so that they can be used for generating property
setters and getters.
- Generate code for all properties from XML when the PySide
extension is not used, otherwise only for those with
the attribute set.
Task-number: PYSIDE-1019
Change-Id: Iab2ba38b90038edc667a233c23c7113fdc6fb438
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signature module has grown groups of rather unrelated
topics. In order to reduce the complexity, we break up
the source into a number of files.
Reason for this change was building support for selectable
features, which should not get lost in all the unrelated
helper functions.
Task-number: PYSIDE-510
Task-number: PYSIDE-1019
Change-Id: I8e22a91db1882f8c5428b8def13bf9f1cea431fb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
| |
Properly indent and join the else if statement.
Task-number: PYSIDE-1019
Change-Id: I8d5dc6c84e19b97b55f1ba29094da1e31dc7ca1c
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
| |
Remove the getter/setter functions and related code.
Apparently this was some early, unfinished attempt
at properties.
Task-number: PYSIDE-1019
Change-Id: Iff196da7b7bfb7b30b724405405decf36201b259
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The early signature module tried to minimize the visible
changes to the code base. It replaced the `PyType_Ready` call
by a special version which did other things as well.
We replace that special call by a more intuitive function
`InitSignatureStrings` that does exactly that and nothing more.
The functionality of the module is unchanged.
Change-Id: Ic2f9cd29b0352f0a24daa55b01420c77d103c0b2
Task-number: PYSIDE-510
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
| |
Add a list of TypeSystemProperty to ComplexTypeEntry, parse it from
XML and add those properties in
AbstractMetaBuilderPrivate::parseQ_Properties().
Task-number: PYSIDE-1019
Change-Id: Idf6ecde7c9de6bf1e56be423921672152e97de70
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|