aboutsummaryrefslogtreecommitdiffstats
path: root/sources
Commit message (Collapse)AuthorAgeFilesLines
* shiboken6/test: Fix warnings about implicitly generated assignment operatorsFriedemann Kleint2022-09-2316-56/+58
| | | | | | | | | | | | | | Fix warnings like: warning: implicitly-declared constexpr Pen& Pen::operator=(const Pen&) is deprecated [-Wdeprecated-copy] by removing definitions of copy constructors/assignment operators which are equivalent to the default generated ones or spell out the special methods were needed. Change-Id: Ie7cb335707f8bdd297b0ceea969909bc809016d7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit f419206841764323c244bf91051b2878451c17b6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Documentation/patch_qhp.py: Strip the module from the indexFriedemann Kleint2022-09-212-1/+17
| | | | | | | | | | | | | | This makes the index actually useable since it is then possible to find a class by starting to type the name. The downside is that there is a conflict with the Qt names if the C++ documentation is installed, too. Change-Id: I231a90025b2777fe8ff23fcc9dd669722dcd922e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit fa38984e53a7a325fd317822f75551379763b810) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: write about new Enums and Forgiveness ModeChristian Tismer2022-09-202-3/+165
| | | | | | | | | | | | | | | | | The new Python enums are described in detail and the similarities and problematic differences explained. Then the forgiveness mode is introduced, showing that most incompatibilities can be ignored, although this mode is not encouraged for new code. Task-number: PYSIDE-1735 Change-Id: Ib0d28745ce430a97a84e52522a5aa0cbbe3f3581 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 1aeb58db3d0ee70946572ead7f0cf75537f87b78) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove the ported Python examples pages from additionaldocs.lstFriedemann Kleint2022-09-151-110/+0
| | | | | | | | Task-number: PYSIDE-2056 Change-Id: I934cb1d593de1d9d56e94f7335bc6c5b3da696a3 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 8b0517769f05153e2a41b1206bf3f0db7d2bcbe1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Documentation/patch_qhp.py: Brush up scriptFriedemann Kleint2022-09-133-27/+40
| | | | | | | | | | | | - Fix flake8 warnings - Warn about errors - Move line processing into a function for further extension - Make file a positional argument Change-Id: Ice191b8b78ff3a151581066ae0fc493ecb54fb64 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 3b31a65a76de7f29f32c27201b35f5f3c17d14e5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Documentation: Sort the modules page alphabeticallyFriedemann Kleint2022-09-131-57/+40
| | | | | | | | | | | | Remove some duplication introduced by b81f75fa027076a65747109f2d8ddd9bd904d7dda. Change-Id: Iadc1c25ed63120ef360581c5565e72e20b3a996f Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> (cherry picked from commit 888b78ad9a2ddebaceda76b3d8f6cc80567b623f) Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Update documentationFriedemann Kleint2022-09-126-38/+26
| | | | | | | | | | | - Use version 6.2 - Delete obsolete paragraphs - Fix some errors Change-Id: I0c86f013fb3ad21a4cc7c5d490a9f129e80f3540 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 276d60b71a72a548340e6684a21fd122c4365ed9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix Property GC tracking for Python 3.11Christian Tismer2022-09-121-0/+2
| | | | | | | | | | | The GC was not untracked when PySide Property was deleted. This was found by the new deeper error tracking in debug Python 3.11 . Fixes: PYSIDE-1960 Change-Id: I5ecdfb88529c22a44575ca9460d6753b1e389079 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit ace680f4c5fc8564df9daaa41bf8779c9fffa671) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix TypeError when comparing Qt.Flags and objectsAdrian Herrmann2022-09-082-2/+27
| | | | | | | | | | | | | | Comparing a QtCore.Qt.Flags object with any other object calls the PySideQFlags_tp_richcompare() function. This function always threw a TypeError when comparing to a non-numerical object, causing undesired effects. Account for these cases now by returning True or False if the compare operator is != or ==, respectively. Fixes: PYSIDE-2048 Change-Id: Ic81a65ace743b57e90ffe7883e42eb8330b78832 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit bab4f34755a9c00430f9ad528e9c1209a94f0778) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Documentation: Update the modules pageFriedemann Kleint2022-09-071-2/+60
| | | | | | | | | Remove the obsolete QOpenGLFunctions and add some missing modules. Change-Id: I824ee3c125c4fd42d07b55afe7c532c3188bec4c Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 81f75fa027076a65747109f2d8ddd9bd904d7dda) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Fix a crash caused by invalid return types of added functionsFriedemann Kleint2022-09-061-1/+1
| | | | | | | | | | Pass up the parse error. Task-number: PYSIDE-2046 Change-Id: I5c32b056887ac9b4b5229457e5416fa16d4b1818 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit b42c3339158c4c677e16614e698db30a3643122f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix doc warningFriedemann Kleint2022-09-061-1/+3
| | | | | | | | | | | | | | Fix warning: package_details.rst:9: warning: Literal block ends without a blank line; unexpected unindent. Amends 52d38437445f6aa979875a93702496f800b98d63. Task-number: PYSIDE-1112 Change-Id: Ifebd2c33625c0612827b9626a312450714584233 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 2748937c7335eb288c8adf6f7084fa6a3a6f6ee1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Use the full path of libdir in pkg-config fileZhu Zihao2022-09-021-1/+1
| | | | | | | | | | | | "libdir" in shiboken6.pc is the relative path to the install prefix. Fix it to the full path of directory. Fixes: PYSIDE-2040 Change-Id: I5caa54813e2104b7ebd9163ba2c5da781ac28919 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 855aaa252bdba645af19a11ea887befe06febacd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Modernize Shiboken.getAllValidWrappers()Friedemann Kleint2022-09-021-8/+7
| | | | | | | | | | Task-number: PYSIDE-2046 Change-Id: I09bea4ba6a9793cc576f3a3c8ef44df021744a3a Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 3911525f0b8ee1c8b301ef794cff4bf24e9f68f1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix stubs of shiboken6.ShibokenFriedemann Kleint2022-09-022-11/+11
| | | | | | | | | Fixes: PYSIDE-2046 Change-Id: I6a888d1f1f8dff25d5fc7f40131504d93c79be62 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit fc9b08123a1f2c3a9d1d6def83dd4d4599646c34) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Finish the flexible Enum/Flag assignment and correctChristian Tismer2022-09-024-20/+16
| | | | | | | | | | | | | | | | | | The former fixed coupling between flags and the Enum/Flag decision is no longer correct, because there are rare cases which deviate heavily from the default. One example is Qt.Modifier: This class is equivalent to Qt.KeyboardModifier, which is a Python Flag type. This patch implements the full flexibility of redefining enum and flag and corrects the Qt.Modifier case. Task-number: PYSIDE-1735 Change-Id: I7947e722f72b4d7b821bce57586e1793a1089606 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit edbee6b65aeafc0fb9a5cdb8d53e04e15a94edbe) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Simplify code generator because of full forgivenessChristian Tismer2022-09-022-22/+2
| | | | | | | | | | | | | | | | | | | | | | PyEnum needed extra signature handling in the parser.py file and the abstractmetatype.cpp file because we needed to decide at runtime what names are to be generated. With the full forgiveness mode, all special handling is still implemented, but the old versions of the enum representation can also always be used. The unexpected funny side effect is that we now can remove all special handling that has been implemented for these cases. The way how things are written is no longer relevant, although the new version is still the only one advertized. Change-Id: I76efc8ffc646d3a04d974d6776a1c9c2b5ffec70 Task-number: PYSIDE-1735 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 5419080e948c89d4f271d7d4a9bf980f647d53f5) Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PyEnum: Improve the handling of QKeyCombinationChristian Tismer2022-09-024-4/+66
| | | | | | | | | | | | | | | | | | | | | | | | | After turning IntEnum into Enum, a few classes need more attention because the simple int coercion is no more sufficient. Instead, a bit of help is necessary to make the usage of the __or__ operator consistent, again. On first sight, this coercion to KeyCombination looks slightly unpythonic. But this originates in the complex matters. If you observe what types are actually added, this is very correct. Using the IntEnum version instead is not better. It is just hiding the ongoings by using int, which would also allow to combine two characters as a bad side effect. [ChangeLog][PySide6] PyEnum now handles QKeyCombination correctly with "|" or (deprecated) "+" operators, without falling back to using IntEnum. Task-number: PYSIDE-1735 Change-Id: I08b93b8b7ece75ca650f2916ec6f6f5bb711a70b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 20729eb6ffda8771c192e1614f8e53823108cab1) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* doc: add section for cmake-only buildCristián Maureira-Fredes2022-09-011-8/+38
| | | | | | | | | | | | Adding notes for the recommendation related to building and packaging pyside and shiboken for different scenarios, besides Python wheels, using a CMake. Fixes: PYSIDE-2005 Change-Id: I02a45c92dc339a32fddb4b2a0de87a5c61483931 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 4cfa700d5965922b5156517a64790369deac354f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* doc: use more processes for sphinx-buildCristián Maureira-Fredes2022-09-012-2/+2
| | | | | | | | | | | Adding the option '-j auto' to the calls we have for sphinx-build, speeding up the documentation generation process. Change-Id: Ie676d305e283fa217a90f3de64f96978ce6b3af0 Task-number: PYSIDE-1106 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit ddbf71586ac56b623c6467285b2b965f377d4752) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PySide6: Add QBluetoothDeviceDiscoveryAgent.DiscoveryMethodsFriedemann Kleint2022-08-311-1/+1
| | | | | | | | Task-number: PYSIDE-1571 Change-Id: I12f23238333a350835bb923299a7b2e5fbf9cb03 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 24b86d11921c70029c1b1b75f8a20c83dbc8a88c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Documentation: Improve module pages titleFriedemann Kleint2022-08-271-2/+2
| | | | | | | | | | Task-number: PYSIDE-2038 Change-Id: Ib87c2a1ff77bbb0bf71f4f2ca976929780e5b398 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit ae970d1794821f383e53ae62487cb1e0723ff051) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix setting override cursors without context managerFriedemann Kleint2022-08-251-1/+1
| | | | | | | | | | | | | Do not restore the cursor in the destructor of the helper class, only in __exit__ of the context manager. Amends f81168387be7879f9167405b28d29ba26e7b3f14. Fixes: PYSIDE-2039 Change-Id: I78d1dc402adda953ec3d5516631cfda5900a9a43 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 287dc1365251a15e95363366d9c86bb8f5962ecb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix blocking threads in static functions of QMessageBoxFriedemann Kleint2022-08-241-0/+9
| | | | | | | | | | | | Add the allow-thread attribute for the compatibility overloads along with a fixme comment. Fixes: PYSIDE-2034 Task-number: PYSIDE-803 Change-Id: Id89767c8fdd14cc450ae131ead873d1afdc94b8f Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 5c37a8c9ffea848f4115e3b89f50bddc4ea4a6de) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix random values in QFormLayout.getItemPosition()Adrian Herrmann2022-08-182-18/+20
| | | | | | | | | | | | | In QFormLayout::getItemPosition() on the C++ side, *rolePtr is not set if row == -1, in which case on the Python side this gets converted to a random value outside the enum range. Fix this by setting *rolePtr to a default value in the glue code. Change-Id: I0c67c771ed017f14b211fa6ccf9c89706152d214 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 5e4a830f2aa5e27e203fc0a4fc482b339d9106a4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add support for QFormLayout::TakeRowResultCristian Maureira-Fredes2022-08-183-2/+34
| | | | | | | | | | | | The struct TakeRowResult was not explicitly declared in the typesystem, leaving out some QFormLayout functions like QFormLayout::takeRow(...). Fixes: PYSIDE-1312 Change-Id: I77577cb54ff9cca56435b62c4848832e79f575f8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit f096a6497b311555a06be7218027411a6a6ee166) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Trim white space of default expressionsFriedemann Kleint2022-08-181-2/+5
| | | | | | | | | | Remove Windows carriage return characters as observed in the signature of QWebEngineView::printToPdf(). Change-Id: I29db24d7407436f9f579684fb6dbce3c1c4cbf7b Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit db143665ff9df2e07cc4d072e88cfe071666c63f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* signature: Update, cleanup and install signature testChristian Tismer2022-08-184-19/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | The signature tests were disabled for a long time. Meanwhile, a number of unresolved values have piled up. The reason was partially a weird mixture of intents that made it unpractical to run the full tests on every platform. Mamely, macOS was quite unclear about which signatures have to exist and which don't. This overhaul does the following: * The various Shiboken modules were removed from the tested signatures * A pure test is added that only checks for no offending lines As effect, signatures are tested unconditionally without any other conditions. The other tests remain disabled. Task-number: PYSIDE-510 Change-Id: Id9e65ed7324a795966f460e13dd95fd5cebcca6a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit bd3e8afdb06c8614164e4ed1f195a8618c1d586d)
* libpyside: Output a warning when a property metacall failsFriedemann Kleint2022-08-161-1/+5
| | | | | | | Change-Id: Ib435b4b87a92e859a5e1da0b54e6d442b465defc Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 659bc34168f33c43c65f5160a7619e25cac20529) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Enable the type definition to override all enum typesChristian Tismer2022-08-153-3/+8
| | | | | | | | | | | | | | | | | | | | The new enum support in XML knew IntEnum and IntFlag, only. After we recognized that there exist three cases that should be IntFlag, although there is no according "flags" C++ definition and adding this definition crashes, it became clear that we must allow to override IntEnum by IntFlag, just for Python. But the existence of such cases may be not restricted to IntEnum, it can also occur with normal enums. This patch prepares such an override. It must be still checked if there are such cases at all. Task-number: PYSIDE-1735 Change-Id: I4af1c3153c84f88fbef6ac36e421c47dfb5429a9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 3d8ade9b5bd6f8114bd52b33d454bfc141684d54) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Accelerate item accessChristian Tismer2022-08-151-7/+11
| | | | | | | | | | | | | | | | With the transition to Python 3.11, access to enum items has become slower by the replacement of direct item access by Python properties, involving unnecessarily the use of Python code. When we are in charge of Enum item access, we circumvent the slower property access by using the internal mapping directly. Task-number: PYSIDE-1735 Change-Id: Iabe045be09df847d9587e9d3f6913e9610f5695e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 01e048763a372677c358172a66232f15b09a1021) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Define a fixed list of Int(Enum|Flag) decisionsChristian Tismer2022-08-1519-78/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | This was "PyEnum: Write a default Int decisor for Enum and Flag". Historically, C++ enums were all compatible with int. The new Python enums are more diverse here. There are the basic types Enum/IntEnum and Flag/IntFlag. We have tried a lot to come up with a sensible default heuristic computed from the data. In the end, this was reverted and replaced by a fixed list that was collected from similar implementations. By the move away from Int inheritance, a few classes needed extra support. Python 3.11.0b5 also required the Flag creation parameter "boundary=KEEP". It is not clear if this is correct, yet. [ChangeLog][shiboken6] Most former IntEnum/IntFlag are replaced by pure Enum/Flag classes in a generally compatible way to other implementations. Change-Id: I1dbe7b0556a3375df89eb40e9d9f495f14bf42b1 Task-number: PYSIDE-1735 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 0f5dcb03eb258280acd10a0f4f2889301a9ef365)
* PyEnum: Fix QKeySequence to stay correct when switching IntEnum to EnumChristian Tismer2022-08-156-19/+38
| | | | | | | | | | | | | | | | | | | | | | | Most PyEnum types will no longer be compatible with int, when we change from IntEnum to Enum. This has a number of consequences and leads to improvements in type representations. The repr of QKeySequence was actually wrong and misleading, see the test qkeysequence_test.py . We change the repr and the indexing to return QKeyCombination like our competitor does since a long time. [ChangeLog][PySide6] QKeySequence returns now QKeyCombination instances when indexed and the new PyEnums are used. Change-Id: Idaaeb44ca3b6103b3e0416eaeb691ad954745f73 Task-number: PYSIDE-1735 Fixes: PYSIDE-2021 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 06bc40580c5f170e903d58e5e1fe5793be749e3c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix the modelview programming tutorialFriedemann Kleint2022-08-125-0/+458
| | | | | | | | | | | | | Add some documentation examples and snippets to fix most outstanding C++ to Python conversion errors. The rest looks roughly ok and could be improved by further fixing up the snippet conversion. Task-number: PYSIDE-1984 Change-Id: I8c1bdcbc4a07847b2731ef7e2b9ba666cc00ccd6 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 2d7a4fc710e59d0e766ffa101dba383eff46bb50)
* PySide6: Fix a crash when overriding QAbstractItemModel::mimeData()Friedemann Kleint2022-08-111-1/+1
| | | | | | | | | | | | | Correct the signature modification, which changed due to typedefs in Qt 6, fixing: sources/pyside6/PySide6/QtCore/typesystem_core_common.xml:1511: signature 'mimeData(QModelIndexList)const' for function modification in 'QAbstractItemModel' not found. Change-Id: I0798308861a5ca6161c52681919a5dac672bbad2 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 660485ee362180ee023b88ebbfd1e5dbf1175ae6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* shiboken6: Remove Python code snippet markersFriedemann Kleint2022-08-111-3/+6
| | | | | | | | | | | Task-number: PYSIDE-1984 Task-number: PYSIDE-1952 Change-Id: I2e74b9c3d26c8d9fb60480c052189630ff54eded Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit df9c852d6cd6a3aff5d93ff17fcee38dc9e7088b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update the VS Code debugging tutorial for WindowsAdrian Herrmann2022-08-102-31/+85
| | | | | | | | | | | | Update the "Debugging PySide with VSCode" tutorial so it applies to Windows as well. Task-number: PYSIDE-2000 Change-Id: I487534f3094e2b9a1c2b60733ffe599afe7b39b4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 7e1c05339cdd1e457646f27e939d50f6ccbc25ae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add a typesystem XML attribute for Python enum typesFriedemann Kleint2022-08-105-0/+46
| | | | | | | | | This is preparing the PyEnum completion of different Enum types. Task-number: PYSIDE-1735 Change-Id: I917bd62eae785b486302092c33843efceecf0568 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 1a71e6f87d238c72f8d2fadf976310378ae78b3d)
* Documentation: Fix some snippets of the model view tutorialsFriedemann Kleint2022-08-102-0/+42
| | | | | | | | | | | Replace the snippets showing the C++ header without implementation; they cannot be extracted from Python examples. Task-number: PYSIDE-1984 Change-Id: I373063ea8f3f890bb3b217951cce71feec79951c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit a78d18eab747a6af306627eab6d3e004647751f9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* snippets_translate: Add a way of overriding snippetsFriedemann Kleint2022-08-085-0/+23
| | | | | | | | | | | | | Prototypically fix the QInputDialog dialog snippets. Task-number: PYSIDE-1984 Fixes: PYSIDE-1952 Change-Id: Iad75971b8778a6364123963d28f54f02a0c56737 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 22bc41605a4dd18330a39f6346143ec55a7d6074) Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* QtDataVisualization: Add ownership transfers for QValue3DAxisFormatterFriedemann Kleint2022-08-081-1/+13
| | | | | | | | | | | | | Add ownership modifications to the setter and factory functions. Amends 966fa464d1f91292c91bede88bfaf1741acdce6e. Fixes: PYSIDE-2019 Change-Id: I257af1533509d823a70aa0a8f8704d3f211b23a7 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit ae297b960d031e2ef630bf914297e108434e5ad8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* build: Fix a weird build problem on macOS and other platformsChristian Tismer2022-08-041-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a long existing bug in the PySide build system that had a weird effect on macOS: * building PySide with Limited API and testing worked fine. * building PySide without Limited API worked fine too, but gave crashes when testing pysidetest. It appears that macos duplicates a static Python build, one of them uninitialized. After a month with no solution, a Linux build had problems, too, but complained already in the build. It was solved by passing `--enable-shared` to the Python build. This `--enable-shared` solved the macOS problem as well. Further analysis by Alexandru led to the suggestion that the Python libraries in pysidetest are not needed at all, and by removing them, the whole problem went away. This is now confirmed on other platforms as well. The option `--enable-shared` is no longer needed in any configuration. The problem was caused by 22e359bc19daf19033332aa2d7bb9726c7f4be14 from 2020-02-18. Task-number: PYSIDE-1735 Change-Id: I08b8628e75ef9c664be30200ae295cd2e6004370 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 114de72f1f63999a08f698a0972cce3a7f33a372) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix build error on Windows caused by macro copysign in CPythonFriedemann Kleint2022-08-011-0/+6
| | | | | | | | | | | Remove the define, fixing: qjsprimitivevalue.h(805): error C2039: '_copysign': is not a member of 'std' Change-Id: Iad9b467decc81a3eed534f49d26e30237eef23de Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 9aa0225352cada0c7957f4310b9be9d3d0922f56) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Shiboken: use the Python 3.11 buffer interface for Limited APIChristian Tismer2022-07-193-7/+7
| | | | | | | | | | | | | | | | | | | | | Because the stable API includes now the bufferprocs, we add a warning to remove the special handling when the lowest version is 3.11 . Unfortunately, I see no other way to use the new buffer interface, because things must work with every Python runtime. But that also does no harm, since this is now in the stable API. And of course, we can remove the boring version check :) Also, an old shiboken error workaround could be removed. XXX No, the shiboken error still exists in RHEL Change-Id: I2fae8cabb2cf116a7365b9cf45618da5238c2ea7 Task-number: PYSIDE-1960 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit a3c1a50eb1577caf3715c47b00ca26312d235a80) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Increase compatibility by allowing defaults etc., refinementChristian Tismer2022-07-193-20/+38
| | | | | | | | | | | | | | | | | | | The change has been tested with Python 3.6 to 3.11.0b4 . The enum_310.py warning triggers now only when on 3.11.0 final. The enumFlagInfo empty check was simplified by removing empty structures. The code introspection was optimized version-specific for Python 3.9 and Python 3.11 where optimizations were introduced. Task-number: PYSIDE-1735 Change-Id: Ic5e25fd4edae0ab92aad291a8067c9dcccd5acb8 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 615d6a820137b31f03295e884f58cd46aadf5032) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Simplify the test-cases with the new forgiveness modeChristian Tismer2022-07-147-55/+34
| | | | | | | | | | | | | | | | | | | | | | | With the new forgiveness, all the "normal" uses of old enums are working with the new enums, too. What does not work are range violations and inheritance of enums from other enums. Also, the implemented trick does not work for enums which do not belong to a class. The induced bugs are easy to find, because they should normally break at import time. [ChangeLog][PySide6] The new forgiveness mode of Python enums allows to use old enum code, most of the time. Much changed test code was reverted. Change-Id: I9c081831309f1b2358fe86e6107b0f4d78fd48cf Task-number: PYSIDE-1735 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 0a3f69537d5901d626077c0a8e6486f33ebf88af) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: Increase compatibility by allowing defaults and old flag namesChristian Tismer2022-07-147-8/+339
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch supports to write Qt.Alignment() instead of Qt.AlignmentFlag(0) Also supported is Qt.AlignmentFlag() which is mapped to Qt.AlignmentFlag(0) This trickery was quite involved since the Python opcodes needed to be analyzed if we have a parameterless call. Only in that case, we insert a partial object which supplies the missing value=0 default. Changing the implementation of PyEnum was not desired because this is highly complicated, not portable and even not possible. The change has been tested with Python 3.6 to 3.11.0b3 . [ChangeLog][shiboken6] The new Python enums are made as compatible to the old ones as possible. It is again allowed to use Qt.Alignment() instead of Qt.AlignmentFlag(0), and a default of 0 is always allowed. Change-Id: If6a93f8210ff6cae4e38251420e1ad5fffbe42cb Task-number: PYSIDE-1735 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit f92b7dcac9537fb091dc15d3ee218f1984d8abef) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* PyEnum: make forgiving duplicates work with Python 3.11Christian Tismer2022-07-144-13/+20
| | | | | | | | | | | | | | | | | | | | There was a silent change in PyEnums that turns Enum attributes into properties. This does not harm the Python interface but needed some change in the duplication emulation. Furthermore, new internal enums are created with an underscore name. The meta class was changed from EnumMeta to EnumType. [ChangeLog][shiboken6] The new Python Enums are now compatible with Python 3.11 Change-Id: I3b1ab63dc5eed15a75ebd0f42dddf4001f640c00 Task-number: PYSIDE-1735 Fixes: PYSIDE-1960 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit da2cf031521815a9559ca784beadb70c7a2852d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Shiboken: Fix the oldest shiboken bug ever which shows up on Python 3.11Christian Tismer2022-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | b7df2f1c0 "Fix signal initializer.", 18. May 2010 at 00:55 There was a `PySequence_Check` in the evaluation of some signature function parameter processing, which should have been `PyTuple_Check`. Since the new PyEnums are also sequences, the new optimization in Python 3.11 changed the parameter handling in a correct way and replaced the argument tuple by a direct single argument of an enum type. And that is also a sequence ... There are probably still dormant issues like this in the codebase which gives reason to submit a task that checks all Python interface functions for correctness. Change-Id: I45996a0458c3e60795d2eb802eb98f7dd3678d92 Task-number: PYSIDE-1735 Task-number: PYSIDE-1987 Fixes: PYSIDE-1988 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> (cherry picked from commit 2720e01f21f3771cb755ef183b8160f691bdb575) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix signal ↵Friedemann Kleint2022-07-081-0/+7
| | | | | | | | | | | | QAbstractItemModel::layoutAboutToBeChanged(QList<QPersistentModelIndex>) Add a meta type registration for QList<QPersistentModelIndex>. Task-number: PYSIDE-1978 Change-Id: I579926877c69a624dc709b3c0534a963b04f6901 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 4f9c457f28dde6423666e8227c8904e4e84ee6e1) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>