aboutsummaryrefslogtreecommitdiffstats
path: root/sources
Commit message (Collapse)AuthorAgeFilesLines
* Fix crash in QCustom3DVolume::setTextureData()Friedemann Kleint2021-05-132-1/+12
| | | | | | | | | | | | | Similar to 3a18da91353a71e801658329c55b170c18bcd824, pass an allocated list to the function. [ChangeLog][PySide6] A crash in QCustom3DVolume::setTextureData() has been fixed. Pick-to: 6.1 5.15 Fixes: PYSIDE-1362 Change-Id: I7dddaf7be33b84b89d66378ec61f6a065f6d71be Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix crashes when using the QImage(uchar *) data constructorsFriedemann Kleint2021-05-123-2/+33
| | | | | | | | | | | | | | | | | The constructors expect a range of memory that remains valid through the lifetime of the image and may also modify it. Crashes occurred since apparently the Py_Buffer was released before it. To fix this, add a new buffer helper, copyData() that makes a copy of the data and pass that along with std::free() as cleanup function. Pick-to: 6.1 5.15 Fixes: PYSIDE-1563 Change-Id: Idb09eadea658f02968f75c6bdfc6cc3f467111d5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* shiboken6: Add a debug operator for Py_BufferFriedemann Kleint2021-05-122-0/+24
| | | | | | | Pick-to: 6.1 Task-number: PYSIDE-1563 Change-Id: I9ad443b9dcb50dfac2f3b7a3c8bea83faefa73de Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix designer plugin for macOSCristián Maureira-Fredes2021-05-111-3/+20
| | | | | | | | | Adding the site-packages path for standalone builds, similar to the issue we had for Windows and 3.8 Pick-to: 6.1 6.1.0 Change-Id: Iff4f2c7504d579ca7f00df1c9e07f62a9dd1f1e3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide6: Use the Python version the plugin is running underFriedemann Kleint2021-05-112-2/+14
| | | | | | | | Pick-to: 6.1 6.1.0 Task-number: PYSIDE-1455 Change-Id: Iba9429d2c42f471661b250829aaf124a4b8b72b2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6: Add option to use global headersFriedemann Kleint2021-05-107-5/+42
| | | | | | | | | | | | | shiboken6 historically expected a global header consisting of #include directives for the desired headers which was excluded from the generated code. Make it possible to use class headers directly with a command line option. Pick-to: 6.1 6.1.0 Task-number: PYSIDE-1338 Change-Id: I4543be888136736deb2612abc27dfc04e177e469 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* signature: Add UINT64_MAXFriedemann Kleint2021-05-101-0/+1
| | | | | | | | | Fix warning RuntimeWarning pyside_type_init:_resolve_value UNRECOGNIZED: 'UINT64_MAX' Pick-to: 6.1 6.1.0 Change-Id: I0b3db76495cd3c3ea680d6e68e22593b94d7f18c Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add some hints for trouble-shooting the Qt Designer pluginFriedemann Kleint2021-05-071-0/+13
| | | | | | | Pick-to: 6.1 6.1.0 Task-number: PYSIDE-1455 Change-Id: I7bf6745801dc4747cb7f24144e197bd3059bd493 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix Designer plugin to load on LinuxFriedemann Kleint2021-05-071-0/+13
| | | | | | | | | | Preload a python library to provide the Python symbols. Pick-to: 6.1 6.1.0 Task-number: PYSIDE-1455 Change-Id: I8d84bd6f3129c500471653b54e415882d5c0bde1 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Tests: Port away from string based signal-slot connectionsFriedemann Kleint2021-05-0616-38/+38
| | | | | | | | | Change the occurrences that do not appear to test string-based connections. Change-Id: I4bc8916ea1326f6258f0ad643408cd2c42690e1e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Turn off numpy support in libpyside by defaultFriedemann Kleint2021-05-052-2/+7
| | | | | | | | | | | | | | Add a configure parameter for it and mark it as experimental. It has been found to: - break cx_freeeze - Cause embedding applications to fail to load with "undefined symbol: PyExc_RecursionError" Pick-to: 6.1 6.1.0 Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Task-number: PYSIDE-1455 Change-Id: I72fa4a3324a37eb996c42b83dce55fe1990b6fc3 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Revert "Ensure Python libs needed by shiboken are not empty"Friedemann Kleint2021-05-051-14/+21
| | | | | | | | | | | This reverts commit e664f7e525129c2ac356edecb2dd1255d93ad00a. It breaks the limited API build by linking to versioned python library. Pick-to: 6.1 6.1.0 Change-Id: I14d7f7fa306f4f3bccebd4aa2e495daaca84b481 Reviewed-by: Christian Tismer <tismer@stackless.com>
* tests: use exec() instead of exec_()Cristian Maureira-Fredes2021-05-0486-108/+108
| | | | | | Change-Id: I0868f70d7dfeafa7762296da5aa6efc2f32fcb5e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Enable the exec() functionsCristian Maureira-Fredes2021-05-0410-20/+355
| | | | | | | | | | | With Qt6, PySide dropped support for Python 2.7, thus it does not make sense to keep our exec_() renaming inplace. This patch will enable the exec() functions, and adds a deprecation note for exec_(), which will enable us to safely remove it in the future. Change-Id: I7375e10632e7ab534ca264304a5a65f380b9b1bb Reviewed-by: Christian Tismer <tismer@stackless.com>
* __feature__: Ensure that features are not affected by other importsChristian Tismer2021-05-032-7/+7
| | | | | | | | | | | Imports should not touch the feature dict unless they are feature imports. This was a small error in the import logic. Change-Id: I16045fffb4b770861ff2efba674667894e0798e5 Fixes: PYSIDE-1548 Pick-to: 5.15 Pick-to: 6.0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Property: provide some hopefully exact documentationChristian Tismer2021-04-301-3/+70
| | | | | | | Task-number: PYSIDE-1513 Pick-to: 5.15 Change-Id: I5817869aaf495f4005c4fda92d15fceafb15600a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Tests: Fix some space-related flake8 warningsFriedemann Kleint2021-04-29447-583/+1540
| | | | | Change-Id: I9b0ad08839bf1246620c557ec304dfa90882907b Reviewed-by: Christian Tismer <tismer@stackless.com>
* doc: snippets_translate make quiet mode by defaultCristian Maureira-Fredes2021-04-281-4/+1
| | | | | | | | | | | | | | | | | Without being 'quiet' the script was generating output to the stdout and stderr, which was triggering the cmake instruction to make the build fail This change makes the quiet mode by default, the old output that summarize each snippet file can be obtained by using the '--verbose' option. A new option called '--debug' was introduced to get even more output related to each translation happening per file. Pick-to: 6.0.4 Change-Id: I7fce09f0b60e626c957efc4fe24948e0eaf3db74 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Tests: Use new form of super()Friedemann Kleint2021-04-2882-112/+112
| | | | | Change-Id: Id0a6c5e67f53623cc6d41ccc377218479931ee65 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add context management for QSignalBlockerFriedemann Kleint2021-04-283-1/+17
| | | | | | | Add __enter__/__exit__ modeled after QReadLocker. Change-Id: I6e8f93adf4e957bd20179c902aa429fb88f2537b Reviewed-by: Christian Tismer <tismer@stackless.com>
* Refactor class DocumentationFriedemann Kleint2021-04-287-62/+88
| | | | | | | | | | | | | | Replace the map by two fields of string type for detailed/brief and add accessors. Make the constructor explicit and fix all occurrences of implicit conversions. Change QtDocGenerator::writeFormattedText() to take a QString with the format instead of an instance of Documentation and add convencience functions writeFormattedBriefText() and writeFormattedDetailedText(). Change-Id: I4efaecc8cffeff16873fa3926c3f3b731b96bc5b Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6/Windows: Fix encoding of QCoreApplication.arguments()Friedemann Kleint2021-04-273-0/+78
| | | | | | | | | Encode in the console's code page via wchar_t. Fixes: PYSIDE-1425 Change-Id: Ideae87361409a61919ea6bf8d5594609dceaa1cb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Tests: Use per-class importsFriedemann Kleint2021-04-2760-340/+396
| | | | | Change-Id: I6dac1f54152fecab7af6831bc3c813a016408aae Reviewed-by: Christian Tismer <tismer@stackless.com>
* Test bug_686.py: Fix warning about destroying a locked QReadWriteLockFriedemann Kleint2021-04-271-0/+2
| | | | | | | | | | Unlock in the threads, fixing warnings: QReadWriteLock: destroying locked QReadWriteLock QReadWriteLock: destroying locked QReadWriteLock Pick-to: 6.0 5.15 Change-Id: I484b7947fdcf241fca069c02ecd9e0ff7c20c151 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Tests: Fix star importsFriedemann Kleint2021-04-2773-118/+169
| | | | | Change-Id: If4e1d64af662b1802f2f748121bda5488a82235a Reviewed-by: Christian Tismer <tismer@stackless.com>
* UiTools: Remove dependency on QtXmlFriedemann Kleint2021-04-272-2/+0
| | | | | | | | The module only uses QXmlStreamReader/Writer. Change-Id: Icb58251dc800cc7c3cb8827b431ded1744baf639 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* PySide6: Fix the test HTTP serverFriedemann Kleint2021-04-271-1/+1
| | | | | | | | | | | | | | Change the test data to be a bytearray, fixing: File "sources/pyside6/tests/util/httpd.py", line 47, in do_GET self.wfile.write(TestHandler.DATA) File "/usr/lib/python3.8/socketserver.py", line 799, in write self._sock.sendall(b) TypeError: a bytes-like object is required, not 'str' Pick-to: 6.0 Change-Id: I5a0b5d0f76c4245fc7209d17a6c7f1e664cbc04f Reviewed-by: Christian Tismer <tismer@stackless.com>
* doc: fatal error when snippet conversion failsCristian Maureira-Fredes2021-04-261-1/+5
| | | | | | | | | | | | | | | | | | | | | | When the snippets_translate tool fails, the build process continues normally, falling back to use the original C++ snippets. This problem can be dangerous, since we will not notice if something is wrong without checking the full log. This patch make the build process to fail when the tool doesn't exit normally. For builds where the documentation generation is skipped, this change will have no effect. Complementary to this, the patch includes a new Python file to determine if the C++ include have an import counterpart in Python. Fixes: PYSIDE-1527 Pick-to: 6.0.4 Change-Id: I725b623f60dbc540a6e7834502300c39cd22b5a3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Fix injecting documentation for added functions with parameter namesFriedemann Kleint2021-04-232-4/+28
| | | | | | | | Strip the parameter names from the modification signature so that it matches the C++ type signature. Change-Id: I8ca4e124e3c579d222d52f949f0d01b44eae92bf Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add documentation for the numpy overloads of functions taking point listsFriedemann Kleint2021-04-232-3/+15
| | | | | | | | | Amends 6389561fd75e80c69d7c83f6a87d988450a2e569. Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: I0f424dccf4151d53d64f3aef923a32d3c3bf2641 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Fix XML errors when injecting target format (RST) documentationFriedemann Kleint2021-04-221-1/+1
| | | | | | | | | | In writeInjectDocumentation(), pass class Documentation (including format) instead of just the string to writeFormattedText() to prevent it from running through XMLToSphinx. Pick-to: 6.0 5.15 Change-Id: I6116552fc3ea8f7ddc1cc07d51370f868de97bb3 Reviewed-by: Christian Tismer <tismer@stackless.com>
* cmake: add dependencies to rebuild libshiboken embedded files, addendumChristian Tismer2021-04-211-0/+1
| | | | | | | | | | | There was one file forgotten when adding dependencies. This was recognized when back-porting the original change to 5.15 . Task-number: PYSIDE-1536 Change-Id: I5c396e8de47c716acb9e301d60930296bd530a64 Pick-to: 6.0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add a numpy overload for some functions taking lists of QPointFFriedemann Kleint2021-04-215-1/+47
| | | | | | | | | | | | | | | | | | | | Add functions taking x,y data in the form of numpy-vectors (as common for matplotlib, etc) for: QPainter::drawPoints() QXYSeries::append(), QXYSeries::replace() They are added as separate functions instead of overloads since there is a restriction in that numpy arrays cause an error: FIXME Subscripted generics cannot be used with class and instance checks when passed to other type check macros. Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: Ie1521ce19127bb0641fbdb4f7320a8707682724e Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* libpyside: Add helpers for numpyFriedemann Kleint2021-04-214-0/+289
| | | | | | | | | | | | Add utility functions for converting numpy vectors containing x,y data to list of QPoint, QPointF, respectively along with helpers for type checking and initialization. Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: Idde5084434a36ec31eb87bf65dec3d637cff728b Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Build system: Make numpy centrally availableFriedemann Kleint2021-04-211-22/+6
| | | | | | | | | | | In order to be able to use numpy in PySide6 modules besides libshiboken, move the numpy detection into the build scripts and pass it as a CMake variable. Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: Ib30fdbab83904878286b7eaae1674ffba0f2febd Reviewed-by: Christian Tismer <tismer@stackless.com>
* signature: Refine the decision heuristics of result tuplesChristian Tismer2021-04-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | Result tuples do not (yet) get information from XML. Instead, they fetch their info solely from the embedded signature strings and information encoded in mapping.py . When a variable is determined as a result variable, it is removed from the arg list and normally appended to the return tuple. It turned out that a special rule is needed: A variable that comes first in the variable list should also be first in the result tuple. This heuristics should be replaced by more introspection. Right now, this suffices as a working fix. Fixes: PYSIDE-1409 Pick-to: 6.0 Pick-to: 5.15 Change-Id: Ib65682439e2f678380e0f58a42a36506d0766ddf Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Refactor handling of the brief class documentationFriedemann Kleint2021-04-204-37/+41
| | | | | | | | | | | | Move the extraction of the brief text from the QtDocGenerator to the QtDocParser and store the brief text in class Documentation, allowing for later extraction. The handling for qdoc and doxygen should then be consistent. Pick-to: 5.15 Change-Id: I86b37ae1c4a92f96508a03f5dbcfb6dc56014382 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Call reserve() when converting listsFriedemann Kleint2021-04-201-0/+6
| | | | | | | | | | | If a size can be obtained, add a call to reserve() to avoid reallocations for large lists. Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: I95a8a6aa02641d9f174dbc3b63740a05d1d95a45 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* painter_test.py: Silence warnings about Painter being activeFriedemann Kleint2021-04-191-5/+14
| | | | | | | | Add QGuiApplication and let the painter paint on image, fixing: QPainter::setBrush: Painter not active Change-Id: I9f381e5b61c1798edaeb998be73f763aa4f2aff5 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PyPy-compat: Avoid the __builtins__ quirk and import builtins, insteadChristian Tismer2021-04-191-3/+4
| | | | | | | | | | | | | The use of __builtins__ is an old wart of Python. In some contexts this is a dict, in others it is a module. PyPy treats it always as a module. Instead of using the implicitly existing __builtins__ dict, we now import the builtins module which never fails. Task-number: PYSIDE-535 Change-Id: I71d14a69051b177273be2ce542694221bf61add2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* doc: update cx_Freeze urlElisabeth Ortega2021-04-182-2/+2
| | | | | | Pick-to: 6.0 Change-Id: I9c1cb964e1b9a05f9940382d58ecdf820865d532 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* doc: use sphinx panels in shiboken docsCristian Maureira-Fredes2021-04-182-2/+71
| | | | | | | | | | Replacing the old raw HTML for online docs. The HTML version of the menu will remain for qthelp. Pick-to: 6.0 Task-number: PYSIDE-1112 Change-Id: I335b25c561ab9d45fd041d24ec607b8d603612c1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* signature: Support numpy PyArrayObjectFriedemann Kleint2021-04-161-0/+1
| | | | | | | Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: If83d14ef228a137012c73414e5b6e5e0deb7ffbc Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6/typesystem: Replace remaining usages of QVector by QListFriedemann Kleint2021-04-152-14/+14
| | | | | | Pick-to: 6.0 Change-Id: I1c9fe1006cb936c88c860482ba93d0a68554a350 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Enable adding functions taking a numpy PyArrayObjectFriedemann Kleint2021-04-152-0/+6
| | | | | | | | | Add the correct check function for a numpy PyArrayObject. Task-number: PYSIDE-1540 Task-number: PYSIDE-1503 Change-Id: If7b25808edb65553fc0ee54ddf1532fe2d3c2272 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Fix performance of QPainter::drawPoints(QPolygon)Friedemann Kleint2021-04-131-2/+7
| | | | | | | | | | | Reorder the overloads so that the QPolygon overload is checked first before the costly sequence type check of the QPoint list. Speeds up the example from 1800ms to 80ms. Fixes: PYSIDE-1540 Pick-to: 6.0 5.15 Change-Id: I108b0e98c82540703ee80345026ecdc3b55dfd4e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Prevent crashes when registering static fieldsFriedemann Kleint2021-04-134-13/+51
| | | | | | | | | | | | | | | Registering static fields invokes converters, which can cause crashes for uninitialized types (see also 2ac1870053370e017567ae53e62cd1155a01c88f). To solve this problem, move the static field initialization to the end of the module initialization function to ensure all converters are available. Pick-to: 5.15 6.0 Fixes: PYSIDE-1529 Change-Id: If40c6faf049077db8afcdee2069f4441c21beaa4 Reviewed-by: Renato Araujo Oliveira Filho <renato.araujo@kdab.com> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Use f-strings in testsFriedemann Kleint2021-04-1313-22/+22
| | | | | Change-Id: I52f92326fdd903078cce5b6408d96d742bfa42b8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add std::pair as a container in CoreCristian Maureira-Fredes2021-04-131-0/+10
| | | | | | | | | | | Since Qt6's QPair uses it underneath, we require to have a declaration so we are able to transform from and to Python. Fixes: PYSIDE-1544 Pick-to: 6.0 Change-Id: I9cc753cbbe0b352382996e896c00faff9bc0f819 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Join Modification into FunctionModificationFriedemann Kleint2021-04-134-121/+83
| | | | | | | | This completes b69d8899b1c592aa9a6cdfa43da3137af3fa16de, separating the modification classes. Change-Id: I7a8436facbce8a4ef8872b3867b21d62ae07fab7 Reviewed-by: Christian Tismer <tismer@stackless.com>