| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
Remove the check for error column,
adapting to qtbase/3d631da88bc08816b72493dbce785cabc56b70be.
Pick-to: 6.6 6.5
Change-Id: Ic3deb32ba7b8c57af794ae4df7088a1d3044fbdb
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Inherit UsesQApplication to ensure a QApplication is present, which is
now always required. Since one test instantiated a Application, this
is the better solution regardles of whether the underlying issue is
fixed in Qt.
Task-number: QTBUG-117621
Pick-to: 6.6 6.5
Change-Id: I420dadb6c2f90314fe401aaf9291d23f5986bce3
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
| |
Pick-to: 6.6 6.5
Change-Id: I23d8ea03ec578a897352c2627417a706ca71ef82
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
| |
Add a test for the asyncio queue for consumer/producer scenarios.
Additionally, fix a few bugs exposed by this test through the increased
code coverage.
Task-number: PYSIDE-769
Change-Id: I18e3be6d059b758868a7598b58704db216bcdcc8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
| |
loop.time() needs to return the time in seconds as a float, not in
milliseconds as an int.
Task-number: PYSIDE-769
Change-Id: Iac123132b49d3954abda8545d0830f1837a27c48
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Some users of QIODevice read functions (read, readLine and peek) might
want to use fixed buffers to avoid reallocation, e.g., asyncio's
buffered protocols. This adds overloads of said read functions that take
an input buffer (as a bytearray) and return the number of read bytes.
Pick-to: 6.5
Change-Id: I0c3678d3a87811029278c5ae8f829eef0432099a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
writeRawData() was historically implemented to take a string.
Fix the signature. Add an overload for PyBuffer/bytes.
Fix the return type of readRawData() to be bytes.
Fixes: PYSIDE-2442
Change-Id: I1684afd5aae2f8d118fa2fac87d916c23bd4a59e
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Add explanatory comments; fix up the debug operator of
GetReceiverResult.
Task-number: PYSIDE-2418
Pick-to: 6.5
Change-Id: I77b9ad2d38a5bba1b78ffaf8835f20fbb93636d0
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The currently implementation was using an inherited toLong
function, not returning the Tuple[int, bool] that the docs
described. This adds a modification to follow the same
idea of all the other to*() methods.
Additionally, we remove all the to*() methods that
accept a QStringView, due to behaving the same with the QString
variations.
[ChangeLog][pyside6] QLocale.toLong now properly returns a (int, bool) rather than only int
Fixes: PYSIDE-2226
Change-Id: I5634e4010982e115c8208fdb9b56cfc57960358b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
| |
Fixes: PYSIDE-2415
Pick-to: 6.5 6.2
Change-Id: I2b19b20b1dec584667fa82abe6be2901b9580f96
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
|
| |
|
|
|
|
| |
Pick-to: 6.5
Change-Id: I261ec7ec933e21658d357ad1ffbeb4de5b84d13f
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
asyncio is an established library for Python applications with
concurrency and asynchronous I/O, and the de facto standard that
multiple other async frameworks build upon. Like Qt, it is based on an
event loop, so to this end, it offers an extensive API to implement
custom event loops that applications using asyncio can then leverage.
Task-number: PYSIDE-769
Change-Id: I3daf5d631e2fa0d44fd8c3c272ac5cce96f58653
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
| |
Task-number: QTBUG-111305
Change-Id: I7ac79f59cfd0b85645d30485e86b6ff74bba20bb
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The "default value" parameter had an int 0 default value, which lead
to strange behavior ['0'] being returned for string lists with
missing keys.
- QStringList was not converted when forcing the type to be list
due to the QByteArray split mechanism.
- String values could not be coerced to a list
Fix the default value to have a default {}.
Add a helper function checking whether a custom type conversion
is actually needed or the default QVariant converter can handle it.
Pick-to: 6.5
Task-number: PYSIDE-2381
Change-Id: I91b22c05f851c2dc8c3792bd9f1446cfc8ceba51
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
| |
Task-number: PYSIDE-1735
Change-Id: I51e68c50872f1d1254218ae7556ba607f73c4ea9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The new Enum implementation can no longer be switched off.
Individual features can still be deselected with the
environment variable PYSIDE6_OPTION_PYTHON_ENUM which
had the name PYSIDE63_OPTION_PYTHON_ENUM before.
This change is meant for PySide 6.6 .
Task-number: PYSIDE-1735
Change-Id: Iae5b7a9d42a0d7b005dbba20201a80713ef79be9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- For Python/Shiboken types not known to Qt that requires wrapping
around a QVariant, we use the PyObjectWrapper type. This patch
registers a toInt() QMetaType converter for PyObjectWrapper, which
enables automatic conversion to int for a QVariant(PyObjectWrapper)
within C++ i.e. QVariant(PyObjectWrapper).toInt() will work
- This means that cases like QAbstractItemModel::data() that calls
QtPrivate::legacyEnumValueFromModelData(const QVariant &data) would
work without explicit conversion from QVariant(PyObjectWrapper) to
QVariant(int). But for cases like QMetaProperty::write() explcit
handling is still required.
- This would also work for cases where the QVariant(PyObjectWrapper) is
simply channeled from Python to C++, and from C++ back to Python
without performing any operations on it.
- Incase, the wrapped object is not a PyEnum/ShibokenEnum object, then
toInt() would return a -1.
Pick-to: 6.5
Task-number: PYSIDE-1930
Task-number: PYSIDE-2339
Change-Id: I983351f2ff88c79c29399c257e38421116efc7a3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Change (gadget) QScxmlEvent to be a value type.
Refactor the test to check for events as well.
Pick-to: 6.5
Fixes: PYSIDE-2340
Change-Id: I0e37de05740f17d41794ebc74c81e49c49753495
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Extract helper functions from the Signal handling code to parse @Slot.
Pick-to: 6.5
Fixes: PYSIDE-2347
Change-Id: I1c12becad43e7915a63bd3068c7ec71d498c380f
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
| |
Amends 8a0a3d7fc64917d53767856f4ecedb636597ec54.
Pick-to: 6.5
Change-Id: I67a1fdaee87a8359f2c2f38cba8ed26359bae3e8
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The search was only implemented for signals without arguments by
appending "()" to the signal name to form the search signature.
Implement a search by signal name only.
Fixes: PYSIDE-2329
Pick-to: 6.5
Change-Id: I295150cdebe60c886891553c9f31d14011a004d6
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
The test was using a mixture of Qt and Python GL functions,
which can pose problems with Qt's dynamic GL switching on Windows.
Use QtOpenGL functions 1.3, exclusively.
Pick-to: 6.5
Change-Id: Iecaaacfe3cd8268b6744e5dcdb3c0e0902a148a8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Add a check to the connect function.
Pick-to: 6.5
Fixes: PYSIDE-2328
Change-Id: I62a10ef5710487f8ab23cc46c1cc4a34fab5e2b1
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
- Remove LeakerExternal test.
- Use the right assert.
- General simplifications.
Task-number: PYSIDE-2299
Pick-to: 6.5
Change-Id: I0851b2b75ff5658d0ced18b73a4a4b175397cc88
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uninitialized value
The size for long long was incorrect. Fix it and expand the test to
check values as well.
For really bizarre long types, the variable might be uninitialized,
causing
shiboken6/libshiboken/sbknumpyview.cpp:82:12: warning: type may be
used uninitialized in this function [-Wmaybe-uninitialized]
Fix by introducing a helper returning a std::optional.
Amends 499832abfdf13eac5aa35f84a62166fb5aa2e034.
Task-number: PYSIDE-2313
Pick-to: 6.5
Change-Id: Ie7d22a728a42f644fa84cba811c4e35e7db7ebb5
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When connecting a signal to the same anonymous function repeatedly,
a new GlobalReceiverV2 object would be created after each call. Each
GlobalReceiverV2 would have a unique callback object despite all these
callback objects sharing the same code. This would lead to a large
number of GlobalReceiverV2 and callback objects, each never reaching a
refcount of 0 and thus never being released. The remedy is that we only
need one GlobalReceiverV2 object, whose corresponding GlobalReceiverKey
references not the outer callback object, but the code object associated
with it.
Pick-to: 6.5
Fixes: PYSIDE-2299
Change-Id: I474284dc5ce08dc6601636f2e7ac5e5a10ed8560
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default type of numpy is int64 on Linux and long in Windows
these days. As numpy is still based on the old long/long long
scheme for the types, add some mapping.
[ChangeLog][shiboken6] numpy support has been extended to handle
short/long long integer types.
Fixes: PYSIDE-2313
Pick-to: 6.5
Change-Id: I75d9277ae0867401c2c188efb3a50f4c53c4fc24
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
| |
Task-number: PYSIDE-2206
Task-number: QTBUG-111033
Pick-to: 6.5
Change-Id: I0541a3bbb4e5696962802da7f91ab79682700124
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
Adapt the tests accordingly.
Task-number: PYSIDE-2206
Task-number: QTBUG-111033
Pick-to: 6.5
Change-Id: I332d6467da56b88ecbf9282d23092d8d47b730e0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
| |
Pick-to: 6.5
Task-number: PYSIDE-1612
Change-Id: Icd4a6efc828f2b4843ec40d4766788120ed6789e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Fix --dry-run in Android deployment
- Add option to control raising a warning when adding new entries
to config file
- Remove unnecessary code and comments
Pick-to: 6.5
Task-number: PYSIDE-1612
Change-Id: I5975d76024d6289fe6b9af1caeca374acb81e8cc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In multiple inheritance, it makes no sense to pass positional
arguments into a mixin class. This was correctly implemented
but later "corrected" because of wrong user input.
Correct and compatible to the competitor's implementation
is passing keyword arguments, only.
This is rarely a problem since people should use keyword arguments
only in multiple inheritance.
Change-Id: If5eb19368a50ee2a5534f10081d84511453993e5
Fixes: PYSIDE-2294
Pick-to: 6.5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
| |
- Extensive testing scripts to test different scenarios. This will not
be added to the CI.
Task-number: PYSIDE-1612
Change-Id: Ibb9d1046d1e2b6999c50372d1aeffb2dd34b9781
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Nuitka tries to do patchelf on all files in the 'Qt/qml' plugins
folder. Although this is a Nuitka bug, the file
qtquickcontrols2.conf that cause patchelf errors comes from the
newly added MaterialEditor Qml plugin, which has no relevance to
PySide6. Hence, removing it.
- Some of the Qml issues were fixed by upgrading Nuitka to 1.5.4
- Adapt test
Fixes: PYSIDE-2260
Task-number: PYSIDE-1612
Pick-to: 6.5
Change-Id: Ibc274769251e0533d960346a9d8271b2f65dcae9
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
- breaks source compatibility otherwise
Task-number: PYSIDE-1612
Pick-to: 6.5
Change-Id: Ie0fd353872b7a93c94b650b09aa0fa53692e2455
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- moving code into functions so that Android can re-use them
- new file "deploy_util.py" to store all the common utility functions
that can be reused for Android deployment tool
- new option "--name" to set the application name
- Change some print statements to log statements
- Adapt depoyment tests
- In default.spec, rename "packages" to "desktop_packages"
- Fix relative Qml file error in config.py i.e. it errors when the
path is already relative
Task-number: PYSIDE-1612
Pick-to: 6.5
Change-Id: Iaaea8837cc362b3cc8035b96247194c4a9679579
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- As the deployment tool's code base grows larger, I realized that
the ability to create a venv using pyside6-deploy was a bit of
over engineering. There are instances where I have to use the
current Python interpreter to fetch some information from the
newly created venv Python, which results in weird code.
Note: The tool would still work even if the user is using a
globally installed Python interpreter with PySide6 installed.
- Now, the user is warned if he is not in a virtual environment and
prompted the requirement to install further Python packages. If
the user input's "no", then the tool exits.
- dry_run used to create an empty 'pysidedeploy.spec' which can
wreck the normal deployment process. This is fixed by
pyside6-deploy using the 'default.spec' instead of creating
a new 'pysidedeploy.spec'.
Fixes: PYSIDE-2258
Task-number: PYSIDE-1612
Pick-to: 6.4 6.5
Change-Id: I376d2a6aea9f93582eab7a904a81f48426bfee18
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PySide does not implement multiple inheritance.
Please see "About Multiple Inheritance in Python" at the issue.
This patch just supports the `__init__` call.
A more consequent implementation will follow that
supports multiple inheritance with every method.
[ChangeLog][pyside6] Cooperative multiple inheritance is now
implemented for all __init__ methods.
Fixes: PYSIDE-1564
Change-Id: I8df805d22c2052c3a9747420a86341f64e29a5ad
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
| |
Change-Id: Ib45fd4b8769d66036f1f0ae5c8caa1ccf345808b
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Extend the QRasterWindowTest to test it.
Fixes: PYSIDE-2252
Change-Id: If36253d00edab4dc9026ccd483485b2ba6d3f69e
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The test was missing an application import, which did not show
in 6.5 since there, no text to speech engine can be found any more.
Amends 52e3888582ac3f3db322d7113734ce43dc325099.
Pick-to: 6.4
Task-number: PYSIDE-1564
Change-Id: I5c7855889b2e1b5e6a836bd99c10ac761c0802ac
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The last change to UsesQApplication can be generalized to
be able to remove the QtCore and QtGui versions.
Instead, the module and class to use are computed from the
content of sys.modules .
Task-number: PYSIDE-1564
Change-Id: Iac1fe3a2d6bb5a9f7638eb889f55b079cb55c272
Pick-to: 6.4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Specific package versions can be specified as
{package_name}=={version}
- Nuitka 1.5.1 breaks with PySide6, so use version 1.4.8
- new package "importlib_metadata" required to find a python package's
version at run time. This is added to Python from 3.8, but since
we support 3.7 the package "importlib_metadata" is required
- modify test accordingly
Task-number: PYSIDE-1612
Pick-to: 6.4
Change-Id: Ie74273ba2a116f0f94f3a3e10120b2de78482724
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For comparison reasons, it is nice to use the same helper
module, regardless which library is used.
Task-number: PYSIDE-1564
Change-Id: I94de9400dded1fd709156abae7d4f05adee768a1
Pick-to: 6.4
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SignalInstance unfortunately can be created directly without
a calling Signal. This is an old design error that cannot easily
be reverted because that is now the API.
Fixed by printing "(no signature)":
* print(SignalInstance()) # prints "(no signature)"
Fixed by producing a runtime error:
* SignalInstance().connect(lambda: None)
* SignalInstance().disconnect()
* SignalInstance().emit()
Thanks to <bers bers> who reported them all.
Task-number: PYSIDE-79
Change-Id: I92598d963b9796453fbd17c1526a674fa007e5e8
Pick-to: 6.4
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Hoping this will help the Qt Creator code completion.
Change-Id: I0777f5c38e37d560cfc1942b8acd5c76c8d64d25
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
| |
Fixes: PYSIDE-2234
Change-Id: I3fc1c669c3985a8aad57785927fb4e48e69431a4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
| |
Fixes: PYSIDE-2236
Change-Id: Ibf516529799b35982c8c210f657983d511b622a0
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
| |
Fixes: PYSIDE-2237
Pick-to: 6.4
Change-Id: I9993bbaf545e2868a5be900f793e5ae23f17235f
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.
Task-number: QTBUG-105718
Task-number: QTBUG-88621
Change-Id: I98bd2e80f182d8bf7aef6b633f37a428e2dac69b
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|