| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signature module will be used to generate automated
documentation by using the function signatures as docstrings.
This functionality should be low-hanging fruit. Actually, it was a
bit tricky to get this working. The crucial point was to use
PyType_Modified().
The function works fine on methods.
Supporting types needs some more effort.
It is not clear why the __signature__ attribute can be added,
but the change to __doc__ is not recognized. May be related to
the absence of Py_TPFLAGS_HAVE_VERSION_TAG ?
This will be addressed another time.
Task-number: PYSIDE-908
Change-Id: If8faa87927899f4c072d42b91eafd8f7658c6abc
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
| |
cppgenerator.cpp:2698:107: warning: format not a string literal and no format arguments [-Wformat-security]
Change-Id: I41d976749023bda142b680930f2d54d00687eb47
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QAbstractNativeEventFilter.QAbstractNativeEventFilter()
long * result is nullptr for the custom message WM_USER + 1 internally
used by Qt (cf QEventDispatcherWin32::processEvents()).
Add a check for that.
Amends 899b3cfed8e1c3513f8d3001c53b0bb0cc1af548.
Task-number: PYSIDE-790
Change-Id: I4c55cfb17aa95d79f728f43a9030d1f1cbb1d024
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
| |
Change-Id: I9539c1a4e24e915d5b356afafbd902266d493b5a
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
| |
Change the tp_func handling such that "" means nullptr and introduce a
formatter class for the entries to use nullptr and change the C-style
casts to reinterpret_cast.
Change-Id: I36a1a218d003035f23ab9f8d31c7a993379e23c2
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the case of the method `addAxis` in the QPolarChart class,
the generated code evaluates first the inherited method:
QChart::addAxis(QtCharts::QAbstractAxis*,QFlags<Qt::AlignmentFlag>)
instead of the same class method:
QPolarChart::addAxis(QtCharts::QAbstractAxis*,QtCharts::QPolarChart::PolarOrientation)
The condition to check if an argument was a `QFlags<Qt::AlignmentFlag>`,
was just `PyNumber_Check(...)`, which was too broad, and then any
Enum would pass that condition.
The change was to include an additional condition to check the
type of the EnumType that was passed as argument.
Change-Id: I2eebb6f05c097d170a6d61633698444f03f20b02
Fixes: PYSIDE-898
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
| |
Change-Id: I96e3bff8a48f0bd5ea98c33a22ff12c31b01357d
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace in comments, code and generated code.
Rename variable NULL_VALUE to NULL_PTR and make extern for follow-up
changes.
Rewrite code using NULL in QString::arg() (resulting apparently from
some misunderstanding that it requires a terminating nullptr) to use
printf-formatting to fix a warning: format not a string literal and no
format arguments [-Wformat-security]).
Change-Id: I97c111cadc09192132308924136eb6ede7a6bf44
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
| |
Change-Id: Ic38aa8ba9a2470c97eb5cbd83b7d227322207db9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
| |
Task-number: PYSIDE-903
Change-Id: I727b861b048c48bbeea51272e607c06dfb58c1df
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
| |
Task-number: PYSIDE-691
Change-Id: I5a6691554b64b808591e3ed000f01ca0211167ab
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
| |
Task-number: PYSIDE-903
Change-Id: I4dc2cce4741c87e08b8b3d0dc911c62d044ee054
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The TypeError messages can now be produced, based upon the
signature module.
As a feature under test, we produce ValueErrors instead in
certain cases. This will probably improve, later.
We are currently investigating how much can be determined,
automatically.
Task-number: PYSIDE-795
Change-Id: Ie8a648beaf8a3bed388e3c01ba501bb36859722e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
Initial-patch-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Change-Id: Ia1f86a8c8926dda2072a10757928497067580dca
Fixes: PYSIDE-882
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Even though we have support for Void*, having to import
it as an additional class to be able to call a separate
function, is adding too much complexity so something
that should be easy to do, like creating an index
for an itemmodel.
The regression is a change that replaced the way of doing:
QAbstractItemModel.createIndex(0, 0, PyObject*)
to
QAbstractItemModel.createIndex(0, 0, VoidPtr(PyObject*))
which is not really intuitive, and is generating other issues.
Included modification in the registries too.
Change-Id: Ie6112c6baeb4fc3b22fc78e7edeb66aa4a17c22b
Fixes: PYSIDE-883
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
registration
Fix an oversight of bbd32e9e52bda460dd1cb75d128dd1165d1fd152.
Task-number: PYSIDE-784
Change-Id: Ic48fbed24bc86a848accda46602fd3f5cb27d411
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
| |
The code was needlessly convoluted and generated ugly C-style casts
for wrapper classes. Factor out a function to write the assignment.
Change-Id: I2bc4b258f254d36a1a22f68336c285e64df0aca1
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When building type hints during the PySide build, it can happen that
the QtMultimedia module already exists, but the QtMultimediaWidgets
module is not yet built.
Since during the build also directories exist alongside with the not yet
existing modules, it can happen that such a directory is picked up by
Python 3, which supports namespace modules without __init__.py .
This case was already handled by the mapping modules, but
QtMultimediaWidgets was directly imported and not checked.
Now the check code has been extracted from the mapping reloader,
and there is no more unchecked module left.
Task-number: PYSIDE-735
Change-Id: I1a1f53525417651005d0759e417082fe71b02773
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ib4a9e8be733a3c8012e19c509ed98f87aad7cb6d
Fixes: PYSIDE-892
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Use METH_STATIC only when there are no instance methods in the same class.
Unearthed by a clash of QPlainTextEdit::find() and static QWidget::find(WId).
Change-Id: I891c678e004a0abc3937437b0cac26e8094853de
Fixes: PYSIDE-886
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the <class>_PTR_CppToPython_<class> converter function (written by
CppGenerator::writeConverterFunctions()), the generated code
used typeid(*ptr).name() to retrieve the name to use for the
SbkObjectTypes. This construct returns the name of the outermost
class (for example, "QWidget" for a QWidget-type paint device returned
by QPainter::device()), as opposed to "QPaintDevice *" returned by
typeid(ptr).name(). This caused a crash with multiple inheritance
since QWidget inherits QObject and QPaintDevice and the "QWidget"
type was associated with the QPaintDevice pointer.
To fix this:
- Add API to libshiboken to obtain the SbkObjectType* by name
and check for the presence of a special cast function (multiple
inheritance).
- Generate the code of <class>_PTR_CppToPython_<class> as follows:
Check whether the outermost type obtained by typeid(*ptr).name()
has a special cast function. If that is the case, use the
type name obtained by typeid(ptr).name() (base class) to create
the wrapper.
Change-Id: I8ee6b4c084e9dafa434623433661809b83aedee5
Fixes: PYSIDE-868
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
Add 'static' and class name.
Task-number: PYSIDE-886
Change-Id: Ie70d3b405e034f6203c54a363e3037c83720af00
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
| |
After the existence test war activated, the newly generated
files are ready for checkin.
Change-Id: I5118b83fab1a1c52c56166aaf4e8b026722966e0
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
This would avoid unnecessary maintenance work updating the modules
list in several places.
Change-Id: I13466ada3568c45391a7c35f287cc11c2ad218a5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
There have been a lot of changes and enhancements when
recursive classes were enabled and type hinting was created.
When these patches are stable and checked in, this follow-up
should be activated and all signature files re-created.
Task-number: PYSIDE-735
Change-Id: I0c80c7986a5e02e380760d0a6b89faa7be2be2ba
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signature module has been quite far developed.
In the course of making things fit for the TypeErrors with
the signature module, now also all signatures from all
shiboken modules are queried.
Instead of writing an extra signature existence test for
shiboken, it made more sense to extend the existing
init_platform.py by the shiboken modules.
In fact, by this query a corner case was exploited that
worked on Python 2 but assertion-crashed on Python 3.
The mapping.py modules were also completed to support
all new PySide2 modules.
Special care had to be taken because the "shiboken2" module
exists both as directory and as binary module. The fix was
tricky, and I will add a task that replaces such workarounds
by a better design.
Task-number: PYSIDE-510
Change-Id: Ibf8e322d1905976a0044a702ea178b7f98629fb4
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
| |
Change-Id: I72ae6d0af284dc85e9f36faafd9b9d3bf27c7962
Fixes: PYSIDE-878
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The generation of .pyi files talks too much when "--reuse-build"
is used and actually no files are created at all.
This patch guarantees that only one message comes out.
Change-Id: I41f1aada0da27f0fab880ad51838f8615d61b08c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
| |
Change-Id: Id54e27c36b7c6f6685013ae01d90ba4ae8e72457
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The wiki page describes some known issues and considerations
that are useful to the developers.
Also, moved toctree to the top to get readers' attention,
as the modules list is too long.
Change-Id: Id2dcce1fe51c2c9e9eacb45e573605cc21d3a59d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
It should abort as it will usually result in broken code.
Change-Id: I81d930c4516b0ee97dec985525fab8140fdce3dc
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
| |
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
|
| |\
| | |
| | |
| | | |
Change-Id: I7d67c64e7c6f58fb3907bcac6f4cf7342ffc3552
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to empty the pre_release_version_type string also.
Change-Id: I4229dd56aa2da14f081a9e55cb965be1e36a87a5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |/
| |
| |
| |
| |
| |
| | |
Change-Id: I3fe96a92675dd81459777646593cb5c5737cc245
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I96cbb7dc06572629f88f11e5d75dd2a20ffe5def
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I1aa12897a02ac70fb65a72160578732fdb179092
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The change does a couple of things:
- Sets the distutils / setuptools --verbose option to 0
- Sets the distutils / setuptools --quiet option to 1
- The options above end up calling distutils.log.set_verbosity(0)
- Passes the QUIET_BUILD cmake option from setup.py to every
CMake invocation, when --quiet is passed to setup.py
- Sets the CMAKE_INSTALL_MESSAGE variable to silence messages
regarding installation of files
- Sets the CMAKE_RULE_MESSAGES variable to disable progress report
in makefiles when building each source file
- Overrides the CMake message function, not to display
STATUS / info / untyped messages (still displays warnings and
errors)
- Changes the build / install elapsed time messages to always be
printed even in quiet mode
- Reverts the previously introduced set_quiet function in utils,
because log.set_verbosity() now takes care of silencing those
messages
As a result, there's a lot less clutter when doing a quiet build.
Warnings, errors and shiboken output is still displayed.
Change-Id: Ie05c593ce7dc0aa04554c2d2859ce655233ddb9f
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Query llvm-config for the lib dir instead of constructing the path
from the prefix in case the Clang location is obtained via
llvm-config. Assume a standard build in case the Clang location is
obtained via environment variables.
Change-Id: I7628d90706100a61f8a605e931bd023b27f1f442
Fixes: PYSIDE-867
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add missing include, fixing:
sources/shiboken2/ApiExtractor/clangparser/clangutils.h:91:17: error: field 'childMessages' has incomplete type 'QStringList'
appearing in Qt 5.13 due to some header rearrangements.
Change-Id: Iab22538af8688ebb3dcbaf0e1042b1198bde5800
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Sphinx apparently doesn't handle XML block
by default.
Change-Id: I8892d96d072e718b345f444fdb7f6686c8ee14de
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>
|