aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'dev' into wip/clangwip/clangFriedemann Kleint2017-03-2320-16/+210
|\ | | | | | | Change-Id: Ia2090c014755d23b04325f024a00a8b7641ae9cc
| * Fix connectNotify testsAlexandru Croitor2017-03-222-5/+11
| | | | | | | | | | | | | | | | | | The connectNotify signal does not get strings as argument anymore, but rather QMetaMethod values. Thus the tests should compare agains the methodSignatures of those QMetaMethods. Change-Id: I21c236514b408f08481f1c31ee2b2e2c4aed4be8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Fix qscriptvalue_test.pyAlexandru Croitor2017-03-221-0/+4
| | | | | | | | | | | | | | | | The test executed an eval() statement, which tried to access a non-imported module object. Change-Id: Ib4c9ca03ef62a62ac10bf89b085ea11b8a1a94cd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Partially fix QtScriptTools/debugger_test.pyAlexandru Croitor2017-03-223-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | The generated module library did not include all necessary dependent libraries (QtWdigets), which caused symbols not to be found on module import. The test still fails for now, due to an issue in QtScriptTools module itself, specifically continue an interrupted evaluation does not work. Change-Id: I5439509a3541674fed6113d1ed73135497fc7d2a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Fix QtMultimedia_audio testAlexandru Croitor2017-03-221-4/+4
| | | | | | | | | | | | | | | | The test was using some deprecated methods from Qt4. Fix is to use the Qt5 equivalent methods. Change-Id: Ia33747105880aa0858a37e325bc250dc598a61a3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Fix testQPrinterGetPageMargins testAlexandru Croitor2017-03-221-1/+4
| | | | | | | | | | | | | | | | Setting the pageMargins did not work on macOS because the provided values were smaller than the minimum allowed margins. Change-Id: I822262cbb535bb27cfefc98522ad88f1db868c4b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Include QQmlData private header for JS exception extractionAlexandru Croitor2017-03-221-0/+1
| | | | | | | | | | | | | | | | Apparently the necessary header is not always implicitly included, so make it explicit. Change-Id: I4e3a8b86139c7f9ce3cada43ee6e6827a3606fe3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Add QCollator and QCollatorSortKey to typesystemLiang Qi2017-03-214-0/+67
| | | | | | | | | | | | Task-number: PYSIDE-487 Change-Id: Ifd4ed0ce2b2e5ad55ee176826e642ae5539d51be Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Fix failing QML test with Qt 5.9 due to assertAlexandru Croitor2017-03-211-1/+2
| | | | | | | | | | | | | | | | | | Due to an issue in unreleased Qt 5.9 (QTBUG-58837), a QML file loaded via a relative path results in an assert crash. Fix by adjusting the path to an absolute path like in other QML examples. Change-Id: Id9e794b57a65d9605018dfd6230d66782a17a254 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Fix pointer to temporary memory in PySide::getMetaDataFromQObjectSavin Zlobec2017-03-211-1/+2
| | | | | | | | | | | | | | | | | | This caused issues when trying to retrieve signals defined in QML, apart from the fact that it caused undefined behavior. Task-number: PYSIDE-484 Change-Id: I335e30bda2e293c60f9b4dc68e19b183a75a74be Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Add QStandardPaths and QDesktopServices to typesystemLiang Qi2017-03-218-0/+102
|/ | | | | | | Task-number: PYSIDE-432 Change-Id: I26e3f3a081bc95931de775ce9820bc783eed568e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add QTextDocumentWriter to typesystemLiang Qi2017-03-204-0/+50
| | | | | | Task-number: PYSIDE-177 Change-Id: If83802bd5b37e4ffa3d6a5e8f1eace28f2e68834 Reviewed-by: Christian Tismer <tismer@stackless.com>
* typesystem_core_common.xml: Specify ComponentFormattingOption flags as listFriedemann Kleint2017-03-161-1/+1
| | | | | | | The file is then valid XML. Change-Id: Ieafe62da7c08d2e1574612679cfff94d7f8c8d1b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove Python to Cpp conversion of QStringRefFriedemann Kleint2017-03-151-5/+0
| | | | | | | | | | | | | | QStringRef cannot be assigned any value. Besides the QTextStream issue, conversions of the arguments to QStringRef were generated in Sbk_QByteArray_richcompare() in qbytearray_wrapper.cpp for Qt 5.9 which caused the comparisons to fail (QtCore::qbytearray_operator_test()). Task-number: PYSIDE-332 Task-number: PYSIDE-323 Change-Id: I0460310c8eead6d7f499d95fe68c880064204caa Reviewed-by: Christian Tismer <tismer@stackless.com>
* Define Q_QDOC while we have the old parserChristian Tismer2017-03-141-0/+8
| | | | | | | | | | | | | Defining Q_QDOC enables some more modules, since it simplifies some interfaces so the shiboken parser does not reject them. This should be removed again, when we have a really good parser. The feature was a bit forgotten. We needed to decide whether Q_QDOC is to be set or not, and we decided “Yes, for Qt 5.6 we define it”. This patch realizes that decision. Change-Id: Ic2457e3e6791ded20d9e3a10778fef4f004ede43 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix _utils.py.inChristian Tismer2017-03-131-2/+4
| | | | | | | | | | | | According to the issue, I corrected the dll name and added global variable references to the script, to keep them alive. Question: Do we keep it this way, or do we add internal references to the xml file? Task-number: PYSIDE-350 Change-Id: Idc8da7e11412cce1123cb2ff6e3e17d003e6dc53 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix errorhandling in ‘signalmanager.cpp.in’Christian Tismer2017-03-091-7/+11
| | | | | | | | | | | | It was reported that errorhandling in ‘signalmanager.cpp.in’ was wrong and PyErr_Restore might cause a segfault. I copied the error state into local variables in order to report the errors, before the errType and errValue variables are garbage collected. Task-number: PYSIDE-464 Change-Id: I220eb14a55c3de1ab225c0b45169ef2a76b5f599 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pysidetest: Add further missing include pathsFriedemann Kleint2017-03-081-0/+3
| | | | | | | | | The tests also needs QApplication and headers from libpyside. Amends 73d0821a56527e182c311e59623017fee5d69430 Task-number: PYSIDE-323 Change-Id: If59c88ffc57d73f4228df0c691c84265db52b841 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pysidetest: Add PySide2 include pathFriedemann Kleint2017-03-071-0/+1
| | | | | | | | | The test includes pyside_global.h which is generated from PySide2/global.h.in and in turn includes PySide2/qpytextobject.h. Task-number: PYSIDE-323 Change-Id: I48a1466bb797ea44c7c6062b2feccd8668f675c1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside/signalmanager.cpp: Fix compilation with Qt 5.8Friedemann Kleint2017-03-071-1/+3
| | | | | | | | QmlContextWrapper has been moved to qv4context_p.h. Task-number: PYSIDE-323 Change-Id: I047249680efe7f766278ac0280d741e4916d1f10 Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside/uiplugin: Activate C++ 11 for Qt > 5.7.1Friedemann Kleint2017-03-072-0/+9
| | | | | | | | Qt 5.8 headers fail to compile unless C++ 11 is set. Task-number: PYSIDE-323 Change-Id: I95c88cda954bcec1f15121fc7b61e1ad6e4e3565 Reviewed-by: Christian Tismer <tismer@stackless.com>
* CMakeLists.txt: Use variable Qt5Core_VERSIONFriedemann Kleint2017-03-071-1/+2
| | | | | | | | | | Qt5Core_VERSION_STRING has been deprecated and is no longer set in qtbase/lib/cmake/Qt5Core/Qt5CoreConfig.cmake as of Qt 5.9 Task-number: PYSIDE-323 Change-Id: I732c72c6dd18b018dbae194fc0caefd67b758039 Reviewed-by: Christian Tismer <tismer@stackless.com>
* pysidetest_global.h: Fix licenseFriedemann Kleint2017-03-061-27/+27
| | | | | Change-Id: I17c4f81e7119ea451086cfbf9faa605d28751371 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Handle possible Python errors when invoking a global receiver callbackAlexandru Croitor2017-03-061-0/+13
| | | | | | | | | | | | | Previously the GlobalReceiverV2 instance did not check for the occurrence of an error when calling its Python callback. This led to to skipping all processing of QEvents as described in PYSIDE-478. The fix is to check if a Python error ocurred, and print it (thus handling it, and clearing the current active error). Task-number: PYSIDE-360 Change-Id: Idc49dc6fc18da27e92043df8fbc46072efc73f72 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix manual memory allocations in signature processingAlexandru Croitor2017-02-231-4/+4
| | | | | Change-Id: I16b214d4bf48f325788aa05aef5b00e335591248 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix emission of signals with default argumentsAlexandru Croitor2017-02-232-14/+77
| | | | | | | | | | | | | | | Previously when a signal was emitted by omitting default arguments, PySide would complain that not enough arguments were given, because only one of the signal overloads was considered for emission. Fix consists in trying to find a signal overload which has the same number of arguments as given to the emit statement, as well as being marked as a cloned meta method (which for moc means a signal with default arguments). Task-number: PYSIDE-462 Change-Id: I0fc0f37bc7539a1357b8d3cda3155403fca4a763 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix some include pathsFriedemann Kleint2017-02-222-3/+3
| | | | | | | | | | Add modules since shiboken is passed only -I<Qt>/include. Set QtOpenGL instead @QT_QTOPENGL_INCLUDE_DIR@ which does not seem to be set anyhwhere. Task-number: PYSIDE-323 Change-Id: I81690b42ee58fbfc325d47d813e5c587a4a07b9d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* PySide2/global.h.in: Fix syntax errorFriedemann Kleint2017-02-221-1/+0
| | | | | | | Remove stray '/'. Change-Id: I1eeb031ca351ac0f55f3cc711fcaafb7835a6adb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Pass macOS framework directories to shiboken's preprocessorAlexandru Croitor2017-02-161-1/+11
| | | | | | | | | | | | | | | | On macOS shiboken skipped all methods that contained OpenGL types like GLuint. This happened because gl.h was included using an absolute path which is generated inside global.h.in, whereas subsequent includes like OpenGL/gltypes.h did not get resolved by the preprocessor due to missing include paths. Fix consists in taking the system framework paths that CMake knows about, and passing them as additional include paths to shiboken. Task-number: PYSIDE-457 Change-Id: Ic7d9157e95f370074b03bbfbe2f0691a0798a4df Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Revert "Fix missing python error handling in ↵Christian Tismer2017-02-151-3/+0
| | | | | | | | | | | | SignalManager::callPythonMetaMethod" The change should be reverted because the error conditions are not clarified. This reverts commit 1c9637a766a9ab9fc93259f2d19a6c11dd81121d. Change-Id: Ieb3c47516590c44aae4e273de7cbc7eb7cb0f71d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add QOpenGLBuffer to typesystemLiang Qi2017-02-154-0/+101
| | | | | | Task-number: PYSIDE-459 Change-Id: I6aebe33f440ca43f37aa5f591eeffc9395774593 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix missing python error handling in SignalManager::callPythonMetaMethodChristian Tismer2017-02-141-0/+3
| | | | | | | | | | | This is an obvious omission and easy to fix. Thanks to Savin Zlobec for the patch. You might consider to get a Jira account. Task-number: PYSIDE-360 Change-Id: I7755f7846c39c9cd9b4d83991568b018223ee938 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Warn if signals and slots are out of orderChristian Tismer2017-02-144-21/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last improvement to signals and slots registration has removed the problem that mixin classes were not handled the same as other classes. The key idea was to use the MRO to inspect all involved classes at type parsing time. The signals and slots were then sorted in ‘updateMetaObject’. The current patch enhances this solution in the following way: In ‘parsePythonType’ we re-ordered the introspection loop in a way that now all signals are extracted first. This way, they are ordered before slots automatically, and a later sorting is not necessary. Furthermore, instead of using qStableSort in ‘updateMetaObject’, we now check the sorting only with ‘is_sorted’. If the sort order becomes invalid, it will issue a warning. The latest change removes quadratic time behavior from the warning output. Important notes and implications: It is no longer relevant if slots are decorated with @QtCore.Slot(). Signals will work in normally created classes of all shapes. If classes are modified later, they may grow an incompatibility when signals appear after slots. Then you get a warning. Adendum: It makes sense to use slots whenever possible. This way, constructions as in static_metaobject_test.py work. Now handling the warning correctly when it is turned into an error. Correction: We leave the warning as-is and ignore the error! Question: The static_metaobject_test.py passes its tests suddenly, when you use @Slot() ! Why? Should we open an extra issue for that? Task-number: PYSIDE-315 Change-Id: I75c9c88787cd93251b1439db0088cd66fc0c3c97 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix PySide2 build error on CentOS 7 (qv4engine)Fredrik Averpil2017-02-111-2/+18
| | | | | | | | Some hack that makes CentOS happy. Task-number: PYSIDE-342 Change-Id: Ibdc8ed09bf32c8788967b09bb0f816b604a00e76 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add since attribute for QMimeType, QMimeDatabase in typesystemLiang Qi2017-02-091-2/+2
| | | | | | | | This amends ccfa8440. Task-number: PYSIDE-458 Change-Id: I641397751e29767493c5eccb907023d48fdab6bd Reviewed-by: Christian Tismer <tismer@stackless.com>
* Remove some simple QUuid errorsChristian Tismer2017-02-082-2/+12
| | | | | | | | | Some tests don’t work since QUuid can not currently be supported I added some conditional. It will be automatically enabled, when a platform is able to support it. Change-Id: Ic6b8b71d2c947aa3620e82a6bcc4fecfef6ee533 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove an error importing shibokenChristian Tismer2017-02-081-2/+9
| | | | | | | | | | | A long standing error was in qstandarditemmodel_test.py when shiboken2 was not found. This is due to quite weird path settings with are generated by ctest. With an adapted path setting, this now works, and we can again remove qstandarditemmodel_test.py from the blacklist. Change-Id: Ia1c3065424a5d600512c6d8e532ac8e59453a552 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add QMimeType, QMimeDatabase to typesystemLiang Qi2017-01-244-0/+86
| | | | | | | Task-number: PYSIDE-458 Change-Id: I330cae0fd3cb584f235cd3374fe74c411a792769 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix PySide QtQuick build with Qt 5.5.1Alexandru Croitor2017-01-234-6/+12
| | | | | | | | | | | | | QQuickAsyncImageProvider and QQuickImageResponse were first introduced in Qt 5.6. They were not conditionally added in PySide, and thus building with Qt 5.5.1 failed. Fix consists in conditionally building the bindings for the relevant classes and enums. Task-number: PYSIDE-355 Change-Id: Ic4fefb661931c4937af51db06eb30ea92c8466e0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix registration of signals and slots inherited from mixin classesAlexandru Croitor2017-01-194-48/+291
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously when a python QObject-derived class was parsed, only signals and slots from the top-level class were added to the corresponding DynamicQMetaObject, and any signals or slots that were defined in an inherited mixin class were registered at signal connection time. This caused issues with already existing connections because registering new signals shifted all slot indices, thus breaking the connections (no methods were called, or a wrong method was called that caused a segmentation fault). Fix consists in collecting and registering all signals, slots and properties from a given class, including the mixin clases it derives from, at type parsing time. Important notes and implications: All slots _must_ be decorated with @QtCore.Slot(), otherwise they will not be registered at type parsing time, but at signal connection time, and this _will_ cause hard-to-debug issues. @QtCore.Slot() is not needed for lambdas or free functions, because those get their own DynamicQMetaObject / QObject pair (via a GlobalReceiver instance). Dynamic addition or removal of signals and slots in most situations will not work (e.g. existing connections will break, QML engine heavily caches all method indices, and thus will also break). Task-number: PYSIDE-315 Change-Id: I6213f53653566bde60a469cd239baf969b831560 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix “Fix Segfault when using connect”Christian Tismer2017-01-161-5/+0
| | | | | | | | | | | | | | | | | | | | | | There has been an over-done correction in this issue. The issue was solved, but I also “corrected” the function “getFromType”: - I added a check for a valid object. This was wrong, it is allowed to return a null object. - I adjusted the refcount, because PyDict_GetItem returns a borrowed ref. But this was correct, since the caller added a reference. I have run all tests. The result is identical before and after my change. It was necessary to treat this case before the end of PYSIDE-315, because the new test code from Mingxiang of today hits exactly this bug. Task-number: PYSIDE-79 Task-number: PYSIDE-315 Change-Id: Id489e106a5ee7410ed32b5c4bd21d4b98e4e97a7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* PySide::MetaFunction::call: Fix error message about number of argumentsFriedemann Kleint2017-01-131-2/+11
| | | | | | | | Split into branches for too many/too few and subtract return type. Task-number: PYSIDE-462 Change-Id: I25fbbd4fd18e87c7d9b3cb79b8c2c16e1e816fac Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside: Remove some C-style castsFriedemann Kleint2017-01-129-25/+28
| | | | | | | Replace by C++ casts. Change-Id: I8f4fe35a4e1529be307728258acf302e1eb9dfe5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Stop shiboken crash due to incorrect interpretation of float[][] typesAlexandru Croitor2016-12-222-1/+6
| | | | | | | | | | | The C++ signature of the type is incorrectly interpreted as Array, which causes shiboken to crash on Linux (not on macOS). Temporarily remove the offending class from the typesystem, until the generator is fixed. Change-Id: I9fb23156cd57a7d8f0bc683e928cf8c3736768f7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Handle WId as primitive type PyLongFriedemann Kleint2016-12-224-56/+17
| | | | | | | | | Remove the platform-specific conversions from Qt 4 and add new conversion to PyLong via void *. Task-number: PYSIDE-439 Change-Id: I9826741de7b397b38631bdbb6bf12710c95fab40 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix QtQuick bindings generationAlexandru Croitor2016-12-222-11/+115
| | | | | | | | | | | | The basic QtQuick classes should work. The scene graph classes are in an incomplete state, because of issues in shiboken (missing template support, char const * const * support, shared pointer support, union support). Task-number: PYSIDE-355 Change-Id: I1adc9102638b1c46d77d402b355341998b11ebdb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add some missing OpenGL and accessibility related items to QtGuiAlexandru Croitor2016-12-222-0/+33
| | | | | | | | | This will be used by the QtQuick typesystem changes, which depend on those classes. Task-number: PYSIDE-355 Change-Id: I48f5d435b0dae38c266c62bf9ee0a3f15eb9e21a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add flags property for Qt::InputMethodQuery enumAlexandru Croitor2016-12-221-1/+1
| | | | | | Task-number: PYSIDE-355 Change-Id: I4fb327e6767e9bde64e0c358d599bbc4116bbaab Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix test QtOpenGL/qglbuffer_test.py for Python 3Friedemann Kleint2016-12-221-1/+1
| | | | | | | | | | | Use array index to extract single character, fixing: File "tests/QtOpenGL/qglbuffer_test.py", line 62, in testIt m[3] = py3k.b('A') TypeError: memoryview: invalid type for format 'B' Change-Id: If7b662e00dc2e6fb6e2371ad438d7735f1383c6b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix test QtWidgets/bug_722.pyFriedemann Kleint2016-12-221-1/+4
| | | | | | | | | | | | | | | | The test used to fail with: Traceback (most recent call last): File "bug_722.py", line 47, in testQRealSignal effect.blurRadiusChanged['qreal'].connect(foo1.setValue) # check if qreal is a valid type IndexError: Signature blurRadiusChanged(qreal) not found for signal: blurRadiusChanged The signatures changes from setBlurRadius(qreal) (Qt 4) to setBlurRadius(double) (Qt 5) due to the metaobject resolving types. Task-number: PYSIDE-431 Change-Id: I240aac7adf34220a2e1016a0ba5ed78f5f51753b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>