aboutsummaryrefslogtreecommitdiffstats
path: root/sources
Commit message (Collapse)AuthorAgeFilesLines
* Revert "shiboken: Disambiguate indexes of smart pointer types"Friedemann Kleint2019-06-131-4/+1
| | | | | | | | | | | | This is not the proper fix for the issue. The index of the declaring module needs to be used for this to work. This reverts commit d2d0e397309a1b18eaff9ddee0940007f0e1c4bf. Task-number: PYSIDE-1024 Change-Id: Idc0e859ebda1626b5e841aa96be54317a5f3d0d0 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix handling shared pointers passed by const-ref, take 2Friedemann Kleint2019-06-132-5/+9
| | | | | | | | | | | | | | | | With fd126b28e1d9b02ea16c813bc392461bdb05bd1d, broken wrapper code would still be generated for "const_QSharedPointer_QSize___&" depending on whether the const-ref or plain value type was encountered first when parsing. Fix the problem by stripping the qualifiers from the metatype added to GeneratorPrivate::m_instantiatedSmartPointers partially reverting fd126b28e1d9b02ea16c813bc392461bdb05bd1d. Change-Id: Ie6691e045b7d65baa3a0bc72dd8637f09eeaf111 Fixes: PYSIDE-1016 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Enable specifying names for a parameters of added functionsFriedemann Kleint2019-06-055-10/+59
| | | | | | | | | | Introduce a way to specify a name for a parameter using '@' delimiters. Fixes: PYSIDE-1017 Change-Id: I3ae505c104a64413ca2bad628d9f9d3e04bb5b88 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Signature: Try to recognize unknown modules in errorhandler.pyChristian Tismer2019-05-301-52/+42
| | | | | | | | | | | | There were unknown modules built with shiboken which mapping.py did not recognize. This is too restrictive, since we can import this module and try to produce something useful. This was rewritten to respect every binary module in sys.modules . Change-Id: I6626c69f002c307bae3eb78a557d1a7309983324 Fixes: PYSIDE-1009 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Complete the help() support for TypesChristian Tismer2019-01-183-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | The help() support based upon the Signature module worked fine but for types. The reason was that the __signature__ module was a new attribute, while __doc__ already existed through an inheritance-like mechanism. When we add __doc__ later, the attributes are already in the cache. PyType_Modified(type) does not help in PySide. The solution was to add tp_getset to the metaclass SbkObjectType_Type which otherwise would have been reached from PyType_Type ('type' in Python). Note.. It makes sense to add the injected documentation to the __doc__ strings as well. This enables help output even with the py_doc web service! Task-number: PYSIDE-908 Change-Id: I09dd4bc6746ee41566a467604c4a68de5d66f94b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix negative refcount on QSocketNotifierChristian Tismer2019-06-102-2/+3
| | | | | | | | | | | | | | | Change 43451e3bc17467593df64cb73ce8c0bf9e60045f from 2018-05-09 introduced a refcount bug that was not caught because we do not build with debug Python. This also revealed an omission in the patch "PySide: Allow any existing attribute in the constructor" when debug Python is used. Change-Id: Idbcbbc87f0a83bb696d03e05af0cf616b21f7335 Fixes: PYSIDE-1027 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Bump version strings to 5.12.4Simo Fält2019-06-102-2/+2
| | | | | Change-Id: If1386242c31e00412f289c9137c6a0427355ed9c Reviewed-by: Christian Tismer <tismer@stackless.com>
* Shiboken: prune non-existent includeJulien Schueller2019-05-281-2/+1
| | | | | Change-Id: I58f872d1e8abf2b624f37434c14e9ef6ea912749 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide: Allow any existing attribute in the constructorChristian Tismer2019-06-043-16/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are signals and properties which are correctly supported in PySide by the function "fillQtProperties". The structures are introspected by calling "QMetaObject::indexOfSignal" and "QMetaObject::indexOfProperty". By allowing any property, extending the above restriction, we break the Qt API slightly, but have the tremendous advantage of being able to write all needed properties into the constructor call. This approach is a compromize that keeps the attribute calls as they currently are. Supporting real properties where we actually have getter and setter functions would be possible as well, but that would break compatibility very much! It has to be discussed if we want to support a configuration switch that enables this incompatible change. If we would go this far, then I would do this together with changing mixedCase to lower_case. A simple test case has been added. Task-number: PYSIDE-1019 Change-Id: I8094df51d63aa767a5a9ec1c83bcf7db7b157a01 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* CMake: Change the default behavior CMAKE_BUILD_TYPEJulien Schueller2019-06-063-9/+8
| | | | | | | | | | | | | | | | | Instead of setting CMAKE_BUILD_TYPE as a regular variable, set it as a cache value, but only as a default. If the user specifies -DCMAKE_BUILD_TYPE=Foo on the command line, that will take priority. PySide2 will inherit the build type from the shiboken build, also unless explicitly specified on the command line. Fix missing quotes around the build type in shiboken_helpers.cmake. Task-number: PYSIDE-980 Change-Id: I2f7e5f71b66467ca5b30056c42d26d9a54ff265b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Disambiguate indexes of smart pointer typesFriedemann Kleint2019-06-061-1/+4
| | | | | | | | | | Add the module name like it is done for namespaces and containers. Task-number: PYSIDE-1024 Change-Id: Iba8589bfe360763bc186e5129d0ba480b2fb58ae Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* correct bool(qApp) on Python 2Christian Tismer2019-06-062-2/+32
| | | | | | | | | | | | | | | | | | | | | | | The idiom to create an application if none exists qApp or QApplication() did not work on Python 2. This was recognized when another unrelated test broke that tried to use the idiom. This patch adds the missing method to Py_TYPE(Py_None) which Python 3 already has. A test case was added. Side-effect.. The warning about missing braces is gone, after the "PYTHON_IS_PYTHON3" macro is defined. This was forgotten in the review when when the macro was moved out of signature.cpp . Task-number: PYSIDE-571 Change-Id: I9b9304f407cd4cafb3ba0945ffb045802503a343 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix generation of init functions and types for const-refs of smart ↵Friedemann Kleint2019-06-064-2/+19
| | | | | | | | | | | | | | pointers Add a convenience to strip all qualifiers and use that. This at least fixes the naming (for example, getInitFunctionName returning "const_QSharedPointer_QSize___&"), the init function for the type itself is missing, though. Task-number: PYSIDE-1016 Change-Id: Id61b3c879199fc061e2846007951e3e9c82b85c4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Implement the Buffer Protocol on VoidPtrRenaud Aubin2019-06-052-3/+91
| | | | | | | | | | Some use cases need direct data access for performance, e.g. initializing QPolygonF data with numpy.frombuffer. Implementing the Buffer Protocol as described in PEP3118 will allow direct data access. Change-Id: I13c46055b1cba115d099f1becb64c4cd04acdf0e Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix build on centOS/conda forgeFriedemann Kleint2019-05-292-5/+21
| | | | | | | | | | | - Check for the OS name case-insensitively - Use the compiler from cmake via a define - Add sysroot header directory to internal include paths - Extend centOS version to 6.10 Change-Id: Ia3977f3331d51f9bc530accb8defa5fcb648bdfe Fixes: PYSIDE-1012 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Update pyside2-tools submoduleFriedemann Kleint2019-05-271-0/+0
| | | | | | | Change-Id: I779fae6d11955d7df596020b78068c613d7ea634 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Make the __signature__ attribute writable by defaultChristian Tismer2019-05-271-21/+85
| | | | | | | | | | | | | | | | It turned out that the mock tool of the unittest module wants to write into a __signature__ attribute. We now allow this by implementing a writable attribute that memorizes any written value. When __del__ is used, the original value re-appears. We further added a check if a computed __signature__ attribute exists. Then we don't allow write access. This way, defined signatures are read-only, but a non-existent attribute stays writable. Change-Id: Ib70de723e3160787df04e075e5c540a4cb24d410 Fixes: PYSIDE-1004 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Make it possible to extend namespacesFriedemann Kleint2019-05-2220-40/+309
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt has some modules, where functions and classes are added to namespaces of other modules. For example, QtGui adds the free functions mightBeRichText() and convertFromPlainText() to the "Qt" namespace and Qt3DQuick adds a namespace "Quick" to the namespace "Qt3DCore" started in Qt3DCore. Shiboken was unable to handle this since the name of the index constant was derived from the namespace name and would thus clash. Also, all code model items from the base module would be re-generated into the extended namespace. To fix this: - No longer join namespace code model items in clang builder. - Search for pre-existing namespaces in traverseNamespace() before creating a new one, continuing populating it. - Add a "files" attribute taking a regular expression to match header names to the namespace type entry, making it possible to restrict code model items by files when extending namespaces (as otherwise, all base items are again added). - Add "extends" attribute specifying the package name of the namespace to extend, which will be used as base type in CPython. - Disambiguate the SBK indexes of namespaces and the init_ functions by adding the module name. Change-Id: Ib552e878911942fa4d52d2bb0c6695e5b2c4c341 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix propagation of existing LD env vars when calling generate_pyiAlexandru Croitor2019-05-211-9/+20
| | | | | | | | | | | Existing PATH, LD_LIBRARIES_PATH or DYLD_LIBRARY_PATH values should be appended to the ones we set ourselves. This takes care of finding any system libraries which a distro / OS might set by default. Change-Id: I1b3d1ea20c024e8ffcba3fb38d9088917130abfe Fixes: PYSIDE-1008 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* generate_pyi: Simplify, Enhance and Get Rid Of Any Import ProblemsChristian Tismer2019-05-192-153/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The generate_pyi.py script always had the problem that it was not easy to distinguish different kinds of ImportError. When ImportError was raised during a build, we assumed it was just a not-yet built module and ignored it. When patch 97df448e "Modernize cmake build" was checked in on 2019-02-07, a real import error was introduced on Windows. It was not recognized until 2019-05-13 that Windows had stopped generating .pyi files. It was discovered by working on an enhancement to dependency checks that erroneously looked for "libshiboken*" on windows. This should have raised an error in "generate_pyi.py" but did not, because the generation was skipped due to the real ImportError. General Redesign ---------------- It turned out that all the former difficulties with importing modules could be completely avoided, by explicitly using the inherent dependencies. The script was drastically simplified by using the module name as an argument. It was not clear in the first place that this would work, but actually we recognized that all modules a script wants to import are already built when CMake starts the .pyi generation. The only visible quirk is the pair QtMultimedia/QtMultimediaWidgets where both modules must be compiled before generating. (maybe that is an error in our XML files, or a Qt "feature"?) Enhancements ------------ The generate_pyi script is now completely deterministic, because all imports are enforced to work. There is no more polling for translated modules necessary. Everything is generated after a module was linked, The "--skip" semantic was first enhanced much further. In the end it was recognized that we don't need the parameter any longer, because with the determinism we are never computing a pyi file more than once. The parameter was then completely removed. The "--check" option was added for Python 3. It takes some time and is only automatically active in a COIN build. Task-number: PYSIDE-735 Change-Id: I3cc58f6cad80d8208e17f62d472fd48aa6aeebd6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix pyi generation on WindowsAlexandru Croitor2019-05-141-0/+13
| | | | | | | | | | | | | | When trying to generate the pyi files on Windows, the python modules failed to be imported due to Qt dlls not being in PATH. This happened because we overrode PATH instead of prepending to it. When generating pyi files on Windows, make sure to prepend new values to PATH while also keeping the old values. Amends 97df448edbc035a2f531508a5cfe5739fb2de18d Change-Id: I74c374c3a9687169dd4af0ed232bda76a0267fc4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add Some Hints For Dealing With PyInstallerChristian Tismer2019-05-141-0/+49
| | | | | | | | | | | | PyInstaller has a bug when multiple versions are installed. There are also some other traps which can give additional trouble. The "--reuse-build" problems have vanished meanwhile and were removed. The numpy problem with Python 2.7.16 was added. Change-Id: I6c60d8ee823963b59fc6b65a6ab8007314e4098c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix Shiboken.ObjectType.__new__ for Python 2.7 V2Christian Tismer2019-05-141-11/+88
| | | | | | | | | | | | | | | The original change gave assertion errors and had to be replaced. We now change the heap type flag temporarily in the call to Shiboken.ObjectType.__new__ and restore it afterwards. Change-Id: Ib15ecf2882739dc47db742c2a79e6269cdbb94b6 Fixes: PYSIDE-816 Fixes: PYSIDE-1003 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Port property/signal/slot handling of libpyside to use QByteArrayFriedemann Kleint2019-05-066-227/+171
| | | | | | | | | | Introduce C++ structs with QByteArray to be used for signal and slot names and signatures, removing a lot of code dealing with char * pointers, strdup() and reallocating. Change-Id: I28acf727bc6cf468285b153c85b0a342fd79f7d8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Fix some spelling errors in function namesFriedemann Kleint2019-05-043-6/+6
| | | | | | | | getMultipleIheritanceFunction() -> getMultipleInheritanceFunction() copyMultimpleheritance() -> copyMultipleInheritance() Change-Id: If15b1ec12b6037ac8cff9941e09a281bc219fa20 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Refactor code generating multiple inheritanceFriedemann Kleint2019-05-033-34/+20
| | | | | | | | | - Remove the check function hasMultipleInheritanceInAncestry(), which is nearly identical to getMultipleInheritingClass(). - Modernize the generated code to use C++ casts, uintptr_t and streamline Change-Id: I68f52c2cbf1a589fd31c9c73919365176c56932e Reviewed-by: Christian Tismer <tismer@stackless.com>
* Use PyUnicode_GetLength instead of PyUnicode_GetSizeCristian Maureira-Fredes2019-05-032-1/+7
| | | | | | | | The function PyUnicode_GetSize is deprecated. Change-Id: I0bc0acd35424f29e1f5154deb0429dab5a4aabd4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* libpyside: Refactor code building the signatureFriedemann Kleint2019-05-021-4/+4
| | | | | | | | | The function slotCall() used the now deprecated function QString::sprintf(). Rewrite the code using QByteArray since converting to QString and back is wasteful for the purpose. Change-Id: Ifcd50e76bb7ea0c9d2f2e7453c6e265abe6265b7 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add PySide2: Add OpenGL version functions as separate moduleFriedemann Kleint2019-05-0231-15/+1654
| | | | | | | | | The OpenGL version functions produce a lot of library code, so, add them as a separate module. Task-number: PYSIDE-955 Change-Id: I44737f4741f0a81f46a192961173e154ae66698e Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken documentation: Move TOC to index pageFriedemann Kleint2019-04-302-22/+15
| | | | | Change-Id: I0f7c6a303cb0d404c42ae96f067eece1442c4a33 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken/Generators: Cache class information lists per classFriedemann Kleint2019-04-303-30/+89
| | | | | | | | | | | | | | | | | | The function ShibokenGenerator::getFunctionGroups(class) is called many times for each function during code generation and causes a slowdown for the OpenGL version function classes, which have 1000 member functions. Split away getGlobalFunctionGroups() for the case scope=0 and introduce a global-static cache for class information that is more involved to determine for use by the various generators. Speeds up the generation of the QtGui module including the OpenGL version functions from 420s to 90s. Task-number: PYSIDE-955 Change-Id: I6b6aa35ef2197aa9cddbf339db9eb0220932f361 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Refactor progress message output handlingFriedemann Kleint2019-04-306-68/+65
| | | | | | | | | | | | In class ReportHandler, replace the step counting by a simple pair of startProgress()/endProgress() functions that check for warnings and print the appropriate terminator. Module name and timestamp are now also printed. Add a few more messages and give proper names to the generators. Change-Id: I92b4ef2854b824fbba3d371417edc1f88561a2cb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Avoid too much stickiness when using --reuse-buildChristian Tismer2019-04-262-5/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We had some unwanted cache effects and needed to manually remove certain files before building. Otherwise it could happen that a build pretended to be ok, although there was a bug that prevented generation of the ".pyi" files. Further investigation showed: Using option "--reuse-build" with "no" and then with "yes" creates errors in the signature module. This makes "reuse-build" useless in this case. We now add an "a" to "pyside3d_build" as "pside3da_build" if "--limited-api=yes" was given. (different proposals welcome.) That solved most of the stickiness problems. A left-over lock directory is removed now, since it would prevent re-computation of the .pyi files. This is implemented by a recursive call to the script, where the subprocess does the work and the main process checks if there was a crash and removes the lock. The "--skip" parameter of generate_pyi.py was refined: When set, it is checked if the time stamp of all imported modules is less than the ".pyi" file time stamp. Only then the generation is skipped. By editing any involved python file, the ".pyi" files will be regenerated. Task-number: PYSIDE-560 Change-Id: I1b1d8ffbc58db3d4b38bf65e3795efcad7e7870c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix warnings about signatures 'setUniformValue(const char*,...)' not being foundFriedemann Kleint2019-04-265-10/+13
| | | | | | | | | | | | | | | | | | | Use a regular expression with the types, fixing: qt.shiboken: (gui) signature 'setUniformValue(const char*,GLfloat)' (specified as 'setUniformValue(const char*, GLfloat)') for function modification in 'QOpenGLShaderProgram' not found. Possible candidates: ... setUniformValue(const char*,float,float,float,float) in QOpenGLShaderProgram setUniformValue(const char*,int) in QOpenGLShaderProgram setUniformValue(const char*,uint) in QOpenGLShaderProgram ... Amends 05ae61cba5f943eb58343b44f8d474bc88bf0ce4 Task-number: PYSIDE-989 Change-Id: Ib12ca0309dfa46cca87e8deb546378b185a56b66 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken2: Enable documentation generation with libxml2/libxsltFriedemann Kleint2019-04-2515-190/+631
| | | | | | | | | | | | | | | As QtXmlPatterns is deprecated in Qt 5.14, the documentation build needs to be changed to work with libxml2/libxslt exclusively. Split the XML functionality into separate files for libxslt and Qt and provide an interface for XPATH queries and XSLT transformations in xmlutils.h. Adapt testmodifydocumentation to work on temporary files as libxslt cannot handle Qt resources. Change-Id: I923f5b2e7c1d2511f15788e4b80c7721daeb2bc3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Output module name in "done" messageFriedemann Kleint2019-04-253-9/+21
| | | | | | | | Move the formatting of the "done" message to the report handler and add the prefix, which is the module name. Change-Id: I63aa1f48f02709d6e89d9a9a684d56a218e65fd3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add explicit methods for QOpenGLShaderProgramm.setUniformValue (i/f)Cristian Maureira-Fredes2019-04-242-0/+30
| | | | | | | | | | | | | | | | | | | Selecting which overload to use is in hands of the shader program code that defines the type, then it is better to explicitly call signatures that are overloaded using number types, specially for OpenGL. This change will help with PYSIDE-989, because it will allow to call `setUniformValue1f` without having the problem of using the generic `setUniformValue` that will end in calling the wrong method (the integer one). Since the primitive type conversion is a separate global issue, another task has been opened PYSIDE-1000. Task-number: PYSIDE-989 Change-Id: I77e5616e081e570bee880a1a403faf3cf6c55099 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Tutorials: Fix some sphinx warnings about unexpected indentationFriedemann Kleint2019-04-245-2/+23
| | | | | Change-Id: I1415417ab761c57e64c0f031a9b63b5f85c9c7c7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Remove CMake dead codeAlexandru Croitor2019-04-232-49/+0
| | | | | Change-Id: Icb2d3702972a2dc49ee296b2111811ff75b162fc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Modernize and clean up some of the shiboken build system filesAlexandru Croitor2019-04-2015-155/+79
| | | | | | | | | | | | | | Use target_* commands instead of subdirectory based commands for adding link options, compile definitions, include directories, etc. Remove some non-used compile definitions. Move around some of the find_package() and option() calls. Simplify some of the package dependent logic. Replace the qt include and linking variables with CMake targets. Change-Id: I815595344e63a32dce3dc78652359beede3ff593 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix shiboken not to fail building when doc dependencies are missingAlexandru Croitor2019-04-184-12/+15
| | | | | | | | | | | QtXmlPatterns is now deprecated, and until we port to some other library, the CI will not have XmlPatterns anymore. Change the build system of shiboken to skip building the documentation parts if the dependency is missing. Change-Id: I75d38502cd1efa84f7ec148622ffbf26084d0c35 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Declare XML files to be in encoding UTF-8Friedemann Kleint2019-04-1869-69/+69
| | | | | | | | Some XML tools trip over the missing character set. Change-Id: Icbe1b2485325b70c4772b6a370a98fd529437a8a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make the PepType_AS_BUFFER definition completeChristian Tismer2019-04-162-4/+1
| | | | | | | | | | PepType_AS_BUFFER should also be defined for the non-Limited API version to avoid ugly #ifdef constructs. This patch augments the definition and simplifies qtcore.cpp . Change-Id: Iddfb39e8afaf992f4edf72d871eec1eaf85d5963 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken: Enable including typesystem XML snippets via entitiesFriedemann Kleint2019-04-165-0/+104
| | | | | | | | | | | | Implement a QXmlStreamEntityResolver which resolves undeclared entities to file names in the type system include path. This is a work-around for the missing handling of standard externally parsed entities of QXmlStreamReader. Task-number: PYSIDE-955 Change-Id: I68ebae8ad465ae460c3a0eeadaef22dca2101e6c Reviewed-by: Christian Tismer <tismer@stackless.com>
* Revert an unwanted debug change in generate_pyi.pyChristian Tismer2019-04-161-5/+1
| | | | | | | | | | | During the complications with embedding and PyInstaller, an error condition was temporarily left in the code. It is now removed. Change-Id: I9113081dbbcbc84534517c72308eb1d25fbf201c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Ensure that signature strings never overflow againChristian Tismer2019-04-166-39/+63
| | | | | | | | | | | | | | | | | | | | The signature module used to use large strings with the signatures of all functions in a class. This can lead to an overflow in MSVC, because the maximum string length funnily still is 32K unicode characters. This patch solves that by using a single string per function. Instead of a huge string, a list of strings is passed to each class. To prevent any runtime increase, the string list creation is deferred until the actual usage. At initialization time only a ssize_t holding the structure address is passed. As a result, the signature module should be even slightly faster. Task-number: PYSIDE-955 Change-Id: I99faf942a3cca03456928b8aec5e8a4b9924b8b2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Signatures: Add support for PySide2.QtCore.short/ushort/signed charFriedemann Kleint2019-04-161-0/+3
| | | | | | Task-number: PYSIDE-955 Change-Id: I2b4c05281cd44a32257039f62adad89004208b77 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Cleanup And Simplify the Signature Related CodeChristian Tismer2019-04-167-151/+116
| | | | | | Task-number: PYSIDE-510 Change-Id: I73c441b56a19a0ac836e3598ff6fc8c9ba4d1cd2 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Enable adding call operatorsFriedemann Kleint2019-04-152-14/+28
| | | | | | | | | | The code parsing the add-function tag would clobber call operators (operator()(...)) since it looked for the first '(' to determine the functions name. Add a check for operator(). Change-Id: I3641f670abc0b24c92b539cfba3d227798e84fae Fixes: PYSIDE-995 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add array modification for QGLShaderProgram::setAttributeArray(int,const ↵Friedemann Kleint2019-04-151-0/+3
| | | | | | | | float *v,int,int) Change-Id: Ia44c94995bee2f095f1e90b614f9f1cdbc1dde3c Task-number: PYSIDE-988 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>