| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Task-number: PYSIDE-735
Change-Id: I864270454bf4f7eee1a28b55ed06ffbf1c60d74d
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
| |
Old template typo that was transformed into a snippet.
Change-Id: I58dfcde3d7f0bf7b769d76b51fea659d98aac5ed
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The file locking was written for Windows in mind.
But file operations are quite different on Linux.
This was no problem during normal builds, but showed
up das a possible racing condition when using the
"--reuse-build" flag.
This version uses a directory to create a lock and has
no platform specific code.
Task-number: PYSIDE-735
Change-Id: I9f27839b0697b49b4dbfea26d6f6949ec466c9d5
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|\
| |
| |
| | |
Change-Id: Iea80162c5b4a1a9692680d5e85760d2ecfdb4e17
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This will re-open PYSIDE-794,
but it was a wrong solution that was breaking
the other setVideoOutput signatures, causing a sefault
on the `player` example.
Change-Id: I31d7449ff11e4e44e8494b98d7e9ec58a636c8e4
Fixes: PYSIDE-864
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rewrite the function to use keyword arguments instead of ordered
arguments. Also add error detection when required arguments are not
passed, or have a typo in them.
Adjust all the module cmake files to use keyword arguments.
Change-Id: I7bb0c6561d7dca1e7f673e29eb457da50ae5df04
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The re.match(...) string raised a DeprecationWarning
due to the escaped '\(' inside the pattern in Python 3.
Using a raw-string instead solved this issue.
Change-Id: Ib7f6c66bfdaa03f154ce086abf7ca9bd0baaeb47
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QScreen.grabWindow and QWindow.fromWinId have
an WId as an argument.
WId is treated as a PyLong internally,
but with methods that need a WId we need to manually
transform them to long.
Change-Id: I97651704f37ae268455990a13884b92e8f1b643c
Fixes: PYSIDE-863
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The script is now automatically called in the cmake build,
as part of the create_pyside_module macro.
The script runs after every module build and tries to
generate .pyi files. This does not need to succeed, but
will generate all files in the end. The script has been prepared
to allow partial runs without overhead.
After integration of the .pyi generation into cmake, these files
are also installed into the install directory by cmake.
For wheel building, setup.py has entries, too.
Building a full project with all modules revealed a bug in the
signature module that allowed unsupported function objects.
Module enum_sig had to be changed to suppress types
which have no ancestry in shiboken.
PYTHONPATH was avoided because it was not Windows
compatible. Instead, the script was changed to accept
"--sys-path" and "--lib-path" parameters. The latter evaluates
either to PATH or LD_LIBRARY_PATH.
The necessity to create .pyi files while the project is in the
build process showed a hard to track down error condition
in PySide_BuildSignatureProps.
Simple logging was added as a start of introducing logging
everywhere.
Task-number: PYSIDE-735
Change-Id: I6b3eec4b823d026583e902023badedeb06fe0961
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was still leftover code on the typesystems
but not all could be translated to snippets, so
it was replace by templates.
Task-number: PYSIDE-834
Change-Id: I7dbe2f15171ce6a60137be970312dc80622219c9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Most of the old glue code was directly injected into
the typesystem, so it was possible to add them
as snippets.
There are still a couple of header files that will remain
there, because the include tag does not have the file/snippet
tags.
A few lines of code were modified in favor of "modern" C++,
and good practices.
Task-number: PYSIDE-834
Change-Id: I3072298b16d7280550c6a7f6abae045250663ba6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now we are able to include snippets for the previously
mentioned typesystem's tags, so this patch removes the
current C/C++ code from the typesystems.
Task-number: PYSIDE-834
Change-Id: I2929020fa1dc0859db780dffb12fa292627697b0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is a main template file that hosts most of the
code-templates we use in the typesystems, but there
were still several templates written in each module-typesystem
file.
The templates that are used on different typesystem
are now placed in:
sources/pyside2/PySide2/templates/core_common.xml
Additionally, the templates used only by a certain module,
are placed next to it, e.g.:
sources/pyside2/PySide2/templates/widgets_common.xml
Some simple templates were moved to the snippets files too.
Task-number: PYSIDE-799
Change-Id: I4f355cf2ae983aba9e85414e910550189cd18dcb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The module-specific glue files as well as the standalone glue files
are now installed into the PySide2 package.
The glue files are now also listed as dependencies for the shiboken
generator run, which means that modifying those files will now
correctly force a shiboken re-run for the relevant modules.
Change-Id: I545c7ada379fafb7f225d0b0f5ce495bf6d4795d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Due to the nature of the qApp singleton,
it was not enough to add the refcount of the style
via the typesystem, as usual.
An additional step of getting a reference to the qApp
to set the parent of the style was required.
A test case was included.
Change-Id: I5e60983e961e7d3d310b1e1c2f6f9b80ee095308
Fixes: PYSIDE-861
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An old fix for a QDataStream bug was performing
an additional step related reverse operations,
to make sure we call them if they were implemented
in other classes.
This was intended for shift operations.
Classes like QVector*, QTransform, and others
which include reverse operations like __radd__,
and __rmul__ will include this patch too.
When implementing a class that inherits from these types,
this becomes an infinite loop, which can be solved
applying this patch only for shift operations.
Due to this change, a QMatrix and a shiboken test
needed to be adapted.
Change-Id: Ie399837b6435b2cd058648a15f4d5cdff037ac6b
Fixes: PYSIDE-192
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-840
Change-Id: I637186335123500013a265b8a6f6554dfdceb225
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The argparse interface had a bug when started without "run"
Parameter.
Improved the formatting to be more close to PEP 8.
Reworked parser to include "--skip" to skip existing output files
and to ignore non-existing modules. This is to simplify file
handling during automatic creation during a build.
The automatic installer was extracted as an extra patch.
This one should not be subject of a discussion.
Change-Id: I3b6242b7cc459a7080bd8d48f4a37d4582eafb51
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This implementation formats all signatures in a way
that is known as type hinting files (.pyi).
Usage
-----
The script is to be called by the same Python interpreter that
was used to build PySide. It works with Python 2 and 3.
On Python 3, it performs a self-test.
python3 sources/pyside2/PySide2/support/generate_pyi.py run
will generate .pyi files for all compiled PySide modules
and places them into site packages to the binaries.
An optional outpath can be specified.
It is planned to call this script automatically after install.
o Local constants are not included, yet.
Maybe they never will, unless requested.
o The keyword "from" appears 43 times in argument lists.
It is fixed in Python, only which does not matter.
o When using Python 3.7 or above, it respects Pep 563 and
avoids imports which are deferred to runtime.
Task-number: PYSIDE-735
Change-Id: I3bcd5d9284b853fe955376bf35c7897e3698da2b
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The PySide project has been split into three pieces, including
Shiboken. This had far-reaching consequences for the signature project.
Shiboken can be run together with PySide or alone,
with tests or without. In every configuration, the signature
module has to work correctly.
During tests, the shiboken binary also hides the shiboken module,
and we had to use extra efforts to always guarantee the accessibility
of all signature modules.
This commit is the preparation for typeerrors implemented with the
signature module. It has been split off because the splitting
is not directly related, besides these unawaited consequences.
I re-added and corrected voidptr_test and simplified the calls.
Remark.. We should rename shiboken to Shiboken in all imports.
I also simplified initialization. After "from PySide2 import QtCore",
now a simple access like "type.__signature__" triggers initialization.
Further, I removed all traces of "signature_loader" and allowed
loading everything from PySide2.support.signature, again. The
loader is now needed internally, only.
Also, moved the type patching into FinishSignatureInitialization
to support modules with no classes at all.
The "testbinding" problem was finally identified as a name clash
when the same function is also a signal. A further investigation
showed that there exists also a regular PySide method with
that problem. The test was extended to all methods, and it
maps now all these cases to "{name}.overload".
Updated the included typing27.py from https://pypi.org/project/typing/
from version 3.6.2 to version 3.6.6 .
Task-number: PYSIDE-749
Change-Id: Ie33b8c6b0df5640212f8991539088593a041a05c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When code must be modified or added to certain
functions, we currently have two options:
* Write a template and include it into the typesystem,
* inject code directly at a certain place of the function entry.
The problem with injecting raw code is that since it is an XML
file, one need to escape protected symbols, like "<" and "&".
Thanks to a couple of complementary commits, now we can place
this code snippets on a separate file without triggering
a whole module compiling process, since the typesystem itself
will not be alterered.
All the injected code from the typesystem was removed
and placed into a single file per module inside a top-level directory
called glue.
Some small fixes were included mainly regarding styling
of the code.
Task-number: PYSIDE-834
Change-Id: I823e92d241a528d75d5940090008db9bf297f49e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Specify C++ ownership for the event (as is done for
QCoreApplication::postEvent() and similar).
Fixes: PYSIDE-850
Change-Id: I8d34842823d80779716d407e4fa6268533c5d080
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch again contains a complete overhaul of the signature
module. The code was re-implemented to properly support nested
classes. Also, the code was reduced by AutoDecRef and by
adopting a concise C++ style.
Note.. We will add a shiboken signature test and complete
mapping.py after the split into three projects is done. The split
changes a lot and is needed right now!
Signatures were quite complete for PySide, but the support for Shiboken
was under-developed.
Since we are planning to generally enhance error messages by using
the Signature module, we should be able to rely on them to always
produce a signature. Therefore, a general overhaul was needed
to resolve all cornes cases for Python 2 and 3.
Nested classes are supported, as well as plain module functions.
The usage of the typing module might improve over time, but the
Signature implementation is now considered complete.
The loader will respect now the path settings which might not be
the package dir but the build dir. This is more consistens with COIN
testing.
Task-number: PYSIDE-795
Change-Id: I246449d4df895dadf2bcb4d997eaa13d78463d9b
Reviewed-by: Simo Fält <simo.falt@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We have a proper `void*` treatment, so the extra
function does not seems to be necessary.
The injected code used for the interalPointer method was
also removed since is better to leave on shiboken hands
the conversion between void* and python types.
A couple of test were adapted since wrongly used ModelIndex
with Python objects.
Change-Id: I082637c7d1dd1bb0f50a3c453513e5d722f4b783
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I5a8f41a2236601b7c5466586dd1cfc92c1afc391
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When running test in debug mode on Windows, failures occurred:
File "sources/pyside2/tests/QtCore/qfileread_test.py", line 41, in readData
return super(FileChild2, self).readData(maxlen)
UnicodeDecodeError 'utf-8' codec can't decode byte 0xcd in position 21: invalid continuation byte
File "C:/dev/pyside/pyside-setup511d/sources/pyside2/tests/QtCore/qfile_test.py", line 57, in testBasic
self.assertFalse(obj.getChar()[0])
UnicodeDecodeError 'utf-8' codec can't decode byte 0xcc in position 0: unexpected end of data
This is caused by missing initializers and terminating \0 characters in the
QByteArrays introduced by ca806b438e8a27dc4562ac806d189765e93e09e5, unearthed
by MSVC helpfully filling unitinialized data with random values.
Fix by using a QByteArray of size n + 1 filled with 0.
Initialize the character variable in the fix_char* template.
Task-number: PYSIDE-40
Change-Id: Ia604841a89f1b1b9564c16d2f23cd9f7c20f5628
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add missing conversion of the long *result variable.
Amends f4a6d74852b0ba6711195a9c3fc9356e677a3409.
Task-number: PYSIDE-790
Change-Id: I2db9ffd80b569f68b714b21e2adaa3e34949af83
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\|
| |
| |
| | |
Change-Id: I3bb491686968e81382c135ab737da259d9796f52
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a type has nullptr as tp_dealloc, there apply different defaults.
Static types had object_dealloc as default, while new heaptypes
created with type_new have subtype_dealloc as default.
A problem was now that PyType_FromSpec also has
subtype_dealloc as default. But that is wrong, because a type that
was written with the static type approach is already written with
object_dealloc in mind and takes somehow care about further issues
with that type.
When we now convert this type and suddenly use subtype_dealloc
instead of object_dealloc, things get pretty wrong.
Finding that out was pretty hard and took quite long to understand.
The fix was then very easy and is the best proof:
Replacing our former (wrong) solution of supplying an
SbkDummyDealloc with a function object_dealloc works perfectly,
and the leakage completely vanished.
The documentation now is also corrected.
Task-number: PYSIDE-832
Change-Id: Ifc20c28172eb5663cd5e60dac52e0a43acfb626c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-838
Change-Id: I88a8c90b53757f05668782bc407e8529f6fbb3c6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add QAbstractNativeEventFilter. Re-add the native event filter
functions on QWindow and QWidget, modified to return a tuple
bool/long, using a modification from PySide.
Task-number: PYSIDE-790
Change-Id: I86fef1a0c168e69fb3391cd882ea05190985384d
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-487
Change-Id: Ibd984747f091ccb355881f869ed327a9dbbf5dbb
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-487
Change-Id: I62c7b117d662f3111b47aa9b840b39f67ef71cac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt 5 introduces a new class QMetaObjectBuilder for generating dynamic
meta objects for use cases like QML. It provides an API to add methods,
properties and info and a factory method toMetaObject() to obtain
a QMetaObject snapshot reflecting the changes.
Replace the DynamicQMetaObject aggregated by TypeUserData by a class
MetaObjectBuilder wrapping a QMetaObjectBuilder with dirty-handling.
The code to create the binary data of the QMetaObject can then be
removed.
For plain Qt objects, the wrapped base meta object will be returned
(which fixes the bug).
Task-number: PYSIDE-784
Change-Id: Id8a54570aff36c75fe0f3bf2d297a12d02cd773a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix the exclusion of QCborStreamReader::readStringChunk(char*,qsizetype)
for 32/64bit depending on qsizetype.
Change-Id: I7cd16fc83508c4ad04c2bb5e8b433c4933fef13c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
objects
Add helpers with overloads to reduce reinterpret_cast<> and
increase type safety.
Task-number: PYSIDE-784
Change-Id: I334fd7d149a6730094b062dd0371b9a29379d725
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a GUI class happens to be detected unreferenced when garbage
collecting in a non-GUI thread and is subsequently deleted, crashes
can occur for QWidgets and similar classes.
The hitherto unimplemented delete-in-main-thread" attribute should be
used.
Add the missing implementation. Add the field to shiboken's type entry
and SbkObjectTypePrivate class and pass it via newly introduced flags
to introduceWrapperType().
Defer the deletion when invoked from the background thread and store
the list of destructors in a list in binding manager run by
Py_AddPendingCall().
Task-number: PYSIDE-743
Task-number: PYSIDE-810
Change-Id: Id4668a6a1e32392be9dcf1229e1e10c492b2a5f5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Actually this creates 3 wheel packages:
- shiboken2 (the python module and libshiboken shared library)
- shiboken2-generator (contains the generator executable, libclang and
dependent Qt libraries)
- PySide2 (the PySide2 modules and Qt shared libraries, and tools like
rcc, uic)
Calling the setup.py script will not do the actual build now (in the
sense of calling CMake, make, etc.). Instead it will spawn new
processes (via subprocess.call) calling the same setup.py script,
but with different arguments. These "sub-invocations" will do the
actual building. Thus, the "top-level invocation" will decide which
packages to build and delegate that to the "sub-invocations" of
setup.py.
A new optional command line argument is introduced called
"--build-type" which defaults to "all", and can also be set to
"shiboken2", "shiboken2-generator" and "pyside2". A user can choose
which packages to build using this option. The "top-level invocation"
uses this option to decide how many "sub-invocations" to execute.
A new command line argument called "--internal-build-type"
takes the same values as the one above. It defines which package
will actually be built in the new spawned "sub-invocation" process.
The "top-level invocation" sets this automatically for each
"sub-invocation" depending on the value of "--build-type".
This option is also useful for developers that may want to debug the
python building code in the "sub-invocation".
Developers can set this manually via the command line, and
thus avoid the process spawning indirection.
A new class Config is introduced to facilitate storage of
the various state needed for building a single package.
A new class SetupRunner is introduced that takes care of the
"--build-type" and "--internal-build-type" argument handling
and delegation of "sub-invocations".
A new class Options is introduced to 'hopefully', in the future, streamline
the mess of option handling that we currently have.
setup.py now is now simplified to mostly just call
SetupRunner.run_setup().
Certain refactorings were done to facilitate further clean-up of the
build code, the current code is definitely not the end all be all.
Various other changes that were needed to implement the wheel
separation:
- a new cmake_helpers directory is added to share common cmake
code between packages.
- the custom popenasync.py file is removed in favor of using
subprocess.call in as many places as possible, and thus
avoid 10 different functions for process creation.
- Manifest.in is removed, because copying to the setuptools
build dir is now done directly by prepare_packages functions.
- because prepare_packages copies directly to the setuptools
build dir, avoiding the pyside_package dir, we do less copying
of big Qt files now.
- versioning of PySide2 and shiboken2 packages is now separate.
shiboken2 and shiboken2-generator share the same versions for
now though.
- shiboken2 is now listed as a required package for PySide2, to
facilitate pip requirements.txt dependencies.
- coin_build_instructions currently needs to install an unreleased
version of wheel, due to a bug that breaks installation of
generated wheel files.
- added separate command line options to pyside2_config.py for
shiboken2-module and shiboken2-generator.
- adapted samplebinding and scriptableapplication projects due to
shiboken being a separate package.
- adapted pyside2-tool and shiboken2-tool python scripts for setup
tools entry points.
- made some optimizations not to invoke cmake for shiboken2-generator
when doing a top-level "all" build.
- fixed unnecessary rpaths not to be included on Linux (mainly the
Qt rpaths).
Task-nubmer: PYSIDE-749
Change-Id: I0336043955624c1d12ed254802c442608cced5fb
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the extended signature API, it is now possible to create
different layouts, depending on the usecase.
The "layout" module defines the layouts which we will need
and also implements the variable signature generation.
Task-number: PYSIDE-510
Task-number: PYSIDE-795
Change-Id: I5b9f88d9feb92cc4c8dc0e212860b6eb4fc16484
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the preparation for a number of planned applications
and extensions using the signature module.
This general overhaul contains:
- Extraction of signature enumerations into enum_sigs.py,
- a list of current keyword errors in arguments which are unsolved
in shiboken, but temporarily fixed in parser.py (too many for XML),
- fix spurious duplications in multiple signatures
- corrections for keyword errors in function names which cannot be
fixed by Python (quite few),
- fixing "..." arguments into "*args",
- supporting the "slot wrapper" type. This is necessary for
methods like "__add__", "__mul__" etc.
- Create an extra function "get_signature" that has a parameter to
modify the appearance, i.e. without self, without returntype, etc.
Task-number: PYSIDE-510
Change-Id: If16f7bf02c6e7cbbdc970058bb630ea4db2b854a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Query the feature properties of the configure system to check whether
a class is present instead of running a compile test in QtGui and
QtNetwork.
Remove the macro invocation from QtWigets since the results
(QtWidgets_OPTIONAL_SRC, QtWidgets_DROPPED_ENTRIES) were not used.
Change-Id: I06e03fe1eef85f2340ab4cdb130b8b31b08f7f14
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes
qt.shiboken: (qtcreator) Error: .....typesystem_core_common.xml:691:104:
Unable to resolve typedef "QCborStreamReader::StringResult<QString>"
and compilation of the scriptable application.
Task-number: PYSIDE-814
Change-Id: Id6203f60e77d966933aaf28e46a0279933122eaa
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After fixing non-type templates, QGenericMatrix can be
specified as their base class. The inherited functions can then
be used instead adding templates.
Change-Id: I5ec435cf04d8443626a86a78643e2ad5d29f4a5e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add some convenience functions returning the status of
default expressions to AbstractMetaArgument.
Rewrite the function to only insert suitable candidates into
an ordered multimap instead of looping twice over all candidates.
This unearthed a bug in the old algorithm trying to find the maximum
number of arguments: When no candidates were found, maxArgs was left
at 0, which caused it to assume default constructible. This triggered
for the QMatrixNxN classes inheriting QGenericMatrix<int, int, Type>
with (unsupported) non-type template parameters. For these, the
default constructor needs to be specified now.
Task-number: PYSIDE-62
Change-Id: I5ce2bed43001780553048d8af0addaba2b22410b
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|\|
| |
| |
| | |
Change-Id: Ie346fe7d7ac85ce0b82806904044680713375bf0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The error message when use these methods was not explaining
that the first argument needed to be the parent's type.
This adds a small phrase a code snippet that clarify the situation.
Task-number: PYSIDE-776
Task-number: PYSIDE-691
Change-Id: I0af57d65065b6d87f195d5f42fd1140a864c5edf
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- codecForHtml(), mightBeRichText(), convertFromPlainText() are now
in qtextdocument.h
- QSortFilterProxyModel: using QObject::parent; is not seen by Clang
- QCoreApplication::"winEventFilter() is a left-over from Qt 4
- Member template QMetaEnum fromType() is ignored by Clang
- QGraphicsScene::drawItems() is removed a few lines above
the failing modification
Fixes:
signature 'winEventFilter(MSG*,long*)' for function modification in 'QCoreApplication' not found.
signature 'fromType()' for function modification in 'QMetaEnum' not found.
signature 'parent()const' for function modification in 'QSortFilterProxyModel' not found.
signature 'codecForHtml(QByteArray)' (specified as 'codecForHtml(const QByteArray&)') for function modification in 'Qt' not found.
signature 'mightBeRichText(QString)' (specified as 'mightBeRichText(const QString&)') for function modification in 'Qt' not found.
signature 'convertFromPlainText(QString,Qt::WhiteSpaceMode)' (specified as 'convertFromPlainText(const QString&,Qt::WhiteSpaceMode)') for function modification in 'Qt' not found.
signature 'drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*,QWidget*)' for function modification in 'QGraphicsScene' not found.
Change-Id: I7fcae940999890b490d0793d160c722924dea6ec
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Put each candidate on a new line and limit the number of member
functions in the output.
Change-Id: Ia628e61009997b37e0f3c2129fba5ccfa29f763e
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-487
Change-Id: Ib37efc4e480a978f920d3bc40756fe7abd59cb19
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(3dinput) signature 'QKeyEvent(Qt3DInput::QKeyEvent)' (specified as 'QKeyEvent(const Qt3DInput::QKeyEvent&)') for function modification in 'Qt3DInput::QKeyEvent' not found.
(3dinput) signature 'QMouseEvent(Qt3DInput::QMouseEvent)' (specified as 'QMouseEvent(const Qt3DInput::QMouseEvent&)') for function modification in 'Qt3DInput::QMouseEvent' not found.
(3dinput) signature 'QWheelEvent(Qt3DInput::QWheelEvent)' (specified as 'QWheelEvent(const Qt3DInput::QWheelEvent&)') for function modification in 'Qt3DInput::QWheelEvent' not found.
Change-Id: I7c473e96a4b556d5f65fbb7091abf7ddb9ca47a4
Reviewed-by: Christian Tismer <tismer@stackless.com>
|