| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While trying to document the Limited API Project,
it suddenly struck me:
We can make the patch much much simpler and implement it
without the necessity to have an extra PepType!
Now I am happy to continue the documentation, because
it is now no more improvable.
This version will last as long as the layout of
PyTypeObject does not change substantially. When that
happens, then we need to rewrite stuff with the according
PyType_GetSlot() access functions.
These access functions will until then be complete enough
so that we can live without the tricks like inventing a reduced
PyTypeObject as was done in the current implementation.
Task-number: PYSIDE-560
Change-Id: I49849cc377baa6794a5b53292691e21d6e2853ab
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Index assignment now only accept str/bytes, bytearray, QByteArray with
size 1;
Slice assignment only accept str/bytes, bytearray, QByteArray with
limitation, that is if the step is not 1, then the number slots and
the size of the target value must be equal.
Range delete: a[2:5] = None
Shrink: value length smaller than the slot length of the slice
Expanse: value length bigger than the slot length of the slice
Range assignment with step: a[2:5:1] = ...
Range assignment with step which bigger than 1: a[2:9:2] = ...
Range assignment with native step: a[5:2:-1]
Change-Id: Ib9b929d09a691ed18c91e0c1c6b5dde827bf8d42
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
| |
Task-number: PYSIDE-336
Change-Id: Ie7d955b3b4d35e24a9eac5e7958ce2077370a34b
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we transform QVariant arguments to internal
types, starting from the Python ones, to others
related to shiboken.
After checking if the current object is a PyDict
we proceed to check if it's a PySequence.
PySequence is the complementary 'sequence-like' type of PyDict,
and allows finite and infinite sequences,
like lists or generators.
The problem is that when one implements a class
which includes the __getitem__ method, Python already
thinks that it correspond to a PySequence, then
we try to get the elements to transform into
a QList<QVariant> but it fails at the first attempt.
The solution was to not assume that all PySequences
have finite length (or a length), and also to have
a fallback case similarly to the PyDict treatment,
wrapping the PyObject as a QVariant.
Task-number: PYSIDE-641
Change-Id: I3b755f47ed076147024de38e5e0a86932d981f88
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\
| |
| |
| | |
Change-Id: I2de0fe8456fca242c56ea28520126f9ebbf540d8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The available constructors for QByteArray are now:
bytes, bytearray, and QByteArray, unicode is not
accepted anymore.
Also the concatenation is now possible between QByteArrays.
Even though is not possible to initialize a QByteArray
with an unicode, we include the possibility to compare it with
one (Compatibility with PyQt).
The __repr__ and __str__ are now properly working.
There seemed to be a confusion regarding data types between
Shiboken, Python2 and Python3 related to bytes,
so now the structure is based on the flag SBK_BYTES_NAME,
which is define as "bytes" for Python3 and "str" for Python2.
Many tests were modified to properly handle string,
using the `py3kcompat` module.
Task-number: PYSIDE-232
Change-Id: I8b671f367c60a0870c72dcbe5662106b3225037d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I31a0ff26bc02e6cc2ec2a816c16d170fc334f800
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the condensed checkin of 18 commits which created
the implementation of PEP 384.
Task-number: PYSIDE-560
Change-Id: I834c659af4c2b55b268f8e8dc4cfa53f02502409
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I20cf741f5b07426ad5113eb8c52f144102c331ce
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When no arguments are passed, build an empty list
and to start a QCoreApplication, QApplication and
QGuiApplication.
This is a small effort to include the idea
of a default parameter from Python.
Change-Id: Ieedc1e7ee17de996778aa2d0bddfb88c5ef208cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add QIdentityProxyModel, QLockFile, QMessageAuthenticationCode,
OperatingSystemVersion and QSignalBlocker.
Task-number: PYSIDE-487
Change-Id: I680c3d175394e9d560152a38195d015fc6abb7fa
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The first argument was modified to be a socket type,
but it needs to be an int (file descriptor).
Adding a new signature solves the compatibility problem
between Python2 and 3.
A test case was added.
Task-number: PYSIDE-629
Change-Id: Id9dea37459350dfc90d0f0ab9e2e1993d03fe6e4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\|
| |
| |
| | |
Change-Id: Ic7aa7796dffda87ef492a99af7859c909ec607a2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Python 3 uses PyLong for integer manipulation,
and since it is a valid type in Python 2 we can
use it instead to have better compatibility,
and avoid integer overflows.
We keep the PyInt entry to avoid breaking
other sections of the code when this type is required.
Added a couple of PyInt_* alias to use PyLong_* ones
instead.
Task-number: PYSIDE-648
Change-Id: Id6af66050c5ab81fc51c1c07b1c9422a954b81c0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\|
| |
| |
| | |
Change-Id: I15e8a6120c249bfc5a0e2b3fa262989fafccbf57
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removing the word 'project' from all the headers,
and changing the PySide reference from the examples
to Qt for Python:
The following line was used inside the source/ and
build_scripts/ directory:
for i in $(grep -r "the Qt for Python project" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/the\ Qt\ for\ Python\ project/Qt\ for\ Python/g' $i;done
and the following line was used inside the examples/ directory:
for i in $(grep -r "of the PySide" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/of\ the\ PySide/of\ the\ Qt\ for\ Python/g' $i;done
Change-Id: Ic480714686ad62ac4d81c670f87f1c2033d4ffa1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PySide2 for Python 3 didn't support get item by slice, e.g.
```
>>> from PySide2.QtCore import QByteArray
>>> ba = QByteArray('1234567890')
>>> ba[2:4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence index must be integer, not 'slice'
```
This is because get item by slice is supported by mp_subscript.
But current PySide2 doesn't implemented it. So I added __mgetitem__ in
QByteArray. And we also need to keep __getitem__ to support iterate over
QByteArray.
Also removed the __getslice__ from QByteArray.
Task-number: PYSIDE-567
Change-Id: I01f79cc2ab8700da92155cfad96be2e98bb8b331
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When referring to the project one should use "Qt for Python"
and for the module "PySide2"
Change-Id: I36497df245c9f6dd60d6e160e2fc805e48cefcae
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since this method should not be used in any
application code, we should remove it from
PySide2.
Removing also the test registry.
https://doc.qt.io/qt-5/qthread.html#currentThreadId
Task-number: PYSIDE-275
Change-Id: I152b36ccfa4342d4d6b916d8b2fe228e4fe4a1c4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id40dab17b02800199f70072115d7473041f683d8
|
| |
| |
| |
| |
| |
| | |
Change-Id: I2d41bb92335bcbd2300da29b793ce0529e57960a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\|
| |
| |
| | |
Change-Id: I379c41e209c1a2cd61c8aa04bddd35a72210f0d3
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Seems this was in QtGui at the time of Qt 4, but now it's in QtCore:
http://doc.qt.io/archives/qt-4.8/qstringlistmodel.html
http://doc.qt.io/qt-5/qstringlistmodel-members.html
Task-number: PYSIDE-614
Change-Id: I918cbffd64fb8da9e81123073ff57cd2126e5cae
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-487
Change-Id: I67ce74f06bba2f0161bb6e49be5aa8d7cfeea793
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\|
| |
| |
| | |
Change-Id: I622426aa55762e32f40995b72d49a3f966103b36
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Remove documentation modification on QUrl. The text in Qt is
identical.
- Remove C++ 'new' from the QHistoryState code snippet
Task-number: PYSIDE-363
Change-Id: I4c0d4fb9b426e24ce9352c954bcd5765d89aeca8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I1bc352322e41c3288a8a6f93dc2873e393607d72
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
They apparently originate from an expanded macro and result in
doc warnings.
Change-Id: I2418034f643156855091e1e94e0fbb2a58e77bfc
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are many inconsistencies in the associated
typesystem files that complement the binding generation,
this is a first attempt to try to standardize it.
Just Qt Coding Style were applied (when possible).
In the future the process to access and manipulate
Shiboken objects must also be standardized.
Change-Id: Ida57d1630a893bc5b608f64119b4c8d638bb9c66
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I1ce182621862f57ee555999cdd7a18eecc60ffe1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-587
Change-Id: I9f78ed0c66e4bb9db463f04fe77a8fc63413cd83
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: PYSIDE-487
Change-Id: I17100eda57fbe5015b6c8ff531a3c62b22e8de95
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I0bebba45aa05c2eb02c35bf76b63bb7eaa67b562
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order for GL types like GLint64 to be available on macOS, the
macOS-specific system header "gltypes.h" has to be parsed by libclang.
Before this change, shiboken skipped parsing system headers (except
for gl.h) because there are issues when trying to parse C++ std headers
(ostream for example).
The file "gltypes.h" contains the typedef declarations for GL numeric
types. A few other system headers like "cstdint" are also needed
(which contain the actual typedefs from int32_t to int for example).
A few different system headers are also needed on Linux (also for
GL -> numeric typedefs).
This system header exclusion mechanism is far from a clean solution,
but it seems like current versions of libclang do not provide enough
preprocessor information to be able to limit the parsing to specific
chunks of code (for example everything included by gltypes.h), thus
we need to limit ourselves to exclusion by file paths.
Change-Id: I58c151e2cb083e16f7cafb3dc9df2d757442bb59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The proper approach is to replace the returning
data as Python Strings instead of QByteArray.
Task-number: PYSIDE-40
Change-Id: I554b88bb79b7ae7d36fdc8c597704e3fcadd4527
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Iedf9086aa8aea8587eb70fcf1770daf008ccc9cc
|
| |\
| | |
| | |
| | | |
Change-Id: I79637555fbfbd596dee4313baf80149d03bb5206
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add QRandomGenerator, QRandomGenerator64 and
QSemaphoreReleaser.
Change-Id: I28c5527d00ef04d92f5f6ea5f965c48905f8b2a9
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: Ib359480f79ee4c2348f1cf1e5bf5f423f39be474
|
| |\|
| | |
| | |
| | | |
Change-Id: I72583df407fc5b3caa8bf35fd997889a4ac86512
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\| |
| | |
| | |
| | | |
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>
|
|\| |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Remove comments, add test. The claimed cyclic dependency apparently
disappeared when porting to Clang.
Task-number: PYSIDE-487
Change-Id: I44556fb5de92d83bd9471a41a03db9f6eeff0a31
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|