aboutsummaryrefslogtreecommitdiffstats
path: root/sources
Commit message (Collapse)AuthorAgeFilesLines
* Fix crash when garbage collecting in a non-GUI threadFriedemann Kleint2018-10-1516-13/+127
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Allow building shiboken2 and PySide2 as separate wheelsAlexandru Croitor2018-10-1212-76/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Implement Different Signature LayoutsChristian Tismer2018-10-114-53/+246
| | | | | | | | | | | | | | 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>
* Prepare the Signature Module For More ApplicationsChristian Tismer2018-10-1115-201/+503
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Signature: Produce Correctly Nested Python InterfacesChristian Tismer2018-10-103-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | The signature extension has been around for a while. As more and more demands arise, the quality of the generated signatures becomes more demanding: All signatures seem quite correct in PySide. But when testing the shiboken signatures, some weird results occurred. It turned out that nested classes were correctly handled by the code generator, but the produced signatures were quite wrong. Example: Before the patch: sample.ValueIdentity.multiplicator()->int After the patch: sample.Photon.ValueIdentity.multiplicator()->int This quirk becomes an issue, because now signatures are replacing the internally generated TypeError messages. Task-number: PYSIDE-510 Task-number: PYSIDE-795 Change-Id: I16a26ecc2a2d384cb3184144d3934b2606723d53 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Simplify and correct the new_inherited_functions testChristian Tismer2018-10-081-86/+67
| | | | | | | | | | | | | | | | | | | | | | The test was written when PySide2 did not have the "from PySide2 import *" feature. It was written with "try..except" constructs to find the translated modules. This did not work correctly due to the path settings in ctest. When not all modules are selected, they are still partially importable! For instance, PySide2.QtPrintSupport could be imported, although it was not compiled, and then complained since a function was not found. This is possible, because python 3 supports module directories without an __init__.py file. (I was always against that "feature".) Instead of adjusting the path setting, this patch uses the above feature and does not rely on "importability". Task-number: PYSIDE-331 Change-Id: I9aed4971f10f423918525cf411fd7ff713f40e48 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* libpyside: Fix warning about QMetaObject being forward-declared as classFriedemann Kleint2018-10-021-2/+4
| | | | | | | | | It is in fact a struct. Amends 7127a16f53fdadc709d234abf83d7fadfdf3aba7. Fixes: warning: class 'QMetaObject' was previously declared as a struct [-Wmismatched-tags] Change-Id: I3ed3d17706123f3649ac6e889080c5ab095f7e07 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* libpyside: Replace foreach by range-based forFriedemann Kleint2018-10-023-4/+4
| | | | | Change-Id: I577ca66e0bd92cfedd060b46f4946963eb91f991 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Get Rid Of "register" Warnings In Python 2Christian Tismer2018-10-022-1/+29
| | | | | | | | | | | The new clang compiler version complains when the "register" keyword is still used. This patch suppresses this warning for Python. The file "typespec.h" was corrected to include skbpython.h, too. This was found after a few warnings still did not vanish. Change-Id: I1e3299f071c6dffee4cb2596415bc195264d9a9b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* libpyside: Clean up #include directivesFriedemann Kleint2018-10-0222-82/+84
| | | | | | | | | | Remove unused #include directives, group by libpyside, libshiboken, Qt, C++ and sort alphabetically with the exception of sbkpython.h which sanitizes the "slot" defines and needs to go to the top when used). Add the module to the Qt classes. Change-Id: I33d912135bad928d3073a1ddeb487de237d6a45e Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Check whether enum should be converted to int for the protected hackFriedemann Kleint2018-10-017-2/+47
| | | | | | | | | | | Find the AbstractMetaEnum belonging to the type entry and perform some checks. Generally do not use int for public enums. Warn when a protected scoped enum is encountered as this cannot be converted. Task-number: PYSIDE-817 Change-Id: I02b566093b331ea2ea627bf72964aad0a1a51c83 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside: Remove deprecated GlobalReceiverFriedemann Kleint2018-10-015-459/+0
| | | | | Change-Id: Ied37d22fbd8277811aaea15af0018cec545814c7 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide2: Replace macro check_qt_class by the Qt configure systemFriedemann Kleint2018-10-014-100/+62
| | | | | | | | | | | | 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>
* shiboken: Refactor finding of enumsFriedemann Kleint2018-09-287-66/+17
| | | | | | | | | | In the AbstractMetaBuilder, change the list of enums into a QHash with the type entry as key since that is mostly used for searching. Streamline and simplify the search functionality accordingly. Task-number: PYSIDE-817 Change-Id: I205cad1f90bc26511ea6b6e9b76ddb1bae544cf1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken/AbstractMetaBuilder: Remove unused member variablesFriedemann Kleint2018-09-282-23/+0
| | | | | | Task-number: PYSIDE-817 Change-Id: Id7e8fb1b18abb51d6fdf450c4069e5ba88b53285 Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside: Fix reinterpret_casts related to DynamicQMetaObjectFriedemann Kleint2018-09-284-14/+73
| | | | | | | | | | | | | | Previously, DynamicQMetaObject instances were retrieved by direct reinterpret_cast from the SBK user data. This is not entirely correct since the DynamicQMetaObject is merely the first member of the struct TypeUserData. Fix this by moving the struct TypeUserData to a private header and correcting the casts. Task-number: PYSIDE-784 Change-Id: I69ea68bd474c4a38a5f5c5bc3db8bc3bb086e012 Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside: Replace configuration of signalmanager.cpp by definesFriedemann Kleint2018-09-272-7/+5
| | | | | | | | | This makes the development process easier. Task-number: PYSIDE-784 Change-Id: I07ced4b25b65c90e5a17d85be9b8f15a26e5d07d Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add exception handlingFriedemann Kleint2018-09-2719-15/+394
| | | | | | | | | | | | | Add XML elements specifying an exception handling mode to type system, complex type entries (classes) and function modifications. From the mode and the exception specification as detected by Clang, deduce whether to generate try/catch code. Task-number: PYSIDE-62 Change-Id: Ib76adc21cefd81bf9f82f819a3c151056c33a3b7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* libshiboken: Remove left-over warnings pragmaFriedemann Kleint2018-09-251-4/+0
| | | | | | | | | Remove left-over from f61be404a9e197af33e169d1e81afb8df3f0546e, fixing: shiboken2\autodecref.h(109): warning C4193: #pragma warning(pop): no matching '#pragma warning(push)' Change-Id: I82a2b8627cd88393436568e12839a1ae988ac0dc Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Initialize pointer members of TypedefEntryFriedemann Kleint2018-09-211-2/+2
| | | | | | | | Amends 2bfd1de3495b18c0ecc251260442a9a46009861e Task-number: PYSIDE-725 Change-Id: I4adb9022feee954ca65dc60f07bf71bd9b92dc11 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Flip the default behavior the --api-version optionFriedemann Kleint2018-09-2112-18/+76
| | | | | | | | | | | | | | | | | | | | | When no option was passed, all type system entries with a "since" would be silently excluded. For example, the scriptable application would only see Qt API that does not have a "since" attribute. This could be fixed by adding version options for all dependent Qt libraries it uses to the build steps, but this is tedious and error-prone. Flip the behavior such that an empty version list specification means "latest". Add helper functionality to clear the versions to the TypeDatabase and use that in the tests to start out with a clean list. Change the tests to use a QString for the version. Add a test for the new behavior. Task-number: PYSIDE-814 Change-Id: Ie6137ba6095ce562813bacbadbf4028d0e2c061f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devFriedemann Kleint2018-09-214-3/+55872
|\ | | | | | | Change-Id: Ie4320a6ac584ec47ed8eaca538453a8e5b123c42
| * Release Py_buffer after gets its underlying pointerBoxiang Sun2018-09-191-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | PyObject_GetBuffer will increment the reference of Py_buffer, when the buffer is no longer being used, we should call PyBuffer_Release to reduce the reference count. See https://docs.python.org/3/c-api/buffer.html#c.PyBuffer_Release Task-number: PYSIDE-140 Change-Id: Ia7c231aff317252db83b2405237031fc73af2651 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Update the Registry After Explicit Linux NamingChristian Tismer2018-09-133-0/+55868
| | | | | | | | | | | | | | | | | | | | | | Linux is now renamed in a way that the Linux distributions are recognized. The names are a _bit_ verbose, but this works, at least :-) Task-number: PYSIDE-510 Change-Id: Icd52cc92aa0e0b9c6e6b38e632cb89d09766c190 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Add forgotten version numbers to typedefs for QCborStringResultEike Ziller2018-09-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | libshikoken: Refactor the Visitor class hierarchyFriedemann Kleint2018-09-192-93/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementing the deleteInMainThread feature requires being able to collect a list of destructors and potentially storing it. This requires splitting out the actual deallocation/destructor calls from the DtorCallerVisitor and DeallocVisitor classes. Since this is the only use of the virtual HierarchyVisitor::done() method (and it does not really belong to the visitor pattern), remove it. Change the void visit() method into a bool from which true can be returned to terminate. The finish()/wasFinished() methods can then also be removed from HierarchyVisitor and the code simplified accordingly. Replace the DtorCallerVisitor and DeallocVisitor classes by DtorAccumulatorVisitor that collects a list of DestructorEntry structs containing destructor function and C++ instance. Polish the code a bit, use member initialization, add override, move implementations to source and some spacing for clarity. Task-number: PYSIDE-810 Change-Id: I5e3ef6df753679ec111a5f0d1b75305bd5cf1c0c Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Use correct function to find the typesystem entry when parsingFriedemann Kleint2018-09-181-2/+2
| | | | | | | | | | Change-Id: I8f8138e405eaac86cd3012b703c28ff77aa4e2c8 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Refactor code for querying functions of AbstractMetaClassFriedemann Kleint2018-09-182-53/+81
| | | | | | | | | | | | | | | | | | Move the checking code to a static method taking an AbstractMetaFunction and add static methods operating on a list. This makes it possible to implement checks without constructing temporary lists. Change-Id: I9b137858f81396f8243f2d1be5277e6a38be4c84 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Use member initialization in typesystem XML parserFriedemann Kleint2018-09-182-14/+10
| | | | | | | | | | Change-Id: I38b9e8a457371f5e364b06fc90821753df4af3e9 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Simplify code looking for copy constructorsFriedemann Kleint2018-09-183-15/+11
| | | | | | | | | | | | | | | | | | Replace various loops operating on lists by a convenience function AbstractMetaFunction *AbstractMetaClass::copyConstructor() const Change-Id: If38b954ae01856a84835a17a7e4d3e981b5aac9b Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Extend exception specificationFriedemann Kleint2018-09-179-25/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | Change boolean 'noexcept' flag into an enumeration that indicates whether a function throws, is 'noexcept' or the behavior is unknown. This makes it easier to implement an 'auto' mode for exception handling. Task-number: PYSIDE-62 Change-Id: I4e5405863e5af2a54f3528ba5eb5c51d3929703d Reviewed-by: Christian Tismer <tismer@stackless.com>
* | PySide2: Base the QMatrix<R>x<C> on QGenericMatrixFriedemann Kleint2018-09-143-330/+55
| | | | | | | | | | | | | | | | | | | | 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>
* | shiboken: Do not generate implicit conversions for array-modified constructorsFriedemann Kleint2018-09-143-2/+15
| | | | | | | | | | | | | | | | | | | | | | Otherwise, syntax errors would be generated for QMatrix2x2(const float*), which is an array. Change-Id: Ic5c67e221934a4635c2bbeb83cd378ff4a02af66 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Improve handling of non-type template integer parametersFriedemann Kleint2018-09-138-18/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When trying to specify the base class template<int R, int C> QGenericMatrix of the QMatrixRxN classes, clashes of the SBK..IDX enumeration values occurred since the integers were not part of the type name. Fix that by dynamically adding dummy entries of EnumValueTypeEntry for the integer values encountered on the fly. Task-number: PYSIDE-725 Change-Id: Ie6b4489b5293e04b7c2c76861341c99b136cd558 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge remote-tracking branch 'origin/5.11' into devFriedemann Kleint2018-09-133-2/+37691
|\| | | | | | | Change-Id: I7f60b78b0c962e4faf3688581e7f550813d1a413
| * Update the Signature Registry After ResetChristian Tismer2018-09-133-2/+37691
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New exists_{platf}_{version}_ci.py have created, after the registry was reset in the last commit. We had a problem with differences between Linux versions which led to incompatibilities. Therefore, the platform name has been changed for Linux: We now distinguish Linux platforms by name and version by using platform.linux_distribution([:2]). Example.. "Ubuntu 16.04" becomes 'ubuntu1604'. When this checkin succeeds, we will need another last checkin. Change-Id: I98511ee6fc3273055d1990a2cf4f2c028a430455 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | shiboken: Fix warnings about unused variablesFriedemann Kleint2018-09-132-1/+1
| | | | | | | | | | | | | | | | sources/shiboken2/tests/libsample/objecttype.cpp:283:17: warning: unused variable 'fake_child' [-Wunused-variable] sources/shiboken2/ApiExtractor/doxygenparser.cpp:71:15: warning: unused variable 'numPrefixes' [-Wunused-variable] Change-Id: I409f22e1450e9ae0f3f5924cb6dd47991d12a2ad Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Add default constructible with default valuesFriedemann Kleint2018-09-132-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend the check for default constructible by also checking whether the first argument has an unmodified default value, for example: explicit QSqlIndex(const QString &cursorName = QString(), const QString &name = QString()); This can be treated like default constructible, except that {} may not be used for return values. Task-number: PYSIDE-62 Change-Id: I70af2a624de54201158a4b56e51b67ef115c2fc6 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Refactor Generator::minimalConstructor(AbstractMetaClass)Friedemann Kleint2018-09-134-91/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Friedemann Kleint2018-09-1210-55778/+416
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/5.11' into devFriedemann Kleint2018-09-1210-55778/+416
| |\| | | | | | | | | | Change-Id: Ie346fe7d7ac85ce0b82806904044680713375bf0
| | * shiboken/pep384: Avoid warning by literal comparisonCristian Maureira-Fredes2018-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Even though we are certain of the comparison, better to get rid of the warnings. Change-Id: Iafa51b4c59c2315b24fc9092d18792f0c9297553 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| | * Add explanation to findChild/findChildren methodsCristian Maureira-Fredes2018-09-121-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Automate Parsing COIN testresults for exists_{platf}_{version}_ci.pyChristian Tismer2018-09-102-2/+369
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The extraction of exists_{platf}_{version}_ci.py has been done by editing the testresults of COIN test by hand. Since the beginning of the year, this has become tedious, because COIN now surrounds everything with time stamps. This script scans the whole website and extracts all such files. Creation of the generated python pages becomes really easy now. The initial scan takes below 30 minutes. Then it will only parse new URLs. Task-number: PYSIDE-510 Change-Id: I1273f8a77596ced16c7a3653c89736c3e1796540 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| | * Reset the Signature Registry after the Total ScanChristian Tismer2018-09-106-55775/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After scanning the whole COIN test website, a lot of changes were found which we missed by manually inspectation. This update contains the essence of all changes which accumulated on the server. They were sorted by date, and the latest version was taken. Then, the license headers were updated, because that had been done already on the repository. Update ------ This check-in did not work on 2018-09-07. The reason was that we changed the PySide version to 5.11.2, which was not yet in my update. While re-doing the generation, I realized that we will not automatically get the 5.11.2 version, because of the "fallback". feature. To reset the existence file, we need to remove them once. After the checkin, all the files will be freshly created. I propose also to disable the "fallback" feature. In the presence of the multiple COIN testing, it is no more necessary. Change-Id: I43af314f7bd233a4190762c7204e8aecf81bfe72 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | libpyside: Fix contains()/value() antipatternFriedemann Kleint2018-09-123-13/+18
|/ / | | | | | | | | | | | | | | Use iterators instead, avoiding repeated lookups of hashes and maps. Change-Id: I3b430bdf0ceef1980baeca45849880d35538e89b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | PySide2: Silence warnings about not finding functions for modificationFriedemann Kleint2018-09-122-43/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
* | libpyside: Fix deprecation warningFriedemann Kleint2018-09-121-1/+1
| | | | | | | | | | | | | | | | Expand code to fix: signalmanager.cpp:328:41: warning: 'int PySide::SignalManager::addGlobalSlotGetIndex(const char*, PyObject*)' is deprecated [-Wdeprecated-declarations] Change-Id: I5ada505b8ed9a8bd7e604633bc672109450ede6f Reviewed-by: Christian Tismer <tismer@stackless.com>
* | pysidetest: Remove old cmake policyFriedemann Kleint2018-09-121-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Fix warning: CMake Deprecation Warning at tests/pysidetest/CMakeLists.txt:7 (cmake_policy): The OLD behavior for policy CMP0020 will be removed from a future version of CMake. cmake should be smart enough to figure CMP0020 (automatic linking of qtmain.lib on Windows) out by itself. Change-Id: I3f0fb53158217be87b2c7971d84b19359998970c Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Introduce DefaultValueFriedemann Kleint2018-09-124-64/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a small class storing the return value of Generator::minimalConstructor() consisting of a type enumeration and a value, offering formatting for the use cases variable initializations, return values and constructor arguments lists. Having distinct formatting for the different use cases has some advantages: - Can use nullptr without casts (except in constructor arguments lists, where the type is needed for disambiguation). - In the previous implementation using a string, "" indicated an error; so, it was not possible to use it for default-constructors. It is now possible to handle default-constructors for initialization ("Foo f" instead of "Foo f = Foo()". - Can use {} for return values. Task-number: PYSIDE-62 Change-Id: I73229cb957d4b92b43de4cdbc3c66703f48faa61 Reviewed-by: Christian Tismer <tismer@stackless.com>