aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* libpysideqml: Fix MSVC lossy integer conversion warning in QML error handlingFriedemann Kleint2024-09-101-4/+6
| | | | | | | | | | Returning the qint64 result of the QV4::ExecutionEngine::throw...() functions (usually 0) as int causes a lossy conversion warning. It is not clear what the original intent of the code was; return -1 instead to terminate processing in qt_metacall(), from which it is used. Change-Id: I3a4f7f38ae6f2b36de47f7d14f6c12254f85147d Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* pyside6-project: Fix lupdate handling with subdirectoriesFriedemann Kleint2024-09-101-2/+3
| | | | | | | | | | Pass paths relative to the project directory instead of the file name to lupdate (to keep the command line short). Fixes: PYSIDE-2861 Pick-to: 6.7 6.5 Change-Id: Iebdc5e9e6e5c50952b6db4425a68179045cbf9fc Reviewed-by: Christian Tismer <tismer@stackless.com>
* type hints: Fix some more exotic problemsChristian Tismer2024-09-103-2/+7
| | | | | | | | | | | | | | | | | * QtStateMachine had the wrong return type in __init__ since a very long time (2010). * __dir__ has always the wrong annotation. Correction is needed because it inherits __dir__ from object. * the comment "#type:" is now reserved for mypy Errors before: 350 Errors after: 333 Task-number: PYSIDE-2846 Change-Id: I26c4a931ec9b612f15f173e559d0306dc36b3c32 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* type hints: Fix some systematic problems part 3Christian Tismer2024-09-091-1/+13
| | | | | | | | | | | | | | | This is not a real fix, but a suppression of a mypy error. When in @overload chains are combinations of normal and static methods, mypy falsely reports a "misc" error. We identify those cases and suppress the wrong error. Errors before: 397 Errors after: 350 Task-number: PYSIDE-2846 Change-Id: If1a5196f2ab8f9970e6f42cf1507684235748ce5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Fix potential memory corruption using protected enum surrogatesFriedemann Kleint2024-09-091-2/+4
| | | | | | | | | | | Use the underlying type of the protected enums. Complements 69028fc8d04ec566b4565f785d6e6897c2c67c5b . Task-number: PYSIDE-1735 Change-Id: Id9f4b08262ae7ee597cd815ce87a939ab6887d42 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Add changelog 6.7.3Friedemann Kleint2024-09-091-0/+73
| | | | | | Pick-to: 6.7 Change-Id: I567cce11f020667a28f0979eeed675cb17d40d8e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* size bench: Automate the Measurement of Size ImprovementsChristian Tismer2024-09-091-0/+151
| | | | | | | | | This script makes it easy to measure the size reduction on all three platforms. Change-Id: I54a9cce6fd18ef58421445c2eeb688bd97eca956 Task-number: PYSIDE-2701 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QtHttpServer: Fix exampleFriedemann Kleint2024-09-094-11/+18
| | | | | | | | | | Rename the example, adapt to 6.8 and add a pyproject file. Make it clear that it is a simplified version. Task-number: QTBUG-128113 Task-number: PYSIDE-2620 Change-Id: If6cb578f3f0c7405041404f90e014dcfb3903e03 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* QtHttpServer: Fix build after API review changeFriedemann Kleint2024-09-092-11/+12
| | | | | | | | | | | Adapt to qthttpserver/6acb3ccf221923a19118b3f3b15ffbebb3f33d4c. The example will be fixed in a follow-up change. Task-number: QTBUG-128113 Task-number: PYSIDE-2620 Change-Id: Ic454bcb8a37aa89ef6e9718df6dd8a7135e0b36c Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* QFix compilation of QDirListing helper codeFriedemann Kleint2024-09-091-2/+2
| | | | | | | | | Use a sentinel for end, adapting to qtbase/089263fd4f1db201c98f4200cbb6ecdad8a437c3 . Task-number: PYSIDE-2620 Change-Id: If3f8d745b405e7c4e8d8c8d72ef4c2411b2d703e Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* type hints: Fix some systematic problems part 2Christian Tismer2024-09-062-2/+3
| | | | | | | | | | | | This fix corrects simply the PlaceHolderType to have the fully qualified QObject type. Huge effect: Errors before: 450 Errors after: 397 Task-number: PYSIDE-2846 Change-Id: I342b7ae2ab3a13f89702b9b8ac678225b0ccae45 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Android: Additional libraries for 6.8Shyamnath Premnadh2024-09-061-0/+7
| | | | | | | | | | - Some extra libraries are bundled in Android 6.8 which are dependencies for certain plugins like Multimedia. Task-number: PYSIDE-2620 Task-number: PYSIDE-1612 Change-Id: I4e286e1f6c9a59c7a7cfb73ba094f39d68ee075d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* type hints: Fix some systematic problemsChristian Tismer2024-09-065-92/+92
| | | | | | | | | | | | | | __str__ and __repr__ are simply fixed by returning str instead of PyObject. __reduce__ actually has return type "str | tuple[Any, ...]", but using str here too fits the purpose. Errors before: 533 Errors after: 450 Change-Id: I6dd3527d3f5f3f035e667d0ca3c8f123e94e844f Task-number: PYSIDE-2846 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Deployment: Change the order of set_or_fetch functionShyamnath Premnadh2024-09-051-6/+12
| | | | | | | | | | | | | - The value provided through cli is prioritized over the value in the config file. - Update the docstring for the set_or_fetch function. - Additionally, fix an error on run_qmlimportscanner() where the first argument was passed as a list instead of a tuple. Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I6afb25c8e88f7ee2fb4a88539d2b8b3170dcdd00 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Deployment: Fix formatting when writing back to config fileShyamnath Premnadh2024-09-051-2/+21
| | | | | | | | | | | | | | | | - Configparser does not preserve the formatting of the original file. As a result when writing into the config file, the formatting is lost. In the case of pysidedeploy.spec, the blank lines are lost making the entire config file rather hard to read. - This patch adds a blank line before the comment lines thus retaining the original formatting of the file. Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: Icd1ebe52d364f4dc9197220161ed6daa6ed577a0 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Tooling: Add pyside6-svgtoqml toolShyamnath Premnadh2024-09-056-2/+31
| | | | | | Task-number: PYSIDE-2620 Change-Id: I0627c35162d37a9fa4fdb716235aacd15cdfb698 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide: Add missing QtQml, QtQuick modules for 6.8Shyamnath Premnadh2024-09-051-1/+12
| | | | | | Task-number: PYSIDE-2620 Change-Id: I904d41ccd24e37ec4fbd9d6cd652a9b19c61a0cb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Exclude directories from qmlimportscanner checkShyamnath Premnadh2024-09-052-24/+14
| | | | | | | | | | | | - ac55d94395849a5a4af2883d2dab82982252c92d helps to fix a TODO where we can exclude directories from the qmlimportscanner check directly without moving all the QML files into a temporary directory - Amend b32183d2cd5fbbd1ac6a53827edf5d40428855ff Task-number: PYSIDE-1612 Task-number: PYSIDE-2803 Change-Id: I2524af7154b32730d2d823fda6973b9a2c8a76a3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Adapt tests to 6.8Shyamnath Premnadh2024-09-051-3/+4
| | | | | | | | | | - Some module dependencies of modules like QtQuick. The tests are adapted acccordingly. Task-number: PYSIDE-2620 Task-number: PYSIDE-1612 Change-Id: I89a2906fb756ea8c04e0545adc64be561101632c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Documentation: Adapt paths for 6.8Friedemann Kleint2024-09-056-12/+47
| | | | | | | | | Adapt to qttools/c51980bb0d9658f2ade4de1900d07b08e88cb52d. Task-number: QTBUG-77650 Task-number: PYSIDE-2620 Change-Id: Icc083c9b3d768093f45caa5d7a3c54aec5eb2d4f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add QDirListingFriedemann Kleint2024-09-056-1/+150
| | | | | | | Task-number: PYSIDE-2620 Change-Id: I4e4826c5ab01a36022f43d2aa7d23558e6964a66 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Adapt the graphs examples to 6.8Friedemann Kleint2024-09-0514-582/+482
| | | | | | Task-number: PYSIDE-2620 Change-Id: If99122740848dacff2850549fdd8ff912a100a1b Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Adapt to 6.8Friedemann Kleint2024-09-0533-180/+322
| | | | | | | Task-number: PYSIDE-2620 Task-number: QTBUG-125719 Change-Id: I6efeb1770c9bd7cddc3dbd91ca6294b9fddc9cc9 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Exclude smart pointer tests on macOSFriedemann Kleint2024-09-051-0/+5
| | | | | | | Task-number: PYSIDE-2854 Task-number: PYSIDE-2620 Change-Id: Iabf48c457396710103b19b6381c37989bbf0de0a Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* CI: Always use the default libclangSimo Fält2024-09-052-20/+5
| | | | | | | | | Instead of using libclang specific for Qt for Python, use the one that is provisioned for qdoc. Task-number: PYSIDE-2620 Change-Id: Ib7f83ebb02c39f328f7161d0c3d996effbbd37c0 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix potential memory corruption in enum/flags conversion codeFriedemann Kleint2024-09-035-19/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | The enum conversion code used a reinterpret_cast to int* for the C++ values for enums and flags regardless whether a plain enum or a QFlags<> was used (since it is based on the same Python type). For plain enums, this worked sort-of as long as no larger underlying type was specified. For flags, this worked by coincidence since QFlags has an int as first field, but may break as soon as QFlags is changed to accommodate larger enums. To fix this, split the converters for flags and enums. Add a separate flagsConverter field to SbkEnumTypePrivate and use that for flags. For plain enums, use a variable of std::underlying_type for the conversion. Task-number: PYSIDE-1735 Task-number: QTBUG-111926 Change-Id: Iae2e88da1de7299ab4d461e9802fa81553ed3dbc Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Refactor ShibokenGenerator::converterObject()Friedemann Kleint2024-09-031-10/+20
| | | | | | | | | | | Use string literals instead of placeholder formatting. Fix the warning messages and use qCWarning(). Use braces for multiline-ifs. Introduce a helper functions for enums which will be used in a follow-up change. Pick-to: 6.7 Task-number: PYSIDE-1735 Change-Id: Ie3ad081bc615040dd67ce79cadc2bcaa115bf6b0 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Shorten long names of enum converter functionsFriedemann Kleint2024-09-031-6/+7
| | | | | | | | | | Use "Enum" for the Python type instead of the qualified C++ type which was confusing. Task-number: PYSIDE-1735 Pick-to: 6.7 Change-Id: I5241c46f9d62aaa19a887d3ef2524efba80b4eba Reviewed-by: Christian Tismer <tismer@stackless.com>
* libshiboken: Avoid string allocations in Shiboken::Object::keepReference()Friedemann Kleint2024-09-031-3/+5
| | | | | | Pick-to: 6.7 Change-Id: Ib9ced7465a6a6a4cc65f243807d807b0a8fbaa91 Reviewed-by: Christian Tismer <tismer@stackless.com>
* build scripts: Always record the latest build, whether tested or notChristian Tismer2024-09-031-12/+12
| | | | | | Task-number: PYSIDE-2701 Change-Id: I7c02c5e67ad847a86733b5086a3dbd0cf81b91cf Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* CI: Use default libclang on WindowsSimo Fält2024-09-032-1/+3
| | | | | | | | Clang 10 crashed with Qt 6.8 on Windows, use a newer version. Task-number: PYSIDE-2620 Change-Id: I157dd6ed1c19034805f19c9879814dfc08037484 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Restructure documentation on modifying functionsFriedemann Kleint2024-09-034-134/+140
| | | | | | | | | | | Fold typesystem_modify_function.rst, which had little content, into typesystem_arguments.rst and group the modifications with sub-headings. Fix wording and remove unimplemented attributes. Pick-to: 6.7 Task-number: PYSIDE-1112 Change-Id: I6dff6320e11589d1f61d1ebac7cc36bf7217fdf4 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Desktop Deployment: Unify API design of Config classShyamnath Premnadh2024-09-028-155/+167
| | | | | | | | | | | | | | - Implements a comment suggestion from 11064d4dcd688db1d54d7273ad700761fabe3f50 - _find_and_set_** methods renamed to _find_** methods. They now return the required property. - Property setters now update the value in the config class as well. This also aligns with the design of certain other properties. - Adjust tests. Task-number: PYSIDE-1612 Pick-to: 6.7 Change-Id: I135d0a64928381a863cbf7235240efc45421324a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Upgrade Nuitka to version 2.4.8Shyamnath Premnadh2024-08-303-4/+4
| | | | | | | Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I001f0f446d41330e1ef0a798c82297a0e7c47021 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* doc: improve a bit the gettingstarted pageCristián Maureira-Fredes2024-08-285-31/+76
| | | | | | | | | | | | | | | Add explanation of Qt Widgets and Qt Quick, remove outdated information, and move the notes around where they make more sense. Add a banner for both technologies, and adding a screenshot of the Quick example. At the end, add a section to point the readers to the Examples and Tutorials sections. Change-Id: Ie3b1856b7150a83633f9747a22057d902fb44b48 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* type hints: Prepare type checking via mypyChristian Tismer2024-08-271-11/+33
| | | | | | | | | | | | | | | | Before MyPy can do real checks, we need to remove all errors, first. There are ambiguities in naming by the typing module. The inspect.Signature function explicitly throws the prefix "typing." away. We create a replacement function that changes only that part to keep the prefix. Errors base: 601 Errors prep: 533 Change-Id: I2c46ed6fb81c30558c61f3f7686c83dbbbbffbb2 Task-number: PYSIDE-2846 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* type hints: Improve the helper functions by using class methodsChristian Tismer2024-08-271-64/+45
| | | | | | Task-number: PYSIDE-2846 Change-Id: I18864676134898c731768c0a6291f189e9cea4d4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Documentation: Sphinx reference for markdown examplesShyamnath Premnadh2024-08-271-1/+9
| | | | | | | | | - Amends 1d1274a57f65b5d16e0d007cc3062be1dd4146a4 to also consider markdown files. Task-number: PYSIDE-2837 Change-Id: Ie4d64c429221c252602df26e6f6f39226b2a63bd Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Error message with QtSqlShyamnath Premnadh2024-08-261-0/+10
| | | | | | | | | | | | | | | | | | | - The Qt Sql driver has a hard dependency on certain external libraries on macOS. macdeployqt solves by patching the Qt Sql driver by changing its RPATH and bundling the external library. This is not possible with pyside6-deploy and should be ideally done via Nuitka. - Until this is solved by Nuitka, we raise an error message that informs the user that deployment on macOS is not possible when QtSql is used. - Corresponding Nuitka issue: https://github.com/Nuitka/Nuitka/issues/3079 Pick-to: 6.7 Task-number: PYSIDE-2835 Change-Id: I35d580ec8bcb9d1d1a4472cc01caee88deb5468e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Deployment: make run_qmlimportscanner() parameters hashableShyamnath Premnadh2024-08-232-2/+3
| | | | | | | | | - Required for @lru_cache decorator Task-number: PYSIDE-1612 Pick-to: 6.7 Change-Id: I5e62ad93f20f7000e2e0ef37617aa756b3272314 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide: Fix QByteArray.fromRawData() signatureShyamnath Premnadh2024-08-231-0/+3
| | | | | | | | | | | | | | | | | | | - For some reason, libclang after parsing the headers ignores the `const` qualifier in the `data` parameter of the `QByteArray::fromRawData()`, making the paramerter `char*`. `char*` maps to `typing.Union[bytes, bytearray, memoryview]` which causes the issue. The expected correct type for the `data` parameter is `str` in Python. - This patch explicitly specifies the pyi-type as `str` thereby overriding the default `char*` type. Note: This patch is a workaround for the issue. The actual issue should be fixed in the libclang, if it is fixable. Fixes: PYSIDE-2831 Pick-to: 6.7 6.5 6.2 Change-Id: Iee3f6a54e1d65e9e4cb0082b7b6b17ba9ac501aa Reviewed-by: Christian Tismer <tismer@stackless.com>
* Update VSCode settingsShyamnath Premnadh2024-08-231-1/+2
| | | | | | | | - add .rst files to be scanned by grammarly for spell checking and grammar checking. Change-Id: I4c231230431183417bf621ba91fc4b298a2cc328 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* libpyside: Reimplement signal connections for Python callables not targeting ↵Friedemann Kleint2024-08-2112-661/+284
| | | | | | | | | | | | | | | | | | | | | | | | | | | | a QMetaMethod The code previously used a instances of class GlobalReceiverV2 inheriting QObject in a hash in SignalManager per slot tracking the list of senders to be able to use standard signal/slot connections in Qt. This was a complicated data structure and had issues with cleanups. This has been replaced by using an invoker object based on QtPrivate::QSlotObjectBase which can be passed to QObjectPrivate::connect(const QObject *, int signal, QtPrivate::QSlotObjectBase *, ...). The connections (identified by ConnectionKey) are now stored in a hash with QMetaObject::Connection as value, which can be used to disconnect using QObject::disconnect(QMetaObject::Connection). Deletion tracking is done by using signal QObject::destroyed(QObject*) which requires adapting some tests checking on the connection count and weak ref notification on receivers as was the case before. [ChangeLog][PySide6] Signal connections for Python callables not targeting a QMetaMethod has be reimplemented to simplify code and prepare for removal of the GIL. Task-number: PYSIDE-2810 Task-number: PYSIDE-2221 Change-Id: Ib55e73d4d7bfe6d7a8b7adc3ce3734eac5789bea Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Python-3.10: Support the new syntax in the generated PYI filesChristian Tismer2024-08-212-7/+33
| | | | | | | | Replace the `Union` and `Optional` expressions by `|`. Task-number: PYSIDE-2786 Change-Id: I075397387458f37a6111d14e64f83245c17c04b8 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Fix hangs when calling QMediaPlayer.setSource() several timesFriedemann Kleint2024-08-211-0/+1
| | | | | | | Pick-to: 6.7 Fixes: PYSIDE-2843 Change-Id: I2e3476605d2818d20159ce945856d24dab26ff86 Reviewed-by: Christian Tismer <tismer@stackless.com>
* example_gallery: Handle examples which have the pyproject file in the "doc" dirFriedemann Kleint2024-08-211-7/+6
| | | | | | | | | | | | | | | Examples like samplebinding, etc. have a CMakeLists.txt and only a dummy pyproject file in the "doc" dir, which caused the zipping to fail. Modify make_zip_archive() to take the complete target path as an argument and remove the move command. Change one level up if the pyproject file is in "doc". Pick-to: 6.7 Change-Id: Ibf6064e6e0e6a4e24e25348d3a4b52d361ae9560 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix Enum properties for Qt DesignerFriedemann Kleint2024-08-203-2/+28
| | | | | | | | | | | Split the Enum check function to have an overload for a PyTypeObject * and add a helper function checking whether an enumeration is registered in the Qt meta type system. If so, use its name for the property type. Fixes: PYSIDE-2840 Change-Id: I8253e28d9020dcda9b23d6ad5ddd4e60cd2086d7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* pyi: improve findChild/findChildren type hintsCristián Maureira-Fredes2024-08-164-5/+32
| | | | | | | | | | | Add a TypeVar that's bound to QObject in order to use it as a generic QObject-based for the returns of both findChild and findChildren. Fixes: PYSIDE-2517 Pick-to: 6.7 6.5 6.2 Change-Id: I165cdc391bd7b57df95247202170d6fa9d2aa824 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Documentation: Remove example anchorsFriedemann Kleint2024-08-1632-68/+26
| | | | | | | The example_gallery tools also adds anchors, use these instead. Change-Id: I488250fae608cf50804c3edfe0ec12d4aa08194a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Docs: Fix sphinx warningsShyamnath Premnadh2024-08-169-27/+49
| | | | | | | - Mostly toctree warnings, missing file paths and indentation issues. Change-Id: I3531f3b7ab3341dd21955ffe73664916b81ecfa2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>