aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* docs: Add information about internal toolsCristián Maureira-Fredes2020-02-261-5/+53
| | | | | Change-Id: I1d814b72359e188ba8263b0cb583ccb43af5e4b4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Re-structure shiboken documentationCristián Maureira-Fredes2020-02-2617-304/+361
| | | | | | Task-number: PYSIDE-1112 Change-Id: Ice3e8efb7b75bd14ee73c20310f722c4e0b07b3b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* qp5_tool: Add option to run "build" onlyFriedemann Kleint2020-02-251-3/+6
| | | | | | | This is useful for mimicking the COIN test environment. Change-Id: I9a4567be171d940d6574c4135fabb2a8721bbd79 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Examples: Adapt to new qApp variableFriedemann Kleint2020-02-2521-23/+23
| | | | | | | | Amends d579912b31d7cfa7b0b216916fbbf3eb632a9d9d. Task-number: PYSIDE-571 Change-Id: Ide49ef2c9f99335b5019daea7d27cd1d86e896a4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* qp5_tool: Output command parameters with quotes for shell if requiredFriedemann Kleint2020-02-251-1/+4
| | | | | Change-Id: I682fb765fc3f69f0ca3c4d6717d415d0bff0517e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix web_engine_custom_scheme.pyFriedemann Kleint2020-02-241-6/+33
| | | | | | | | | | | | | | Introduce a flag to distinguish timeouts from successful loading. Register the scheme properly and set "Path" syntax, fixing the warning: Please register the custom scheme 'testpy' via QWebEngineUrlScheme::registerScheme() before installing the custom scheme handler. Add required initializations of QWebEngine and embed the view into a top level widget, as using a QWebEngineView as a top level on Windows hangs. Change-Id: Id39a6b14606795216994928ad82f60435f4caaca Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Turn qApp into a normal Python variable, finallyChristian Tismer2020-02-2111-236/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After a long odyssey of more or less unpythonic compromizes, the qApp "macro" would finally be moved into a normal variable without surprizes. This was only possible since we removed qApp from QtWidgets and other modules. Otherwise, from PySide2.QtWidgets import * would pull qApp, being the constant "None", into main and shadow the true qApp variable in the builtins. By inserting qApp into the builtins, only, we make sure that this variable is always freshly looked up, without making it change its contents. DONE... + change the singleton code to normal + rename to MakeQAppWrapper + simplify the implementation + fix new bug concerning duplicate applications + check very much for refcounting bugs + review the rest of the implementation and further simplify Note... The Q*Application variable will not be turned back into a GC variable. This is not worth the effort. Fixes: PYSIDE-571 Change-Id: Idbd158c083318e6b0dfe48d62485c68c90e944de Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Pyside2/tests: Split the helper moduleFriedemann Kleint2020-02-20205-373/+535
| | | | | | | | | | The classes of the helper module were defined in the __init__.py file with complicated logic to test for presence of the modules. Split the classes apart and empty the __init__.py file (still required for Python2). Change-Id: I4f4971f9a48e2961233da5585aa0df53bfbb9c7a Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix qtinfo on macOS when XCode is newly installedChristian Tismer2020-02-201-1/+1
| | | | | | | | | | | | | | I happened to try out the "cling" C++ interpreter. That forced me to install XCode. I did not run XCode because cling worked immediately. But then, building PySide always failed with an error in qtinfo. This is a rare trap into which I fall every other year, so here is a fix that returns the intended error message. Change-Id: I9ec5774c49b8a186d6b4247150dac6b252e7cc64 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* testrunner: Fix disrupted lines in the error logChristian Tismer2020-02-207-58/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows inserts extra newlines into the error log when certain errors occur like "Exit code 0xc0000409\n***Exception:" and that newline caused the parser match to fail. Note that this is the normal stdout. CMake does not use stderr. It makes no sense to fix the pipe structure of the script. Instead, the only fix needed was recognition of line breaks in the error log. You can see this also in the failure listing The following tests FAILED: 1 - pysidetest_constructor_properties_test (Exit code 0xc0000409 ) The following improvements were done: - add an extra pass that checks for broken lines in the error log - add ad extra plausibility check or consecutive test numbers - improve the output, program structure and add some documentation When there should still an unforeseen bug occurs, it will be recognized by the plausi-check and the test repetitions are immediately cancelled. We could also fix the output not to contain the line breaks, but that breaks the principle of keeping the original output and needs discussion by the developers. Fixes: PYSIDE-1229 Change-Id: Ib71f3361e78eb59f3469da172c74c719e9f08706 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Make PySide2 tests using the helper modules from 'util' self-containedFriedemann Kleint2020-02-19224-74/+1001
| | | | | | | | | | Add the relative import path to locate the modules "helper" and "py3kcompat". The tests can then be launched from the command line without the ctest environment. Change-Id: Ia50663d7381b52cb248de3e4d23002a195ca9139 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* qp5_tool: Add --avoid option for Incredibuild/LinuxFriedemann Kleint2020-02-191-0/+1
| | | | | | | Available as of version v0.96.74, it speeds up things considerably. Change-Id: I5d8312b2d59adcce0881d3485af966bebf69317b Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Fix funny Python 2.7 glitchesChristian Tismer2020-02-192-1/+4
| | | | | | | | | | | | | | | | | | There are two funny glitches that happen with Python 2.7, only. One was the smartpointer test which only failed because Python 2.7 has no list.clear method. This test could be simplified since the tested object is a true list. The other one appeared after the introduction of the BUILD_DIR variable. Python 2.7 failed the enum_test.py because it now needs an import of shiboken2 to do initialization of the signature module. That is a timing problem that we did not have before we had BUILD_DIR. It makes me curious why this bug could slip through the COIN tests! Change-Id: I9b509e9998ad9f40431a8b148892429c0e865393 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* qp5_tool: Add test runFriedemann Kleint2020-02-191-2/+34
| | | | | | | Run the test redirected into a log file with time stamp. Change-Id: Id9a5047e0b6594760d0329f9a15450c688a585f8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix uninitialized time stamps in test logFriedemann Kleint2020-02-193-0/+7
| | | | | | | | Extract an API to start the timer of ReportHandler without actually installing the message handler and use that from testutil. Change-Id: I28166b9f9b8d5b0f00cda38389a1009416dac933 Reviewed-by: Christian Tismer <tismer@stackless.com>
* cmake: Fix warning about missing scope for --quietFriedemann Kleint2020-02-191-1/+1
| | | | | | | | | Remove scope, fixing: Cannot set "CMAKE_INSTALL_MESSAGE": current scope has no parent. CMake Error at data/shiboken_helpers.cmake:218 (_message): Change-Id: I7499eef3af499e1d02b548b19fca3dda7647b16e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Sign windows binariesSimo Fält2020-02-191-1/+25
| | | | | | | | | | | To be able to sign windows binaries we need to split the setup call to two phases. First we build all binaries, then we call Qt CI's function to do the signing and finally we create the wheels. Task-number: PYSIDE-858 Change-Id: I759a5aa7284736cbac0883ee5fd017345168c8b4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Cleanup build and test instructions callsSimo Fält2020-02-192-233/+29
| | | | | | | | There is no need to specify seprate call for each target/host arch combination. Change-Id: I02afadace9bfb561476825182bff883b5f79bfa8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Split module config instructionsSimo Fält2020-02-197-489/+516
| | | | | Change-Id: Ia0b47d0e264f00d859e20e18980b7899dddaba98 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Handle typedef'ed enumsFriedemann Kleint2020-02-182-9/+28
| | | | | | | | | | | Treat "typedef enum {} Name" as "enum Name". Clang actually provides type information for these cases, use it (taking care not to break real anonynous enumerations) and skip the repetitive definition of the elaborated type. Fixes: PYSIDE-1228 Change-Id: Icaf0450f3fea3ba9f06737e351b56e6e5df0749a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Improve the libdir for windowsCristián Maureira-Fredes2020-02-183-3/+17
| | | | | | | | | | | | | | | | | | With virtualenv 20 we have the case where the first path in the PYTHON_LIBRARIES cmake variable was wrong: a_virtual_env/libs/python3.lib so the python code inside the helper didn't have a proper check if the file was valid or it was just a wrong construct. Additionally, the 'prefix' variable will contain the virtual environment directory location, which will not contain the 'libs' directory, because that's included in the system's installation path. To solve this, we use the 'INCLUDEPY' directory, which is correct as a base to create the real 'libs' one. Task-number: PYSIDE-1231 Change-Id: Ifca08d74c49cd57572836a087edb96c089266dc7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Bump versions stringsSimo Fält2020-02-122-2/+2
| | | | | Change-Id: I4ed952681abe6f42ff43a567f70fdc7e6512ddcc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix running the shiboken tests for Python 3.8/WindowsFriedemann Kleint2020-02-12143-32/+919
| | | | | | | | | | | | | | | | | | | On Windows, DLL directories can no longer be specified via the PATH environment variable. They need to be added via os.add_dll_directory(). In order to fix this, move the entire environment setup from CMake to a python helper and set a single environment variable BUILD_DIR pointing to the build directory from CMake. In addition, this has a huge advantage: The tests can also be executed much more easily without ctest from the command line by just setting BUILD_DIR instead of a complex manipulation of PATH/LD_LIBRARY_PATH. Change-Id: I7dceafd2c38fed5320a534322f265489657b95d3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Polish qp5_tool.pyFriedemann Kleint2020-02-121-52/+166
| | | | | | | | | | | | | Fix coding style warnings and bring it up to par with the qt6_tool in the works: - Add edit config file option - Add dry run option. - Add support for Incredibuild - Log build time - Print help if no option is given Change-Id: Ia8ec5f0d4d9e9c127172fb22f3efea11ce1ab6ff Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add the webchannel standalone exampleFriedemann Kleint2020-02-119-0/+575
| | | | | | | Task-number: PYSIDE-1199 Change-Id: Icc138844b0cb5e7ccb502cbe840fc578fad8ca8f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Refactor writing of get/setattro methodsFriedemann Kleint2020-02-104-137/+173
| | | | | | | | | | | | | | | | | | | | | | getattro functions are needed for: - smartpointer dispatch - special cases of function overload resolution setattro functions are needed for: - smartpointer dispatch - QObject property handling All of this was previously handled in the writeSet/GetattroFunction which duplicated, inconsistent checks in various places, which makes it very hard to add additional functionality to tp_getsetattro(). To overcome this, define a flag to describe the various use cases, a check function to determine it. The flag is passed to the write functions. Smart pointer handling is split out completely since it will never mix with the other use cases. Task-number: PYSIDE-803 Change-Id: Iead9ee5b086830fb670b25917914117da62fefe5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Add explanatory comment to getattro functionFriedemann Kleint2020-02-101-0/+2
| | | | | | | | | Make it clear how the dispatch works. Task-number: PYSIDE-454 Change-Id: Idd98eee5a7f7d45891c8a7dd0170f9188f136296 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 0ffb486e27996bbd81cde5f3d73b2d8346386ffb)
* shiboken: Refactor the generated getattro()-methodFriedemann Kleint2020-02-101-75/+57
| | | | | | | | | | Remove else after return and simplify accordingly. Replace the check for self by an assert. Change-Id: I219e4887f0a699c21f718563ac696baf4c7f9d73 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit fd5768da8cc90faaa5a96c1c028db62915c18b0f) Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix usage of Qt's endl, preparing for Qt 6Friedemann Kleint2020-02-105-858/+844
| | | | | | | | | | | Cherry-pick the part of 870b7f4c849ebbc5f39f1f2398e39a3b7dfd9562 from 5.15 that joins "bla" << endl into "bla\n" to reduce further merge conflicts between 5.14 and 5.15 while preserving the ability of 5.14 to compile against Qt 5.12. Change-Id: Id9632973b253557c99b2f4e0a84c3db12c55f5b4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 870b7f4c849ebbc5f39f1f2398e39a3b7dfd9562)
* Fix testrunner for Python 3.8/LinuxFriedemann Kleint2020-02-071-4/+18
| | | | | | | | | | | | | | | | | | | When running tests with Python 3.8/Linux, the existence_test fails: File "pyside-setup/sources/pyside2/tests/registry/existence_test.py", line 73 from init_platform import enum_all, generate_all File "pyside-setup/sources/pyside2/tests/registry/init_platform.py", line 59 from util import get_refpath, get_script_dir File "pyside-setup/sources/pyside2/tests/registry/util.py", line 113 platform_name = "".join(distro.linux_distribution()[:2]).lower() AttributeError module 'platform' has no attribute 'linux_distribution' since platform.linux_distribution() was removed in 3.8. Extract into a separate method and warn to install distro. Task-number: PYSIDE-939 Change-Id: I42d04830d51563cc3fbaddc3941c927402514480 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix build on Windows using Python 3.8Friedemann Kleint2020-02-061-10/+37
| | | | | | | | | | | | | | The DLL load behavior was changed in Python 3.8 to no longer search the PATH variable for DLL dependencies. This means that the shiboken2.dll from the shiboken2 package is no longer found. Add the shiboken2 package using os.add_dll_directory() to fix this. Unfortunately, this requires additional work during the build process, Qt and libpyside2.dll need to be found in the build directory. Change-Id: I3d78d8df2d6f64913e06fa44e7e1aadbc1a14b58 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Create best-matching wrapper for unknown classes inheriting QObjectFriedemann Kleint2020-02-061-2/+19
| | | | | | | | Walk up the MetaObject hierarchy until a matching type is found. Fixes: PYSIDE-1214 Change-Id: I474edbfc710375951987e43469b7e7ea4366ab0c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Partial revert "Use qt5 5.14.1 in CI"Simo Fält2020-02-062-3/+3
| | | | | | | | | | This reverts commit 422546c884b9115cc2f1ba35bca36cc09a0a71ec. 5.14 should follow default Qt5 branch again, but we still want to update the PyInstaller to 3.6. Change-Id: I801d1a40192b2ee2873ca04710c788879a35532d Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QList/QTable/QTreeWidget: Fix ownership of return valueFriedemann Kleint2020-02-051-0/+18
| | | | | | | | Specify C++ ownership. Fixes: PYSIDE-1189 Change-Id: I093e2af048aaabf00d124af66dcd3efc7c709e95 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix PyBuffer interface for QByteArrayCristián Maureira-Fredes2020-02-052-1/+15
| | | | | | | | | | | | | For the limited API, properly implement the PyBUF_ND flag (shape requested). Otherwise, use the convenience function PyBuffer_FillInfo() to properly populate the view. Fixes: PYSIDE-1204 Change-Id: I2a4c81885cf49b25c89823577c0d7ee2f2707b87 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* examples: replace wrong license headerCristián Maureira-Fredes2020-01-306-158/+165
| | | | | | | | By mistake some examples were released under LGPL, but Qt for Python examples are distributed with the BSD license. Change-Id: Idbbf2067f2321d14cb3276ea36fe13f6551498a6 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Prospective fix for flaky smart_pointer_test.pyFriedemann Kleint2020-01-302-3/+8
| | | | | | | | | | | | | | | | | | | | The test has been observed to fail apparently since the result was not collected. Traceback (most recent call last) File "sources/shiboken2/tests/smartbinding/smart_pointer_test.py", line 82, in testObjSmartPointer self.assertEqual(integerCount(), 1) AssertionError 2 != 1 File "sources/shiboken2/tests/smartbinding/smart_pointer_test.py", line 154, in testSmartPointersWithNamespace self.assertEqual(integerCount(), 2) AssertionError 3 != 2 Enforce a garbage collection to ensure the object is deleted. Task-number: PYSIDE-454 Change-Id: I85baa059319a5286f94a5607c4de32bfc50ae0e0 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix Python 3.8 warnings about deprecated int conversions of enums/flagsFriedemann Kleint2020-01-292-1/+8
| | | | | | | | | | | | Set Py_nb_index to the conversion method for flags and enums. Fixes warnings like: examples/widgets/widgets/tetrix.py:107: DeprecationWarning: an integer is required (got type PySide2.QtCore.Qt.AlignmentFlag). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python. Task-number: PYSIDE-168 Task-number: PYSIDE-939 Change-Id: Id41a72474192b357afd3dacd0a2e2fc5e055775c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix grammar in considerations.rstChristian Tismer2020-01-291-2/+2
| | | | | Change-Id: I7d840367d9a733d925bbfeb78a0ba0c9c076e6c0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Let qApp be noApp instead of pretending to be NoneChristian Tismer2020-01-297-100/+64
| | | | | | | | | | | | | | | | | | | | qApp should stay almost as it is with only two cosmetic changes: When qApp's return value has Type(Py_None), the value now reports "noApp" instead of "None". Also the feature of "del __builtins__.qApp" is replaced by function qApp.shutdown() . This makes things easier to explain and avoids refcounting hacks. The embedding problem (Falkon browser) was too complicated. We finally solved it by disabling qApp in embedded mode. Change-Id: I0d99661137130684823aa3d1978b494d8ab08e59 Fixes: PYSIDE-1158 Fixes: PYSIDE-1178 Fixes: PYSIDE-1135 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add 5.14.1 changelog, addendumChristian Tismer2020-01-281-0/+1
| | | | | Change-Id: I70df7a265fd98ee9527909fc2e4e7bd1caacac98 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add 5.14.1 changelogCristián Maureira-Fredes2020-01-281-0/+34
| | | | | Change-Id: I74dd1dd6fbf1ad89c0d8e51dbaa0c19dcf55755b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* docs: QML and SQL integration tutorialMariana Meireles2020-01-276-0/+598
| | | | | Change-Id: I6ba4ae9fe6a9bfe669b76a23f27556b1f3c59eb4 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Add example for Threads and SignalsAlejandro Gutierrez2020-01-271-0/+98
| | | | | | | | | The goal of this file is to provide an example for signals being emitted from one thread to another. Task-number: PYSIDE-841 Change-Id: If494fbfef6d8c46b37d5b750163c909bc6c55c7a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* examples: improve the star delegate exampleSamuel Gaist2020-01-272-3/+4
| | | | | | | | | | | | | While the example works correctly as is, if one takes the StarEditor class alone, it will fail to work as it uses a starRating attribute that is available in the example only because of the call to setEditorData by the StarDelegate class. This patch fixes that as well makes use of the append overload of QPolygonF taking a list of point to simplify the code a bit. Change-Id: Id8132fa86f5668645f48c62377dac65f707c968b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* docs: More fixes on deployment and faqKavindra Palaraja2020-01-274-62/+86
| | | | | Change-Id: I97d7251b0d9ec024ce069f6475d7bc6be0d9d362 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* docs: Improve Shiboken docsKavindra Palaraja2020-01-272-37/+34
| | | | | Change-Id: Ibcefb190f5ea50b7c8575cd03b9e0f69b3a170b6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* libpyside: Set default signal name only if previously assignedCristián Maureira-Fredes2020-01-271-1/+2
| | | | | | | | | | Just before registering the signal to the meta-object, the signalName was overwritten instead of checking if it had some content. Fixes: PYSIDE-1192 Change-Id: I5fc85bf22ae08bce6969b9381662288a99aee616 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* designer: patch rpath for unixCristián Maureira-Fredes2020-01-272-2/+20
| | | | | | | | | Designer is not statically compiled, so we need to add a RUNPATH to use the Qt libraries we ship with the wheel. Change-Id: I715fcd852b63da99104198be2a4587b042a1eab7 Fixes: PYSIDE-1165 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update pyside2-toolsCristián Maureira-Fredes2020-01-271-0/+0
| | | | | Change-Id: I364ab18fede462ac9e6b5a318a29e5244e2f9156 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>