aboutsummaryrefslogtreecommitdiffstats
path: root/sources
Commit message (Collapse)AuthorAgeFilesLines
* Rename PySide2 to PySide6Friedemann Kleint2020-11-022372-83556/+83556
| | | | | | | | Adapt CMake files, build scripts, tests and examples. Task-number: PYSIDE-904 Change-Id: I845f7b006e9ad274fed5444ec4c1f9dbe176ff88 Reviewed-by: Christian Tismer <tismer@stackless.com>
* replace **locals by f-strings where possibleChristian Tismer2020-11-0215-75/+70
| | | | | | | | | This change affects mostly only my own sources which were prepared for the migration to Python 3.6 . Task-number: PYSIDE-904 Change-Id: I0c2cd59f6f625f51f876099c33005ac70ca39db9 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Remove version suffixes from the example documentationFriedemann Kleint2020-11-027-14/+14
| | | | | Change-Id: Ia59b552467a58c1e7b791f5cafee571cd3c867bb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6 tests: Consolidate import/export macrcosFriedemann Kleint2020-11-024-51/+46
| | | | | | | | Following 430d02db24b95a56ae0acc6a9df6a0effe49da0d, base them on libminimal. Change-Id: I722a73e6f45344cbc91fb044bdf1f015bdff5ec2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Clean up PySide2/global.hFriedemann Kleint2020-11-021-11/+1
| | | | | | | | After 62c21af778b7bff6c86e7f89ef03a87efa6c51cb, the annotation defines for Qt are no longer required. Change-Id: Ib3746257992073850a324fb1de77a484aa36d6b6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Remove old pyside2-tools directoryCristian Maureira-Fredes2020-10-311-0/+0
| | | | | | | | | | | | The tools directory was brought back as sources/pyside-tools and currently only holds the pyside_tool.py script to create the entry points for rcc and uic. Since the submodule is not present anymore, we remove also the reference from the testing step. Change-Id: I0bfa4509d44c9bd2a3e5fbf4ddb7fff7a2750f4d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Declare some missing functions in QListFriedemann Kleint2020-10-302-4/+13
| | | | | | | | | | | | | | | | QList<T> member functions taking a T parameter are no longer seen by the code parser since they take a parameter_type which is specialized to be T or const T & depending on T. Declare them instead. Similar, change QPolygon::operator<<(T) to add-function. This fixes several PySide tests that rely on those functions (qpolygon and others). Task-number: PYSIDE-904 Task-number: PYSIDE-1339 Change-Id: Ic1157f384f86b796cc5c7bc06a934a63649d74be Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Enable declaring functions on container typesFriedemann Kleint2020-10-301-1/+5
| | | | | | | | | | Give the type a parse stack entry. Previously, they ended up in the global functions. Task-number: PYSIDE-904 Task-number: PYSIDE-1339 Change-Id: Ie62dbc0e21ff4c81ef22f98973ab20c3cd85e03a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Add element <declare-function>Friedemann Kleint2020-10-307-11/+62
| | | | | | | | | | Make it possible to simply declare functions that the code parser cannot see. Task-number: PYSIDE-904 Task-number: PYSIDE-1339 Change-Id: If50bc0f1fc77a63e753b6fa440e6f08dd312ce4c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Consolidate argument type parsing of added functionsFriedemann Kleint2020-10-302-62/+73
| | | | | | | | | | | | | | | | | Use the same functionality that is used for argument type parsing of functions from the code model, which has a more powerful type search. This will for example enable specifying class template arguments (like QList::append(T)). Move the error handling from translateTypeStatic(TypeInfo,...) to the findTypeEntries() function, extracting a helper for the search, and use this in translateType(AddedFunction::TypeInfo,...). Task-number: PYSIDE-904 Task-number: PYSIDE-1339 Change-Id: I34428d76e811c3b1444a4d2ded0606e67c4dcf57 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide2: Fix the doc buildFriedemann Kleint2020-10-281-4/+12
| | | | | | | | | | QT_INCLUDE_DIR obtained from Qt6::Core's INTERFACE_INCLUDE_DIRECTORIES contains a ';'-separated list of directories, which caused the shiboken doc run to fail. Iterate over the list to determine the root include directory. Change-Id: I5c639b59fc614e92430999fdbb800063131f7d6d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* pyside/doc: remove python 2 referencesCristian Maureira-Fredes2020-10-287-30/+8
| | | | | | Change-Id: Ife968831c695f1982f9d0ed1157f9128331a700e Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken2: Handle operators written as hidden friendsFriedemann Kleint2020-10-284-9/+76
| | | | | | | | | | | | | | | qtbase/f7f1a71ea41579c1ff86c08c16b82e4c84bc891f changed some operators to be hidden friends, which causes them to become invisible. Detecting them requires parsing friend declarations and turning on parsing of function bodies for clang_isCursorDefinition() being able to tell a definition. Fixes a number of tests failing (qlinef_test, qsize_test, repr_test, unaryoperator_test). Change-Id: I4d3107181b942efebd785cfae7c3fd1b6f0963ac Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Rename shiboken2 to shiboken6Friedemann Kleint2020-10-28702-234/+234
| | | | | | | | Adapt CMake files, build scripts, tests and examples. Task-number: PYSIDE-904 Change-Id: I4cb5ee4c8df539546014b08202a7b1e98ed3ff07 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken2: Add location to error messages about added functionsFriedemann Kleint2020-10-283-6/+16
| | | | | Change-Id: I39210642a96e98328d193f4e81ecad82b496d6c9 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* remove traces of Python2 from C codeChristian Tismer2020-10-2719-465/+5
| | | | | | | | | | | | It will be assumed that Python is always Python 3. All checks for Python 2 are removed. This is the second part of cleaning up the C code from references to Python 2. Task-number: PYSIDE-904 Change-Id: I3006412c2a5bb65402101b0aac5a5f2fc79ce2f8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* remove traces of Python2 from Python codeChristian Tismer2020-10-2713-69/+17
| | | | | | | | | | | | It will be assumed that Python is always Python 3. All checks for Python 2 are removed. This is the first part of cleaning up the Python code. We will then also clean the C code. Task-number: PYSIDE-904 Change-Id: I06050a8c1a18a19583f551b61775833a91673f4e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Remove deprecated QVariant::TypeFriedemann Kleint2020-10-272-47/+0
| | | | | | | | | Usage of the enum causes deprecation warnings. In addition, it is not clear why the type was there given that QVariant is not exposed. Remove the converters. Change-Id: I5b1f12ee0f869a63e6b7d82afdcb58a5d7062ce6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Bump the version.py filesFriedemann Kleint2020-10-272-4/+4
| | | | | Change-Id: I0e84b56ce354f3c88cb05a5818e80a28210d888b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* feature-select: implement class propertiesChristian Tismer2020-10-2710-22/+387
| | | | | | | | | | | | | | | | | | | After implementing property objects for PySide, the static properties (properties for static functions) were quite missing, for instance from QtCore.QCoreApplication and QtWidgets.QApplication . This implementation uses the normal Python properties and derives a PySide.ClassProperty class which works almost the same on classes. The static methods had to be mutated to class methods explicitly. That would be automated by PyType_Ready, but here we are doing this after class initialization. Task-number: PYSIDE-1019 Change-Id: Iabe00be18e25881cc7a97507b6fdae3e2d57ff7a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken2: Add a disable-wrapper attribute for complex typesFriedemann Kleint2020-10-274-1/+21
| | | | | | | | | Make it possible to disable the generation of a C++ wrapper in case that poses some problem. Task-number: PYSIDE-1202 Change-Id: Id0d557e4d4a57cf537be8fb398161aea3a16e174 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: Remove version suffix from generators directoryFriedemann Kleint2020-10-2710-5/+5
| | | | | | | | It does not make sense to move it around in each major version. Task-number: PYSIDE-904 Change-Id: If83b1dcaf04ed5a76f35073aa63c7ef6b456936a Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: AbstractMetaArgument: use QSharedData[Pointer]Friedemann Kleint2020-10-2729-458/+647
| | | | | | | | | | | | | | | | | | | | Similar to AbstractMetaType, AbstractMetaArgument was previously kept as a raw pointer. The data were copied numerous times by AbstractMetaArgument::copy() when adding the inherited functions to a AbstractMetaClass. Similar to what was done for AbstractMetaType in 6cad0686101b252cfdbd1a6768a2b02c39aa1d8a, change the type to be based on QSharedData[Pointer]. It can then be passed around and treated like a C++ value type, with Qt sharing the data when possible behind the scenes. * Remove inheritance from AbstractMetaVariable by moving the fields over. * Remove the unused field m_originalName. Change-Id: Ic9e476ca71e163de131fbecc267d0a4e336cb0b9 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide snippets: Fix deprecation warnings about constructing a QVariant from ↵Friedemann Kleint2020-10-271-34/+28
| | | | | | | | | a type id Rewrite the helper QVariant_resolveMetaType() to return a QMetaType. Change-Id: Ifa3994ea0c23149bd925e4a422f19e98e742d97f Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside: Fix deprecation warnings about constructing a QVariant from a type idFriedemann Kleint2020-10-272-5/+5
| | | | | | | | | Build the QVariant from the QMetaType, fixing warning like: libpyside/pysidemetafunction.cpp:186:64: warning: ‘Type’ is deprecated: Use QMetaType::Type instead. [-Wdeprecated-declarations] /libpyside/pysidemetafunction.cpp:186:77: warning: ‘QVariant::QVariant(QVariant::Type)’ is deprecated: Use the constructor taking a QMetaType instead. [-Wdeprecated-declarations] Change-Id: I5c9c4d775ef58ecf17326c112c5130c43fe1a09b Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: Split out class DocumentationFriedemann Kleint2020-10-275-76/+148
| | | | | | | It is required for further refactorings. Change-Id: Ied5c73494546f3345cc76d2c9f1a808b7c5ee1e0 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: Fix a potential crash in debug operator of AbstractMetaTypeFriedemann Kleint2020-10-271-0/+4
| | | | | | | Bail out on invalid types whose type entry is 0. Change-Id: I088c6f2d3374603266c3804279152e468a754312 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: Improve error messages about cyclic dependenciesFriedemann Kleint2020-10-277-25/+55
| | | | | | | | | | Return a struct instead of a plain list from Graph::topologicalSort() which contains the offending indexes and output the elements in case of failure. Task-number: PYSIDE-1202 Change-Id: Ib7f70c78be0e84272f31d802677c7fc333aa32f4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: Handle typedefs of template parameters within templatesFriedemann Kleint2020-10-271-11/+47
| | | | | | | | | | | | | | | | | | Typedefs of template parameters like template <class T> class QList { using reference = T&; are reported as "type-parameter-0-0" by clang. Resolve that to the proper name of the template parameter in the clang builder. Also, these typeinfo results must not be cached since the same CXType is used for parameters of unrelated templates. Rename the createTypeInfoHelper() function to createTypeInfoUncached() for clarity and introduce a cacheable parameter. Change-Id: I2b21a4dfdd8d86cf36497832837c21f37cb86518 Reviewed-by: Christian Tismer <tismer@stackless.com>
* pysideproperty.cpp: Fix warning about offsetofFriedemann Kleint2020-10-261-13/+15
| | | | | | | | | Return the functions directly, fixing (g++ 9.3.0): sources/pyside2/libpyside/pysideproperty.cpp:331:42: warning: offsetof within non-standard-layout type ‘PySidePropertyPrivate’ is conditionally-supported [-Winvalid-offsetof] Pick-to: 5.15 Change-Id: I98f57d05c4c4163e06431c579537b4db01c656e6 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: AbstractMetaType: use QSharedData[Pointer]Friedemann Kleint2020-10-2338-1682/+1917
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, shiboken2 kept AbstractMetaType by a raw pointer. The data were copied numerous times by AbstractMetaType::copy() when adding the inherited functions to a AbstractMetaClass or specializing templates, sometimes with a bool flag indicating ownership. To get rid of the copies and ownership issues, change the type to be based on QSharedData[Pointer]. It can then be passed around and treated like a C++ value type, with Qt sharing the data when possible behind the scenes. - Extract AbstractMetaType to a separate header/source - Remove unused AbstractMetaType::setInstantiationInCpp() - Remove unused member m_package - Rewrite the comparison of AbstractMetaType which becomes relevant for checking/detaching to do a complete comparison. It was previously unused, intended for a different implementation of view types with special cases. - Rework debug formatting - Invalid meta types are indicated by the "Invalid" usage pattern instead of null pointers Change-Id: Ic4b1feecafb4f0355f39e178c2703b104e45cf6c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* QtQml: Implement QmlElementMaximilian Goldstein2020-10-226-4/+130
| | | | | | | | Equivalent to QML_ELEMENT in C++, this enables users to register classes for use in QML by using the QmlElement decorator. Change-Id: I697e486ef58b18cce4c310e4b556e28735a16d45 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devFriedemann Kleint2020-10-224-4/+113
|\ | | | | | | Change-Id: I68ec1e4b80fcc8c395eacb7d5046fdd8e00535e0
| * Update SmartPointers conversionsRenato Araujo Oliveira Filho2020-10-214-4/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | Merge remote-tracking branch 'origin/5.15' into devFriedemann Kleint2020-10-2119-247/+309
|\| | | | | | | Change-Id: I8831b840fa7816b8919ecbaab17b41822a0a6012
| * Add some missing enumerations and classesFriedemann Kleint2020-10-215-1/+8
| | | | | | | | | | | | Task-number: PYSIDE-487 Change-Id: Ic5d15d67b821eff5cb59727ce2d749e6aa848441 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * Fix SmartPointer conversion name registerRenato Araujo Oliveira Filho2020-10-211-11/+30
| | | | | | | | | | | | | | Register the correct name for smart pointers. Change-Id: If12701901319b0578602ff5b5ab8eecad820d969 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * shiboken2: Fix one more instance of an invalid metatype passed aroundFriedemann Kleint2020-10-211-1/+3
| | | | | | | | | | | | | | Add the missing call to decideUsagePattern(). Change-Id: Ibfe07afa3f830cefc953b8702aeca57e2b615f36 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * doc: update versions and comandsCristian Maureira-Fredes2020-10-2110-184/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * Extend SharedPtr API with std::shared_ptrRenato Araujo Oliveira Filho2020-10-202-49/+26
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.15' into devFriedemann Kleint2020-10-2030-143/+214
|\| | | | | | | Change-Id: Iaabea628351fac9da88b5779b537f62262ff82a7
| * shiboken2/ApiExtractor tests: Avoid detaching of listsFriedemann Kleint2020-10-2022-132/+152
| | | | | | | | | | | | | | Use constFirst/Last() instead of first()/last(). Change-Id: I3e7c72e3ab72b86565eea087b470f2a51b2999f8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * shiboken2: Fix testnumericaltypedef failing with Qt 6Friedemann Kleint2020-10-201-6/+6
| | | | | | | | | | | | | | | | | | 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>
| * shiboken2: Fix an assert crash in debug modeFriedemann Kleint2020-10-201-3/+0
| | | | | | | | | | | | | | | | | | | | 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>
| * shiboken2: Ensure there are no AbstractMetaType with Invalid usageFriedemann Kleint2020-10-203-4/+14
| | | | | | | | | | | | | | | | | | | | 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>
| * Add some more classes from QtConcurrentFriedemann Kleint2020-10-165-0/+44
| | | | | | | | | | | | | | | | | | 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>
* | Fix QMutexLockerFriedemann Kleint2020-10-204-24/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | qtbase/d4b206b246caf9b49110526585693ab629609d99 split QMutex and QRecursiveMutex which inherited from each other in Qt 5 into separate classes and changed QMutexLocker into a template. This could only be represented by separate types in Python. To work around this, reconstruct a QMutexLocker with the common API into an invisible namespace for generating the bindings. Task-number: PYSIDE-1339 Task-number: PYSIDE-904 Change-Id: I776250f91dfed9985f2a8a5705b26f782a20bbd9 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into devFriedemann Kleint2020-10-1618-26/+398
|\| | | | | | | Change-Id: I27beffe4a6e2fc2f818960c3b9f5ffbfaac4a670
| * Enable typesystem typedefs across modulesFriedemann Kleint2020-10-1511-9/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * shiboken2: Enable setting up inheritance for templates early onFriedemann Kleint2020-10-152-17/+25
| | | | | | | | | | | | | | | | | | | | | | 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>