| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I1d814b72359e188ba8263b0cb583ccb43af5e4b4
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
| |
Task-number: PYSIDE-1112
Change-Id: Ice3e8efb7b75bd14ee73c20310f722c4e0b07b3b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I4ed952681abe6f42ff43a567f70fdc7e6512ddcc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Specify C++ ownership.
Fixes: PYSIDE-1189
Change-Id: I093e2af048aaabf00d124af66dcd3efc7c709e95
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I7d840367d9a733d925bbfeb78a0ba0c9c076e6c0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I6ba4ae9fe6a9bfe669b76a23f27556b1f3c59eb4
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
| |
Change-Id: I97d7251b0d9ec024ce069f6475d7bc6be0d9d362
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
| |
Change-Id: Ibcefb190f5ea50b7c8575cd03b9e0f69b3a170b6
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I364ab18fede462ac9e6b5a318a29e5244e2f9156
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the Shiboken macro only handles AttributeError
but when 'machinery' is not found inside 'importlib'
that case also needs to be handle by the except clause.
Adding ImportError will allow us to get access to the
Python suffixes that we need to build.
Additionally, some old versions of Python (2.7.14) require
an "archive_root" parameter on the 'wheel.pep425tags.get_supported'
function, which is not required in new versions (2.7.16, and 3+).
Change-Id: Icc6e7d1e9384ea01eec9281586f7ca988e3eb649
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Since it's a virtual method, we need to specify
that the native counterpart of the method will live
in C++, and in the target scope it will live in Python.
Fixes: PYSIDE-1207
Change-Id: I5b9072380eed17270affa39c5976dc6b1fe293ff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Removed the color and the padding on the 'pre'
elements of the docs.
Additionally increased the line-height globally to 1.4
to make the reading easy.
Fixes: PYSIDE-1201
Change-Id: I292d4e6da616ecb84a923444b99ad28a28d6cc5d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The doc parameter was being freed causing a segmentation fault,
according to the implementation of the parse function,
it's not necessary to free.
Fixes: PYSIDE-1205
Change-Id: I5850e7feaf354b27cc4496dc83be214d1729a048
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Prototypically use it for QMessageLogContext, allowing to elegantly
build for Qt from version 5.12..now using a single type system file.
Fixes: PYSIDE-1191
Change-Id: Iaa7bdc10c7129d84c54e85a09a1c802a409708f9
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
Setting the page margin used for comparing tuples requires
a PDF printer. Ensure PDF format if no such printer can be found.
Change-Id: Ie8509d4a336392cb711e210842664e238c487444
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
| |
Change-Id: I9cac73af695ecb123bc0e0b6ce35a10ee1026ea2
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This trivial patch fixes an omission that has not been caught
in earlier versions:
PyObject_INIT
must be replaced by
PyObject_Init
I think this change came by chance and was not the primary intent
of the authors. Otherwise they would have made sure that the
PyObject_INIT macro does not even exist when the Limited API
is enabled.
Change-Id: Iee8127dd398f1ec0997b9a629c5c48076137cecf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the class reference RSTs, the label entry must appear at first
before the current module entry. In addition, there must be at
least two empty lines before the page title. Otherwise, the
module's index page drops out of the toctree, resulting in
incomplete navigation breadcrumb.
Change-Id: I65a35b0bb9f2946fb5d45b1d1b8a453c20745e79
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The index adds all the class reference docs to the toctree
so we don't need to include everything under the module
directory.
Change-Id: I6ef20914a63a1f246b06b2725435a4fc42deaf9b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: If2d96afbf93f153fb1b8e79f150a934620899d18
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qApp has special treatment for the embedded case where some
Q*Application instance might exist before initialization happens.
In order to get these cases right, it was necessary to try to import
all three modules in question and do the initialization with the highest
existing module index.
Change-Id: Ifd27129ce166dee20e9424b1ee04a0d66cba79cc
Fixes: PYSIDE-1164
Task-number: PYSIDE-1135
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The qApp machinery works great with Python.
When using embedding, things are different because there
is no longer a wrapper layer.
Unfortunately, many extension modules use C++ to derive a
QApplication class.
This has the side effect that when a foreign C++ module gets
imported, the qApp machinery does not see it as it would
in Python.
Instead of a complex analysis, we always make sure that QtCore
is imported. It will report the right instance, anyway.
This change could not easily be tested.
It was confirmed as a solution by Antonio Rojas.
Change-Id: Ie9c56ac75e6c0ae3ace615dfc26c6d218ff4efea
Fixes: PYSIDE-1135
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the QTEST_ENVIRONMENT variable was no longer set,
a number of crucial checks were not performed.
One side effect are the two new keys which were missing in the registry.
Additionally, the registry is missing very many entries on macOS, and I
have no idea what the reason is. This could be an effect of the
macOS 10.15.1 version or of my maybe outdated Qt 5.14.0 version.
The registry files from 2019-10-31 have all entries. If I build
that version from 2019-10-31 and test it, I get the same missing keys.
Therefore, I doubt my results quite a bit!
To verify this, we simply check this change in, together with
https://codereview.qt-project.org/c/pyside/pyside-setup/+/284809
If that works, then I have a serious bug somewhere, but we know then
that the harm of that CI bug was a minimum. Fingers crossed!!
Change-Id: I25555d60d6911fca6de67110c35dff8d23c2fd8a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The generator subproject would still add the qtdocgenerator
source file even if neither QtXmlPatterns nor libxml/libxslt2
were found, causing link errors.
This is since the value of DISABLE_DOCSTRINGS was not propagated
up from the ApiExtractor subproject. Set it to the parent scope from
there as well.
Change-Id: If8dc7b0437ef8a8c1e71d822328bcc3809252b57
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
The content for this lived on the wiki till now.
Change-Id: I3e6a2cb7f97ab7021621b7c687299a3199134bb5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a final optimization to the Py_TPFLAGS_METHOD_DESCRIPTOR
fix. Instead of keeping the mro method alive, we are caching it's type only,
because that is what we need to patch.
Another effort to solve this problem completely has failed, again.
This solution is good enough and has no time penalty.
Task-number: PYSIDE-939
Change-Id: I98c165f9cd704b0f6ce55750189d6bda9a811f70
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The TOC groups the classes alphabetically, ignoring the 'Q'
prefix at the beginning. It did not consider classes without
the 'Q' prefix, such as Signal and Slot in the QtCore module.
The else block should handle that as well now.
Change-Id: I0fc22ba86650299de924d22c970d6fe6e31567c3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
| |
Also ensured that all the doc entities are in the
toctree so that the navigation breadcrumb is
generated.
Change-Id: If993cca4c7e91723fa373d3453196bcfee9f3ffa
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|