| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\| |
| | |
| | |
| | | |
Change-Id: I9eec3aeb13cf21bc9ec3c877340ed92d904c461e
|
| | |\|
| | |
| | |
| | | |
Change-Id: I78039827d32c1d4d540a8b1b2afd4841e40d5c2c
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It turned out that there are tiny differences between Python2 and Python3
which make the versions of the registry almost, but not totally equal.
There are functions which are slot wrappers in Python2 instead of
method wrappers in Python3, and we currently don't support slot wrappers.
There are other tiny differences when we switch to Qt 5.9, too.
Initially, I thought to split the files for Python2 and Python3, but then
it turned out that the problems vanish when we ignore the 'next' and '__next__'
functions in both python versions.
The filter function is both applied to the generating function and the testing
function. Therefore we can keep the existing data intact.
I further removed an indentation leftover in cppgenerator.cpp,
fixed handling of duplicate entries and improved modularisation of the
signature enumerator and formatter. This part will later be moved into the signature
library.
Task-number: PYSIDE-510
Change-Id: I18f5e8f08fb9b07534003919abe55ab4dafeb2c2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: Iedf9086aa8aea8587eb70fcf1770daf008ccc9cc
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Modify the return type to be a QString.
Task-number: PYSIDE-516
Change-Id: Ic79d4c69956cd439b60face4ce87788c451bfa96
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | |\|
| | |
| | |
| | | |
Change-Id: Ibef497a2439a05114eb2123e5f39c00aec8dc460
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There are QOpenGLFunctions::glGetString() etc.
Some platforms have new, unrecognized constants.
I also reverted a change to parser.py to accept all regular exceptions, again.
It makes little sense to be explicit, here.
Change-Id: I7e0289ed074c1452ad163f68fdc6d35f046844e2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |\|
| | |
| | |
| | | |
Change-Id: I79637555fbfbd596dee4313baf80149d03bb5206
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With the signature module, it is now a straight forward task
to generate a registry of all known function signatures.
We check that these signatures all exist.
One file contains all signatures for one platform and version.
The test is only activated when run in the CI system.
An initial call creates the expected file as output and raises
an error. The result can then be picked up from the error log
and added to the repository.
The linux2 and linux platforms are now unified.
There will be a new version of testrunner.py which is more versatile.
In future, this teach-in process will be made much easier because
we will be able to view the initial versions without raising an error.
Done: linux 5.6.4
Done: darwin 5.6.4
Done: win32 5.6.4
Done: darwin 5.9.3
Done: linux 5.9.3
Done: win32 5.9.3
Task-number: PYSIDE-510
Change-Id: I4e3953f9d8e781ae170b455dc7884da9bf632f47
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With the signature module, it is now a straight forward task
to generate a registry of all known function signatures.
We check that these signatures all exist.
One file contains all signatures for one platform and version.
The test is only activated when run in the CI system.
An initial call creates the expected file as output and raises
an error. The result can then be picked up from the error log
and added to the repository.
Done: linux2 5.6.4
Done: darwin 5.6.4
Done: win32 5.6.4
Done: darwin 5.9.3
Task-number: PYSIDE-510
Change-Id: Ib366f60d527ee8b043c7ee16430fdda42c707cfe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With the signature module, it is now a straight forward task
to generate a registry of all known function signatures.
We check that these signatures all exist.
One file contains all signatures for one platform and version.
The test is only activated when run in the CI system.
An initial call creates the expected file as output and raises
an error. The result can then be picked up from the error log
and added to the repository.
Done: linux2 5.6.4
Done: darwin 5.6.4
Done: win32 5.6.4
Task-number: PYSIDE-510
Change-Id: I4f406cf72d25fdd2336814f6f20129079b8be54f
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is achieved by registering a qt.conf file with a Prefix pointing
to a directory relative to the loaded PySide2 module (e.g. QtCore).
Thus Qt does not crash due to not finding platform plugins.
Because this change would affect tests, which are ran before the
PySide package is installed, a new environment variable called
PYSIDE_DISABLE_INTERNAL_QT_CONF is introduced. This variable disables
the registration of the internal qt.conf file, thus it will not point
to a not yet created location, which will allow tests to run as
before.
Change-Id: I5a96037adfafe1f08ea57535aa4a2a0d1660dfaf
Task-number: PYSIDE-558
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Implements standalone option on macOS, both for .dylib Qt build and
framework build. Multiple rules are applied to figure out which files
need to be copied into the final package.
We also take care to embed a proper LC_RPATH for the PySide libraries,
so that they point to the copied over Qt libraries.
Change-Id: I442749e7c2318a66a22e3a1dd0ae703fb8943acf
Task-number: PYSIDE-558
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a small omission that showed up after generating many signatures.
It also has support for "PySide2.QtCore.unsigned char" which came
with the introduction of QOpenGLFunctions::glGetString()
Task-number: PYSIDE-510
Change-Id: Ic07240cd29d423370717e8b76d0ab2e2b50402bd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There is now an external typing module for Python 2.7 and Python 3.6
from Guido (PSF license again) that makes the differences between
both versions vanish.
Also, when generating interface files, some types did not show
correctly, and the constant "0" is wrong in almost all cases.
Values in signatures looked often bad since they have no nice
__repr__, and it was almost impossible to create correct .pyi files.
Now, these instances are created as wrapped string types
with a nice __repr__. A call of these objects creates the real
constant. This way, also objects can be rendered which are
dependent from the existence of other objects (i.E. QPixMap).
This patch improves the usability of the signature module.
We can now generate source code or .pyi files without modifications.
Task-number: PYSIDE-510
Change-Id: I55490d76a29fc6c0e4f821c0c77d5e5d1e28976e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Task-number: PYSIDE-487
Change-Id: I5ba8e54f7e496e960fc6017b51eb4f22eb9f54b6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | | |
| | |
| | |
| | |
| | | |
Change-Id: Id8eb185198d0c1f6a4e16dc18fd16ea358314216
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add QRandomGenerator, QRandomGenerator64 and
QSemaphoreReleaser.
Change-Id: I28c5527d00ef04d92f5f6ea5f965c48905f8b2a9
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |\| |
| | |
| | |
| | | |
Change-Id: I2862ef0eac798f1b471c9c1af27ed556d37cf1e5
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make it possible to prepend or append something to the global module
header by providing a .pre/.post.h file. This removes the need to have
global includes and defines in pyside2_global.h and reduces module
dependencies.
Change-Id: I517c5765212813732b5694dcfcc86d2492e71a57
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: Ib359480f79ee4c2348f1cf1e5bf5f423f39be474
|
| | |\|
| | |
| | |
| | | |
Change-Id: I72583df407fc5b3caa8bf35fd997889a4ac86512
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This change introduces a new type into the shiboken2 module which is
imported by calling "import PySide2.support.VoidPtr".
The type takes care of conversions from / to void* values in function
signatures.
Creating an instance can be done by passing either a shiboken wrapped
object, or an integer representing an address, or a python object that
implements the buffer interface.
For example, this is useful for passing numpy arrays to C OpenGL
functions that take void* parameters. First you convert the array into
a bytestring (using numpy.array.tobytes(), then you instantiate a
VoidPtr from that bytestring, and finally you pass it along to a GL
function.
One corner case that is currently not supported is void** parameters.
Change-Id: I01e291d6856cb6bd8b5175adc3ead6b728036535
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There's a lot of code that was previously used for doing conversions
between C++ / Python types (apparently relying on extensive
RTTI / typeid manipulations), which got superseded by a cleaner
templated approach.
The old code was left behind, and there were a few instances where it
was still used even though it wasn't needed, like in QtScript
typesystem XML and shiboken's enum handling.
Remove the old code, apply the small changes needed to make it work
with new the code.
This is cleanup to reduce the confusion regarding conversion
behavior, and also preparation for a proper implementation of handling
"void*" types.
Change-Id: I8f16bb31436f9a677bb2d64c7197c4375005b656
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Modify the typesystem.xml files such that all dependent files
are loaded via module (for example, QtCore/typesystem_core.xml).
As a result, it is no longer necessary to add each dependent directory
to the typesystem path; it is sufficient to pass the binary and source
path of PySide2 and the source directory of the Qt module only.
This requires rewriting the dependency checking for --reuse-build
so that it loops over the source directories of the dependent
Qt modules.
Change-Id: Ib234c2673f4ee93cc8a3282fac69bcfcfaebd0ac
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Create a per-module header including pyside2_global.h and the module
header only instead of passing a global header including
all Qt modules. This reduces the amount of code shiboken2
has to parse and minimizes warnings.
Change-Id: If3ab8fdf6cabe17b4add65f1e4a0f2e1464ab164
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: I89fb88da32bcd40cb3e180f92042c7c3062f7742
|
| | |\|
| | |
| | |
| | | |
Change-Id: I94cb5a7dab97cff3591bac534228bfd3e3ad5938
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For short the new features:
- there is a qApp in QtCore, QtGui and QtWidgets for compatibility,
and also in __builtins__ for a true macro-like experience.
- if you delete any qApp variable, the Q*Application is reset and you can
start over.
Long description:
There is a qApp macro in Qt5 which is equivalent to Q*Application.instance() .
Python does not have macros. Both PyQt5 and PySide2 have an
according structure in QtWidgets. In the case of PySide2, the qApp
variable is first initialized to None and later to QApplication().
This does not reflect the original sense of the qApp macro, because
- it only handles QApplication,
- it does not handle destruction.
This "macro" should live in QtCore, but both PyQt5 and PySide2 decided
to put this in QtWidgets. As a compromize, I propose to put qApp into
all three modules, and into __builtins__ as well, so wherever you
create an application, you find this "macro" in place.
While changing the code, I stumbled over the template
set_qapp_parent_for_orphan. I tried to make sense out of it and finally
removed it. There were no side effects but bug PYSIDE-85 is gone, now.
With some extra effort, I created a singleton qApp that changes itself.
This way, a true macro was simulated. Note that this was not possible
with a garbage collected variable, and I had to make shiboken aware of this.
As the final optimization, I turned qApp also into a fuse variable:
Delete any qApp variable and Q*Application will finish when there is
no extra reference.
Task-number: PYSIDE-85
Task-number: PYSIDE-571
Change-Id: I7a56b19858f63349c98b95778759a6a6de856938
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Q*Application had PySequence as Parameter, although
only QStringList is accepted. That resulted in an implausible error
message when a list of, say, Integers was given.
This patch
- replaces PySequence by QStringList (one more tuple layer),
- fixes QCoreApplication to give the same kind of error messages,
- renames the shiboken function sequenceToArgcArgv to listToArgcArgv
and changes it to only allow list descendents.
We also changed signature.typing in one line to display List[str] correctly.
I think this belongs more to PySide-331, a fixed qApp.
Task-number: PYSIDE-510
Task-number: PYSIDE-331
Change-Id: Ib256c6a2db05a3db826454e1bf1b4729d59a240b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is totally irrelevant and a tiny optimization that is really not needed.
Do what you want.
Task-number: PYSIDE-510
Change-Id: I5d6d2f5f94130d4b03b4d70525b35139e82b9f5e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: I73bf2d5622fced7ce405a307b5f759001e1cee5f
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There is a crash in 5.10 because a signature is not recognized.
This is only a warning, but turned into an error for the testing.
Should we drop that, eventually?
Change-Id: Idd183842575e3890b018c8bc82b6e272e2980b9d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: Icc50b5046c378f1eb8e3d4937530c99ec54444ef
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As of 5.10, windows.h is included by qrandom.h in QtCore.
Task-number: PYSIDE-431
Change-Id: I69cc5e3275fba09f1a4990a4e5d37253b4664a95
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |\| |
| | |
| | |
| | | |
Change-Id: I49247833a83c9b371bc4c0aa3db275c7750cefa2
|
| | |\|
| | |
| | |
| | | |
Change-Id: I47521e21977b1f17fcc65590f565270b2440a48b
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch adds a type to MSVC.
Task-number: PYSIDE-510
Change-Id: I3290c91cd6f2937bddf8ec1f673b4a672bc49db3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch reduces the string size a bit to meet the MSVC restriction
to 16k only. This limit is reached by QtGui/qopenglfunctions_wrapper.cpp .
Task-number: PYSIDE-510
Change-Id: Ibb4a9103775cb308a0f39b3375c4948da6016189
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch covers macOS and Ubuntu (which actually had one addition).
No idea how oftem we must iterate ;-)
Task-number: PYSIDE-510
Change-Id: I950c57c2d225b289eafc46e7f1758338b4d62838
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It is likely that with Qt 5.9 we get new signature text that is not recognized.
This becomes a problem because COIN takes much time.
This patch does not stop on the first parser error, but collects
all warnings and raises an error at the end.
Task-number: PYSIDE-510
Change-Id: I898e0a7a59e8313c115d7ce8160908bf85d4140c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The mapping had been reloading on demand. This is overkill,
since we only want to initialize the new constants.
This patch replaces reloading by explicit init functions. This
simplifies the parser and even the loader, because sys.path
is no longer relevant and no context manager is needed for a
single sys.path patch.
Task-number: PYSIDE-510
Change-Id: I9e3a45cb10570211183952bd517abb0084b94f47
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The signature module was turned into a package under
'PySide2/support/signature'. The package is completely isolated
so that nothing is leaking into the normal import machinery.
The package is also not initialized unless a __signature__ attribute
is accessed. The only change to Python during a PySide run is
the existence of the __signature__ attribute.
As a side effect, all tests run at the same speed as before
this extension.
The module does not actively import PySide modules. Instead,
it inspects sys.modules and reloads its mapping.py if needed.
Example usage:
>>> PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors.__signature__
>>> PySide2.QtWidgets.QGraphicsAnchorLayout.__signature__
The module has been thoroughly tested on macOS.
I consider this ready.
Task-number: PYSIDE-510
Change-Id: Ibb231a7fbb4ccc1a7249df55e3881a4e21a19c0d
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | | |
Change-Id: Ied91391eea8b7178e338d217f90408235a04ddda
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Task-number: PYSIDE-487
Change-Id: I7e4e8b617b95ec4008dc0fc4bea9974871425b2d
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The chart takes ownership of the series. Fixes an exit
crash in the charts example.
Amends b814f865c0618faaaacb710bd0e8eb2804aaed00.
Task-number: PYSIDE-487
Change-Id: I2efcaa58031f86b4c21c9e62f56b51338f80e12d
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This fixes warnings like:
qt.shiboken: (quickwidgets) signature 'glProgramUniformMatrix4x3fv(uint,int,int,unsigned char,const float*)' for function modification in 'QOpenGLExtraFunctions' not found. Possible candidates: glProgramUniformMatrix4x3fv(GLuint,int,int,unsigned char,const float*) in QOpenGLExtraFunctions
which are produced by the QtQuickWidgets module including the QtGui
module (with generate="no"). Due to primitive type declaration, the
typedef is not resolved, which causes the mismatch and the confusing
yet harmless warning.
Amends eb28469e920696a1d0833c55b5c20c5c5a6f9d5e.
Change-Id: Ic22f7c7dd0ca009cf42ea8a5f1b2513b8727c3e6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: Ie8709052aa13c9bb2d0a7a376f9e6d669ef1d1d8
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Task-number: PYSIDE-487
Change-Id: I5902ce37ad40b8180b6710b3e7cd091925ad392d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Task-number: PYSIDE-487
Change-Id: I0106d87418c757d14c2dd7dd9fd1ab9d0c66a449
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|