aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* shiboken6: Dump general log on failure in COINFriedemann Kleint2025-06-253-1/+16
| | | | | | | Task-number: PYSIDE-3105 Change-Id: Ie80e05bb4c2adc4585222d06fee18b93f92010ad Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Ece Cinucen <ece.cinucen@qt.io>
* shiboken6: Fix qHash signature of class IncludeFriedemann Kleint2025-06-251-1/+1
| | | | | | | | Pass by const-ref. Pick-to: 6.9 6.8 Change-Id: I529aeb79f2f16bbc0563af6c8cc247f1c03543f4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Android: Fix missing multimedia libsShyamnath Premnadh2025-06-191-1/+1
| | | | | | | | - Regression introduced by 38c0d909ff78f5432d4a99a55974fda35786f868 Pick-to: 6.8 6.9 Change-Id: I172514816a1768c1de4df115c450b0d52afc63dd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove hard-coded Q_OS_ defines from the CMake filesFriedemann Kleint2025-06-189-45/+9
| | | | | | | | | | | | | The hard-coded ENABLE_ and Q_OS_ do not work for cross-compiling. They are in fact a left-over from the pre-clang code parser. Clang is actually able to set the right defines when parsing qsystemdetection.h if the correct target is set. pyside6_global.h then no longer needs to be configured by CMake. Task-number: PYSIDE-3105 Change-Id: I640ab9e254b9ba35d5b7194001f5700911a8d421 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Enable using CMAKE_CXX_COMPILER_ID for --compilerFriedemann Kleint2025-06-182-6/+8
| | | | | | | | Relax the checks and make it non-fatal. Task-number: PYSIDE-3105 Change-Id: Iea3a8d26a2d3fa1de51bdf7a93a433a253ce8560 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Log type system keywords and host platformFriedemann Kleint2025-06-172-2/+9
| | | | | | Pick-to: 6.9 Change-Id: I53a4d8497839c856c03a5daab3e2ce2f6b45c1f8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Document property/enum usage for Qt Widgets Designer custom widgetsFriedemann Kleint2025-06-171-1/+35
| | | | | | Task-number: PYSIDE-2840 Change-Id: I28ca7d163bd560ebb38fb693750e4c3e3b7de621 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Enable using @QEnum/@QFlag-decorated enums as custom widget propertiesFriedemann Kleint2025-06-175-6/+209
| | | | | | | | | | | | Create a dynamic QMetaType for @QEnum-decorated enumerations so that Qt Widgets Designer is able to recognize the properties. [ChangeLog][PySide6] It is now possible to use @QEnum/@QFlag-decorated enumerations as properties of custom widgets in Qt Widgets Designer. Task-number: PYSIDE-2840 Change-Id: I58a16002f89678856b7f33d687cf99f00c6f0cc7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* libshiboken/converters: Introduce additional converter function type for the ↵Friedemann Kleint2025-06-175-14/+40
| | | | | | | | | | | | C++ to Python conversion Some converters need the type. This affects mainly numeration converters and dynamic user-defined converters that invoke the type object. Task-number: PYSIDE-2840 Change-Id: I763359eee0f477e3f76a10f645a185bc94d8809b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Fix platform comparisonFriedemann Kleint2025-06-161-1/+1
| | | | | | | | | Amends f4d844278b5a41f04bbce0669319279cf19a799e. Task-number: PYSIDE-3105 Change-Id: I175d1733013852343b6a346f024d6990a09b5eb5 Reviewed-by: Ece Cinucen <ece.cinucen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Pass CMAKE_SYSTEM_NAME as platform argument to shiboken6Friedemann Kleint2025-06-132-1/+3
| | | | | | Task-number: PYSIDE-3105 Change-Id: I2d1adb0b7b819caab09e72e382a9dc0f964fa14d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Extend the platforms enumerationFriedemann Kleint2025-06-137-30/+46
| | | | | | | | | | | | | | | - Add a distinct value for Linux. - Add iOS/Android. - Relax the parsing of command line values so that CMAKE_SYSTEM_NAME can be passed to the --platform option. - Warn only if unknown names are encountered on the command line. - Define the type system keywords depending on it instead of hardcoding to the host value. Task-number: PYSIDE-3105 Change-Id: I32650181fb4bd43223e351610f4fc8a0a3e0100b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* doc: Add SECURITY.md for Github mirrorCristián Maureira-Fredes2025-06-131-0/+12
| | | | | | | Fixes: PYSIDE-3119 Pick-to: 6.9 6.8 6.5 6.2 Change-Id: Iebcd43c220978bf9130ba2a6861cba6795e3fd8a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove unused includesFriedemann Kleint2025-06-131-4/+0
| | | | | | Pick-to: 6.9 Change-Id: I0472704d333ca656ba9ff3d84dac43b7e7de5e2a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Fix handling of config keys for class QProcessFriedemann Kleint2025-06-122-6/+20
| | | | | | | | | | | | | | | The config keys were added to the type system files for Web Assembly in the assumption that its build system would handle it. For CMake, the handling needs to be added. Also add key to nested class UnixProcessParameters. Complements 4a3f337d0154105f924e2e076d8f2cb63b3aca8e. Task-number: PYSIDE-2352 Task-number: PYSIDE-962 Change-Id: Ib037fc24756df9a63d8df43caa5d6ecd8bc8473c Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Ece Cinucen <ece.cinucen@qt.io>
* Fix wrong forward declaration of AutoDecRefFriedemann Kleint2025-06-122-2/+2
| | | | | | | | It is actually a struct. Pick-to: 6.9 6.8 Change-Id: I06b5641c068125c418026ed82708b9704431206a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide: Move CMake config packages into wheelsShyamnath Premnadh2025-06-114-3/+47
| | | | | | | | - This becomes useful for QtBridges to access cmake variables related to PySide6 and shibken6 installation. Change-Id: I260282b56af0709c49c3e30c16aa950ce5c1653f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Add a test for automatic conversion from T to std::optional<T>Friedemann Kleint2025-06-062-0/+22
| | | | | | Task-number: PYSIDE-3107 Change-Id: I63f182eebba887780bfa882aebc653c60e07d9ad Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Generalize the target-to-native container conversion for smart ↵Friedemann Kleint2025-06-064-17/+33
| | | | | | | | | | | | pointers - Introduce a helper processTypeCheckCodeSnip() - Observe the "check" attribute which was previously ignored - Replace variable %OUTTYPE_[n] in the type check, too Task-number: PYSIDE-3107 Change-Id: I6b96529831d63c5423d218166932ee7d9ba69405 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Split TargetToNativeConversion::sourceTypeCheck()Friedemann Kleint2025-06-063-8/+13
| | | | | | | | | | | | | Make sourceTypeCheck() act like a normal property getter and add sourceTypeCheckFallback() for cases in which the fallback logic is desired. Move additional special cases from CppGenerator into sourceTypeCheckFallback(). Task-number: PYSIDE-3107 Change-Id: Iaebcac46a30302318bbaede373cd9dd4f50ac357 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix QVariant conversion of Python classes inheriting QGraphicsProxyObjectFriedemann Kleint2025-06-062-2/+14
| | | | | | | | | | | | | | The check needs to be more fine-grained since Shiboken::ObjectType::getOriginalName() returns "QGraphicsObject*" for Python-derived classes, also. Amends f81fb9ee887d088e8988d743bb7cac4f781fff82. Pick-to: 6.9 Fixes: PYSIDE-3115 Task-number: PYSIDE-3069 Change-Id: I4589ec85075e712ed1c66acfce257ff41d965ec4 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* build: re-add text attribute for licenseCristián Maureira-Fredes2025-06-051-1/+1
| | | | | | | | | | | | | | | | | | Amends 2994629b717fd52d616db139017e25535b357309 To keep supporting the old 'setup.py install' approach, this was a mistake, because we still use in the pyproject.toml file the line: license = {text="LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"} The reason this was not detected by the CI, is bacause we don't use the deprecated approach of 'setup.py install' but rahter the 'setup.py build' + create_wheels + pip install Change-Id: I5c67cc0073982355c8f95a76d581580edd023f9e Pick-to: 6.9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* build: setuptools, packaging and buildCristián Maureira-Fredes2025-06-044-9/+9
| | | | | | | | | | | | | By updating the build dependencies, a few things have changed by updating packaging and setuptools: - now the name of the wheel files needs to be lowercase - the generated wheel names now have lower-case for the project name - the license entry on pyproject.toml can now be a direct SPDX - update wheel_tester Pick-to: 6.9 Change-Id: Iefee4adba5d3fee433d02729b0995acb2c3cceed Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Add target-to-native conversion rules for smart pointersFriedemann Kleint2025-06-029-19/+64
| | | | | | | | | | Make it possible to construct for example a std::optional<int> directly from a PyLong, which helps avoiding exposing std::optional<int> as a type. Task-number: PYSIDE-3107 Change-Id: I0e600fa04119ea944ef256da1f06df5f86cc9a50 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Factor out helper writeTemplateCustomConverterRegister()Friedemann Kleint2025-06-022-8/+23
| | | | | | | | | It is now used for containers and will be later reused for smart pointers. Task-number: PYSIDE-3107 Change-Id: I0790c38cbcf8f9f4cb500d252c00d1c9e66deb7b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Extract `libclang_lib_dir` more reliablyCristian Le2025-06-021-22/+3
| | | | | | Change-Id: I207fd29cb0aa40a25828b6b4687a6274b52e8ffa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* type hints: Fix QPropertyAnimation annotationsEce Cinucen2025-06-021-0/+1
| | | | | | | | propertyName annotation fixed on the constructor function. Fixes: PYSIDE-3012 Change-Id: I3915491b658014b02b4859204f43bcc3fc609c3e Reviewed-by: Christian Tismer <tismer@stackless.com>
* Android Deployment: Do not force install packagesShyamnath Premnadh2025-06-023-7/+23
| | | | | | | | | | | | | - pyside6-android-deploy had dependencies that were force installed into the user's development environment. This is not a good practice and can lead to issues with package management. - This is now changed to give a warning requesting the user to install the dependencies manually. Pick-to: 6.8 6.9 Task-number: PYSIDE-1612 Change-Id: Ie7335b1e64d73e7de17e06898d43b99e11389ff1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide Wheels: Add QtVirtualKeyboardQML binariesShyamnath Premnadh2025-05-301-0/+1
| | | | | | Pick-to: 6.9 6.9.1 Change-Id: I8449452aba296fd5d76c3c81e32d63f8ea906b81 Reviewed-by: Simo Fält <simo.falt@qt.io>
* Polish the documentation of variables in code snippetsFriedemann Kleint2025-05-282-17/+21
| | | | | | | | | | Reference the converter variables from the common variables page and brush up the code snippets. Pick-to: 6.9 6.8 Task-number: PYSIDE-3107 Change-Id: I1ef3e82f247a51fc95fa1e0d0f0c777f10eab095 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Add overload for QDomDocument.setContentEce Cinucen2025-05-243-15/+21
| | | | | | | | - Updated type system to add the missing overloaded function with QByteArray and ParseOptions. - Deprecated use of QDomDocument.setContent fixed on QtXml test cases and dombookmarks example. Change-Id: I78b5c2f3be44362c0b871009bcf6c305b3a77798 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* example dombookmarks.py: Fix disconnection warningFriedemann Kleint2025-05-231-6/+5
| | | | | | | | | Use a connection id instead of try-catch Pick-to: 6.9 6.8 Change-Id: Ia76880a32df8fc6e415f056606c0df98fe772257 Reviewed-by: Ece Cinucen <ece.cinucen@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Enable specifying template specializations as primitive typesFriedemann Kleint2025-05-236-0/+52
| | | | | | | | | | | | Add search for the instantation name when resolving types along with a test. [ChangeLog][shiboken6] Template specializations like "std::optional<int>" can now be specified as primitive types with converter code. Change-Id: I20845b21ede1101cb3015de90555b74368f686e9 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix passing QFlags by const-refFriedemann Kleint2025-05-233-19/+34
| | | | | | | | | | | | | | | The type resolution code searched the result of TypeInfo::toString() in the type database, which may contain qualifications like "const Foo &". To fix this, add a function returning the name with instantiations only and use that. As a drive-by, add a convenvience function returning the qualified name as a string and simplify the code accordingly. Pick-to: 6.9 Change-Id: I071e8dc3f65257e300007d53688c442a683813e1 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* type hints: typing.Optional[...] -> typing.Optional[typing.Union[...]]Łukasz Patron2025-05-231-0/+2
| | | | | | | | | | | | Fixes the following error on Python 3.14: TypeError: typing.Optional requires a single type. Got (<class 'PySide6.QtGui.QKeySequence'>, <class 'PySide6.QtCore.QKeyCombination'>, <enum 'StandardKey'. Change-Id: Id1fe45d31cc38a337caa55a86f509c3f88c0b683 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Łukasz Patron <priv.luk@gmail.com>
* pyi_generator.py: Pass all args/kwargs to original formatannotation()Łukasz Patron2025-05-231-2/+2
| | | | | | | | | | | | | | | Python 3.14 changed formatannotation() function signature by adding `*, quote_annotation_strings=True` at the end of it. Since we only care about avoiding `text.removeprefix('typing.')`, let's just pass extra args/kwargs as is to keep compatibility with < 3.14. [1] https://github.com/python/cpython/pull/124669 Change-Id: Ic115ed5cc8766cdf60286e88f6cfa79e263f64c9 Reviewed-by: Łukasz Patron <priv.luk@gmail.com> Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* testing: fix finding tests on new cmake versionsChristian Tismer2025-05-221-4/+6
| | | | | | | | | | | | By chance, cmake was installed by homebrew without any restrictions, and so version 4.0.2 happened to be installed which does no longer use the option "--force-new-ctest-process". Changed the analysis to look for "/bin/ctest" instead. This should work for a long time. Task-number: PYSIDE-2221 Change-Id: Idc16063953ba82d4053cc60a7e0ef11b71b7b571 Pick-to: 6.9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Move some qvariant helper code into libpysideFriedemann Kleint2025-05-227-156/+260
| | | | | | | | | | | | | | | Iron out some issues in the code: - The old code created a fast list from the list passed in but then did not use the fast API (PySequence_Fast_GET_ITEM(), etc) since it does not work with the limited API. Remove it. - For empty lists, an empty QStringList was returned since the helper isStringList() returned true. Change it to return an empty QVariantList. - Add a new function pyListToVariantList() which converts each item using the QVariant converter for use by QGenericItemModel Change-Id: If0b5cdf4055f8d586df56a8c98bc042f4bab6427 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Speed up invocation of overridden functionsFriedemann Kleint2025-05-225-40/+60
| | | | | | | | | | | | | | | | Cache the function found (extracted from the callable) instead of doing lookups and MRO search each time. Use Py_None (unreferenced) to indicate the method is not overridden. Reconstruct the callable from the function. Move the duckpunching check before the cache to avoid reference issues. Achieves a speedup of roughly 3.8->2.6s (33%). Task-number: PYSIDE-2916 Change-Id: I6deec60d14ed7030284e0e02249ea96df49e5740 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Improve message output of compiler supportFriedemann Kleint2025-05-222-13/+27
| | | | | | | | | | | | | | Redirect all messages about homebrew/compiler paths to the new mjb_shiboken.log file to unclutter the build. Change the clang version output message to print the effective target triple obtained from parsing and output to mjb_shiboken.log as well as stderr. Pick-to: 6.9 Task-number: PYSIDE-3105 Change-Id: Ieafcb8d65dc513516a0b11b3da5b650826a41703 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Determine the target platformFriedemann Kleint2025-05-224-0/+52
| | | | | | | | | | | | Store the target triple from the clang options of the command line to be able to set up compiler options for clang parsing accordingly. While parsing, update by the value obtained from clang and the pointer size. Pick-to: 6.9 Task-number: PYSIDE-3105 Change-Id: I33c60e14418b10c3f3cfa1603b29ed2a06b1589a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: fix windows glitch on limited-api=noChristian Tismer2025-05-221-2/+2
| | | | | | | | | | This bug was probably caused by a change to AutoDecref and no complete testing. Observed on Python 3.11 . Task-number: PYSIDE-2221 Pick-to: 6.9 Change-Id: Ied0a2c37cbbd913d539bacef7b9a957c87b5fd3d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove deprecated Qt::TimeSpec usage in QDateTime constructorEce Cinucen2025-05-214-7/+16
| | | | | Change-Id: Iea443b9e541935bb904b6ad9d533909c313a7b81 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6/Bucket test: Use an atomic<bool>Friedemann Kleint2025-05-202-7/+13
| | | | | | Task-number: PYSIDE-2221 Change-Id: I45db5a10308338d446bb2ac888219477fed6e405 Reviewed-by: Christian Tismer <tismer@stackless.com>
* type hints: Bump mypy version and support disable-gilChristian Tismer2025-05-201-3/+1
| | | | | | | | | | | | | | | | There has been extra speedup tried using special compilation options. These do not work with disable-gil because at the moment disable-gil prevents compilation of mypy. It is not possible to specify disable-gil in requirements.txt as a condition. Because version 1.15 is reasonably faster, it is better to remove the mypy[faster-cache] option. Change-Id: I4f846d8ce91d6804d0834d9a1ad819278833644c Task-nunber: PYSIDE-2221 Task-number: PYSIDE-2846 Pick-to: 6.9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Update changes-6.9.1Friedemann Kleint2025-05-191-0/+8
| | | | | | Pick-to: 6.9 Change-Id: Ibc945b27b8bf80e3f07cb893bbaa107830fb40bc Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* type hints: Fix QInputDialog get methodsEce Cinucen2025-05-190-0/+0
| | | | | | | | | QInputDialog.get* methods should accept None as parent Fixes: PYSIDE-3078 Pick-to: 6.8 6.9 Change-Id: I5e6889800040a44649f99e1e7f95ab07e127c550 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix crash retrieving a PyObject type property via QVariant<PyObjectWrapper>Friedemann Kleint2025-05-195-25/+78
| | | | | | | | | | | | | | | | | | | | | The old code registered a Shiboken converter for PyObjectWrapper by pointer conversion. This resulted in the Python to C++ converter falling back to plain pointer passthrough since it only works for SbkObjects. The C++ to Python conversion worked by coincidence for either raw PyObject * pointers used in meta call handling or pointers obtained from calling QVariant<PyObjectWrapper>.data(), but without handling reference counts. To fix this, remove the Python to C++ conversion entirely and do this manually via QVariant. Change the C++ to Python to be by value and use PyObjectWrapper. Fixes: PYSIDE-2193 Pick-to: 6.9 Change-Id: I00898894651f220d7b8fe60608e93233ef3e6493 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* type hints: Fix QInputDialog get methodsEce Cinucen2025-05-190-0/+0
| | | | | | | | | | | QInputDialog.get* methods should accept None as parent Fixes: PYSIDE-3078 Pick-to: 6.8 6.9 Change-Id: I5e6889800040a44649f99e1e7f95ab07e127c550 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* libpyside: Add a debug operator for PyObjectWrapperFriedemann Kleint2025-05-162-1/+26
| | | | | | | | | This useful for debugging QML issues. Task-number: PYSIDE-2193 Pick-to: 6.9 Change-Id: Iecbfb1d9508ac89c8b213a2f2ee8d4f7f1de4fc8 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>