aboutsummaryrefslogtreecommitdiffstats
path: root/sources
Commit message (Collapse)AuthorAgeFilesLines
* shiboken: Remove member m_currentClass from AbstractMetaBuilderPrivateFriedemann Kleint2019-04-082-108/+98
| | | | | | | | Pass the current class as function parameter instead while traversing instead of setting and restoring m_currentClass. Change-Id: I38391dff9a52ff99593c25208e1e2bf7d98d17d6 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Doc: Add tutorials related to deploymentCristian Maureira-Fredes2019-04-045-0/+431
| | | | | | | | | | Including in the documentation a section related to deployment, and also tutorials associated to the following tools: PyInstaller, cx_Freeze, and fbs. Task-number: PYSIDE-901 Change-Id: I6162b039b5df3eced38ce65fe7cb143be9f0de82 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Allow for include paths with relative directoriesFriedemann Kleint2019-04-047-15/+71
| | | | | | | | | | Resolve the absolute file paths of the code model items against the include paths of shiboken to reconstruct the relative paths. Change-Id: Id0f793315b01c0fc65a4cfb26b3372f9c6688872 Fixes: PYSIDE-975 Reviewed-by: Volker Aßmann <volker.assmann@gmail.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Remove finding of the current class in metabuilderFriedemann Kleint2019-04-032-35/+18
| | | | | | | | | | | | | | | | | shiboken iterates over the code model items in 2 passes: The first one generates a list of classes, the second one adds the members. In the second pass, the function AbstractMetaBuilderPrivate::currentTraversedClass() was used to find the AbstractMetaClass instance for the code model item by name. This is inefficient and causes problems when extending namespaces. Therefore, replace AbstractMetaBuilderPrivate::currentTraversedClass() by a hash associating the code model items with the AbstractMetaClass instances. Change-Id: I88ea5205d0fde03558db8efb8738632aa3ab6da6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Search for classes by type entry instead of nameFriedemann Kleint2019-04-033-6/+6
| | | | | | | | | Searching by name is more efficient and has problems when extending namespaces. Search by type entry instead where possible. Change-Id: I131329a6648bb7f0a02cba08a5fbbc0531e0c51f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Move the Api extractor documentation into shibokenFriedemann Kleint2019-04-0337-1150/+90
| | | | | | | | | | | | | | | | It does not really make sense to have it separately and the reference documentation is currently not accessible from the TOC. Move it over and append it to the TOC. Merge the chapters on ownership chapters (for starters, by simply concatenating). The Api extractor overview chapter is dropped as it is outdated anyways. Partially reverts 0d12d71920067be499d9237b4ad04f7f11047759. Task-number: PYSIDE-363 Change-Id: I02f6b0a4bb91fc54267fa03cefd2ac7d4049f07b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* shiboken: Further refactorings related to the package nameFriedemann Kleint2019-04-023-13/+14
| | | | | | | | | | | | Let Generator::packageName() return the default package name of the type data base instead of storing it in a member variable. Instead, use a member variable for the module name which is derived from it, since it is queried many times. Use the default type system entry instead of searching for it via package name. Change-Id: I171330b3d73d2e3ceac239e4c1c6f130e9f5ee7b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* ApiExtractor manual: Fix doc warningFriedemann Kleint2019-04-021-1/+1
| | | | | | | | Close element, fixing: sources/shiboken2/ApiExtractor/doc/typesystem_specifying_types.rst:356: WARNING: Could not lex literal_block as "xml". Highlighting skipped. Change-Id: Ie0ccfbd3871bfacd3ca45b581071c55bb92e708b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken/embedding_generator: Silence warning about leaked fileFriedemann Kleint2019-04-021-0/+1
| | | | | | | | Close the temporary file, fixing: sources/shiboken2/libshiboken/embed/embedding_generator.py:241: ResourceWarning: unclosed file <_io.TextIOWrapper name=3 mode='w+' encoding='cp1252'> Change-Id: Idc89853fdca2a2a951e723d4b8840e3ebfb7c06c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Replace unused typedef referencing QLinkedListFriedemann Kleint2019-04-021-3/+0
| | | | | Change-Id: I350bfb27d5f7403edbe3062895df3812728e2290 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Refactor AbstractMetaBuilder::classesTopologicalSorted()Friedemann Kleint2019-04-016-70/+64
| | | | | | | | | | | | | | | | | | Change the function parameter to be a list always, making the logic of the inner classes clearer. In the implementation, use a of QHash<AbstractMetaClass*, int> instead of hashing by name, which makes it possible to disambiguate namespaces extended in modules. This also allows for a drastic simplification of the code trying to determine the dependency given by parameter default values. Instead of trying to match by name, correctly qualifying it, the matching can be done by TypeEntry pointers. Change-Id: Ia17bf6e109576bac029fb016e5e11309777d0735 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Replace QLinkedList by a QVector in the Graph classFriedemann Kleint2019-04-015-21/+24
| | | | | Change-Id: I4d76a29699867e9d4ff6138cc40fae9b1f519121 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Refactor code declaring and calling the type init functionsFriedemann Kleint2019-03-282-15/+22
| | | | | | | | Introduce a function for determining the init function name and simplify the code writing the module wrapper. Change-Id: I818f7a23902f1c9c1ce3cdad3d37dc18403006dd Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Remove unused imageCristián Maureira-Fredes2019-03-271-0/+0
| | | | | | Change-Id: Iacb9bf179d99816e2d7be08c819c744c689c95d5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Doc: Add descriptions, pages, and moving modulesCristian Maureira-Fredes2019-03-275-92/+255
| | | | | | | | | | | | | | | | Having all the Qt modules on the main page is too verbose. I created four sections with a couple of them and added more context to clarify when to use them. All the modules are still listed in a new page called `modules`. I included an `overview` page with some general information from our wiki: compatibility among platforms, an example and the FAQ. Task-number: PYSIDE-691 Change-Id: Ic9e2519aa2caa9c8a645633c2c1772e4844b5ec5 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken/Typedatabase: Store type system entries separatelyFriedemann Kleint2019-03-266-21/+38
| | | | | | | | | This makes it easier to access the default type system entry, which will always be the first one in the list. Change-Id: Ie0844cef5fa4f0cd8bc50c28898e54a42845c830 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Update logoCristian Maureira-Fredes2019-03-263-0/+0
| | | | | | | | | Updating to the new project logo (128x128). optipng was ran on the images: optipng -o 7 -strip all pysidelogo.png Change-Id: I75d0ef76a7fddf957a5095d74c4c836a2c1ebe31 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Improve the Selftest in the RegistryChristian Tismer2019-03-252-35/+101
| | | | | | | | | | | | | | The registry had a duplication of code in the self-test that led to an oversight. To prevent that in the future, the error handling has been rewritten, and an extended self-test was written that checks the correctness of every case. A truth table has beed added as a reference for questions. Change-Id: I4570b2388c9b179b33c9520a484e09b9ccb68918 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken/Documentation: Move brief to top of class documentationFriedemann Kleint2019-03-253-2/+44
| | | | | | | | | | | Extract the <brief> element from the WebXML class description and place it at the top with an internal reference (More...) to the detailed description. For this purpose, extend QtXmlToSphinx by a <rst> element to be able to pass through rst elements as is, which might come in handy for other purposes as well. Change-Id: I8e3fd9e3ead99b205afdd5f4be948c0d34336a94 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Doc: Add subtitles to Getting Started to improve readabilityLeena Miettinen2019-03-251-2/+16
| | | | | | | | | Also added the necessary leading paragraphs. Change-Id: Ie8682e878aa8470ee8ca1f3231d0c8ccc14bc68d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Add contextlib to Preloaded Modules for Embedding with Python 2Christian Tismer2019-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | While developing the embedding for installer support, some functionality was moved from loader.py to signature_bootstrap.py, especially a "with" statement, that needed a contextlib import. When using PyInstaller or cxFreeze, this gave a problem when running in virtualenv and Python 2. We extended the pre-loading to contextlib. It is not completely clear why Python 2 needs that and Python 3 doesn't. The problem did not show up without virtualenv. Perhaps some different installed packages have hidden that problem, because they loaded the contextlib, themselves. This does not happen with a freshly installed virtual environment. Change-Id: I2188cb67129e596f6492d0f5dc9b303a67bfe870 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Shiboken: Add "noexcept" to wrapper when wrapped function is noexceptVolker Aßmann2019-03-231-0/+3
| | | | | | | | | | | | | The clangparser was already recording the exception specifier for wrapped functions, but the code generator did not transfer the type specifier to the wrapper function. With modern compilers this leads to compile errors as the exception specifier is now part of the type. Noexcept is now added whenever the clangparser determines the source function is noexcept. Change-Id: I1f68981d997fcf4f007569c6d682e3dcf68eca60 Fixes: PYSIDE-977 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken: Fix a warning introduced by g++ 8 in the generated codeFriedemann Kleint2019-03-211-2/+4
| | | | | | | | | | | | PySide2/QtWidgets/PySide2/QtWidgets/qgraphicsscenehoverevent_wrapper.cpp:95:12: warning: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 28 bytes from a string of the same length [-Wstringop-truncation] Use the correct length and use memcpy(). Change-Id: I0830cd9b499f2f49a1f3334c2407f877e79738d4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Amend the Embedding Patch for cx_FreezeChristian Tismer2019-03-211-4/+6
| | | | | | | | | | | | | | | | cx_Freeze has the bug that it copies the "files.dir" folder of shiboken, but does not insert the Python files. As a quick fix, instead of testing only for existence of this directory, we now check for existence of the loader.py file. It can be assumed that all other Python files will be there as well. We could go even further and test-load all files. But then it becomes questionable if we should better always embed. Change-Id: Ib9553941c6a658fb20cb85d22f78431f99d88734 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Implement Embedding To Make Signatures Always AvailableChristian Tismer2019-03-2022-305/+1029
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Situation.. PySide works fine with normal applications. But when installers are used to pack the application together, then the signature extension cannot be loaded. This is a problem that exists since the signature extension was written. But starting with PySide 5.12.1, the signature extension is very visible, because it is used to support the __doc__ attribute. There have beed successful attempts to solve the problem for PyInstaller and Py2App. But there are more packers available, and they all need a change both in PySide and in the packer. Solution.. To solve this problem once and for all, we embed the Python support files in the binary shiboken package. When the Python files are not normally accessible, they are unpacked from a ZIP file. Details.. - The embedded files shall only be used when the normal files are not available, - The signature extension should no longer be lazily loaded. When the application starts, all files should be present. - We drop support for shiboken2.support.signature and use a single, independen folder 'shibokensupport' (proposal). This avoids problems with multiple existence of the shiboken2 folder. PySide2.support.signature remains the official interface, but it's only an alias when PySide2 exists. - The embedding is used when the normal files cannot be loaded for some reason. It can be enforced by a sys variable "pyside_uses_embedding". - Testcase is included. - Tested with PyInstaller on macOS Fixes: PYSIDE-932 Fixes: PYSIDE-942 Change-Id: Iaa62dc0623503a2e0943eedd10d2b2484c65cc2d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Simplify Python Imports For EmbeddingChristian Tismer2019-03-2030-1182/+412
| | | | | | | | | | | | | | | | | | | | | | After the project split, shiboken exposed its own modules, and the overall structure with shiboken2.support.signature and PySide2.support.signature was already quite complicated. When introducing embedding, it is necessary to have some support folder that gets unpacked from a zipfile. That means, the shiboken2 root directory would be in the zip file in the embedding case. This does not only increase the complexity, it further means that we must make shiboken2.so available in the shiboken2 containing zipfile! In order to avoid that, we stop the dependency from the two support directories and use shibokensupport, instead. The simplification of the loader and other modules is also significant. Task-number: PYSIDE-510 Change-Id: Ic735a8d36f10f03698378f2ac9685a5955e40b0c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Doc: Add qml application tutorialVenugopal Shivashankar2019-03-2010-0/+319
| | | | | | | | - Add the necessary source files based on the video tutorial in QtStudios Change-Id: Icdb16db8ff41c449e7657b9e2142d61ceddc1478 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add toBytes() and BufferProtocolCristian Maureira-Fredes2019-03-153-29/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | VoidPtr: Add toBytes() method that return a char* representation of the void* pointer. QByteArray: The current implementation only provided the Buffer Protocol for Python2, this patch includes the getbuffer implementation for Python3. Having a BufferProtocol implementation for Python3 allows the initialization of VoidPtr to get access to the internal content, so one can go back and forward with the representation of it: ba = QByteArray(b"Hello World") vp = VoidPtr(ba, ba.size()) vp.toBytes() # b"Hello World" The BufferProtocol was also changed for Python2 including the new buffer protocol (Py_TPFLAGS_HAVE_NEWBUFFER) function `bf_getbuffer`. A test case was included. Fixes: PYSIDE-934 Change-Id: I8936966da91b2dcc879c582cfc35e6a35f7a60b6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken/documentation: Shorten the types in link texts and parametersFriedemann Kleint2019-03-141-18/+23
| | | | | | | Strip the module names. Change-Id: I7b123acc30e15e0954fe88f3a5b677e9aa736732 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide2 documentation: Do not add module namesFriedemann Kleint2019-03-141-0/+2
| | | | | | | Add the corresponding Sphinx configuration entry. Change-Id: I73f213275544089f75d45b98d85df320c71c3fb1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Generate deprecation information for functions and classesFriedemann Kleint2019-03-132-0/+16
| | | | | | | | | Add a deprecation note to deprecated functions and classes. There is a standard deprecated directive, but it takes the version as a mandatory parameter, which we are unable to obtain from Clang. Change-Id: Ice27b297fbd86def41d99b0f3505551ed301077f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix the formatting of function signaturesFriedemann Kleint2019-03-132-30/+56
| | | | | | | | | | | | | | | | | | | Replace the note directive previously used for \since by the standard versionadd directive which takes less space. Move it below the function parameters and indent it along with the parameters correctly as otherwise the formatting is messed up. Change writeFunctionSignature() to return a QString which is more convenient for indenting. Remove the bool writeDoc parameter from QtDocGenerator::writeFunction() and spell out the formatting in writeConstructors() since it all needs to be indented properly (using the new indenter helper). Change-Id: I2294ba457ed05f431be295f9d42489aeb6805a8a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Make the indentor helper class more flexibleFriedemann Kleint2019-03-135-49/+95
| | | | | | | | | | | Move it to a separate header and turn it into a non-type template with a tabWidth parameter to make it possible to use it with arbitrary tab widths. Turn it into a non-type template taking the tab width. Change-Id: Ib2b6a7379ce66d1a22e73b4cb6a4a9a9b457014d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide2: Fix documentation build with module subsetsFriedemann Kleint2019-03-122-1/+5
| | | | | | | | | Document the tabbedbrowser tutorial only when QtWebEngineWidgets are present. Otherwise, the sphinx run will fail since autodoc cannot import the QtWebEngineWidget Python module. Change-Id: I23e671e15aa1725b20e4d0db17942f3fbc04bf20 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add ownership to QGraphicsItemGroup.addToGroupCristian Maureira-Fredes2019-03-051-1/+7
| | | | | | | Change-Id: I0c3741133072762443d80663be02a70abf9cc9ef Fixes: PYSIDE-95 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Update link to shiboken's words of advise pageCristian Maureira-Fredes2019-03-041-1/+1
| | | | | Change-Id: Ie2c1c7b9feefb56a9e987f71806a2ce400578fe8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Amend The Python 3.5 FixChristian Tismer2019-03-016-25/+3
| | | | | | | | | | | | After the bug found in PYSIDE-928, the contextlib problem of Python 3.5 also vanished. What remains is the crash on shutdown which is caused by module 'testbinding'. Task-number: PYSIDE-953 Change-Id: I07f18fa468fdb0758ee4e4b7663c3a42bec42822 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix Refcounting Bug Shown By __doc__ HandlingChristian Tismer2019-03-011-2/+9
| | | | | | | | | | | | | There was a bug in the signature function 'GetClassOfFunc' since last November (sha1 2533dab013455bf94da2d4766e54abaf4d735e1e). A type was returned without Py_INCREF. That happens because types are often looked up, only, but here a normal return needed a ref. Change-Id: I3e0956b341d2b0753da2e33dd9f557b6a693098d Fixes: PYSIDE-928 Fixes: PYSIDE-937 Fixes: PYSIDE-943 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken: Handle <array> modifications in template inheritanceFriedemann Kleint2019-03-017-36/+89
| | | | | | | | | | | | | | | | | | | | Array modifications did not work in template specializations (like typedef QGenericMatrix<2,2,int> QMatrix2x2> causing warnings like: There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive type 'const float *' of argument 1 in function 'QMatrix2x2::QMatrix2x2(const float * values)'. Rewrite the array modification code to operate on AbstractMetaType only instead of requiring code model data types and add the missing handling to AbstractMetaBuilderPrivate::inheritTemplate(). Add a test. Note that the warning was fixed by another change removing the array modification since it did not take effect due to the presence of a manually added PySequence constructor. Change-Id: Ie4a1092fbef7237f8858790a74e2f75070ef6586 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Add allow-thread attribute to type system and class entriesFriedemann Kleint2019-02-288-35/+97
| | | | | | | | | | | | | | In the typesystem parser, add the allow-thread attribute to root and complex type entry. Rewrite the handling of allow-thread (cached) in AbstractMetaFunction similar to the exception handling (store the modification in AbstractMetaFunction and go down the class hierarchy if it is unspecified). Change-Id: I00e6e2ab25208fda63ec20522814cbfccbb8c42d Fixes: PYSIDE-931 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Doc: Avoid marketing Qt for Python as a productVenugopal Shivashankar2019-02-281-6/+6
| | | | | | | | It is an offering that provides Python bindings for Qt, enabling Python developers to explore the power of Qt. Change-Id: I19a487c9141554da04bd360b23e69ad25bee4dd2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix exception handling when specified in base classFriedemann Kleint2019-02-284-45/+91
| | | | | | | | | | | | | | | | | | | | | Class-level exception specifications on a base class were not working so far. This requires a larger refactoring, since the base classes are not yet known at the point where class functions were traversed (AbstractMetaBuilder::setupInheritance() is called at a later stage). To fix this, store the actual type system modification in the AbstractMetaFunction and move the logic determining whether to generate exception handling into AbstractMetaFunction::generateExceptionHandling(). In this function, recurse down the base classes if the function does not have a modification set. This is a preparation for giving the allow-thread attribute, which can currently only be used at a function level, a similar handling. Task-number: PYSIDE-62 Change-Id: I28597559511d330cf860c6f6e21ffea229bfab3e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Extend the exception handling testFriedemann Kleint2019-02-262-11/+97
| | | | | | | | | | | | | | Turn the test into a data driven test to also test modifications to the class and typesystem level and test more cases, for example overriding modifications on a higher level. This is a preparation for giving the allow-thread attribute, which can currently only be used at a function level, a similar handling. Task-number: PYSIDE-62 Task-number: PYSIDE-931 Change-Id: Id5fe65b7d0edb4279b47aaa6e59dfb6cda2d75a3 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix conversions of list of smart pointers to pythonRenato Araujo Oliveira Filho2019-02-265-1/+60
| | | | | | | | | While converting smart pointers do not initialize the object with default/minimal constructor. Change-Id: Ie9400d8487accc0c90b0f0b31b855038ae698b5c Task-Id: PYSIDE-947 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Prevent Python 3.5 From Crashing The BuildChristian Tismer2019-02-267-3/+499
| | | | | | | | | | | | | | | | | | | Python 3.5 has a bug that crashes the build. See the description in the issue tracker. The cure is to use a more recent contextlib.py and to avoid a PySide cleanup function that creates the crash. The problem is not solved for Python 3.5, and it is not clear if the testbinding module has a hidden bug, too. But this fix seems to be good enough for the moment. We should decide if we are going to fix Python 3.5 or abandon it altogether. Change-Id: Iacf2237de1f34d2b3cd1d68f1fb5833bdca3fdc2 Fixes: PYSIDE-953 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add setPageSize new signature to QPageSizeCristian Maureira-Fredes2019-02-262-0/+49
| | | | | | | | | | | The generated code only takes an enum from the meta class (QPagedPaintDevice) as valid argument of the function `setPageSize` (QPagedPaintDevice::PageSize), but it should also accept a QPageSize argument. Change-Id: Ia31a69a5e52e781844ce6a7e4ff6e5e95d17563d Fixes: PYSIDE-940 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Allow Subclassing PyCFunction in Extension ModulesChristian Tismer2019-02-251-2/+2
| | | | | | | | | | | | | | | | The signature module tries to figure out if it has to act upon functions by examining their type. It was too specific to check for PyCFunction, directly. A user had built a subclass of PyCFunction and used it with 'inspect.signature', which then revealed wrong behavior. This patch removes that restriction. Change-Id: I7e126ce5750ec5c308cbd1bd1bc4ca4d5eb51e17 Fixes: PYSIDE-950 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Set proper parent when overloading QUiLoaderCristian Maureira-Fredes2019-02-251-0/+3
| | | | | | | | | | | | | | | In a couple of methods of QUiLoader, we had a parent override leaving the methods without the proper parent. setParent(pyArgs[0], pyResult) # Correct setParent(self, pyResult) # Wrong override Defining the ownership to the target class corrects this issue and just leaves the "Correct" approach. Fixes: PYSIDE-938 Change-Id: Id20d74756e14c58caba2ab4c65484d15da88df16 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add common QPrintSupport typesystem for QWebEngineCristian Maureira-Fredes2019-02-255-3/+55
| | | | | | | | | | | Moved around the files so we have a general QPrintSupport typesystem that we can include in other modules that need it, like QWebEngine. Change-Id: Ic277c37e6b0c08b370102d1bef18cd1375239169 Task-number: PYSIDE-946 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix error when importing signatures in frozen executablesAlberto Sottile2019-02-222-17/+24
| | | | | | | | | | Attempts to load the module directly from Python if loading it manually from the .py file fails. This exposes the support submodule to installers. The loader.py module was also patched to allow direct import from installers. Change-Id: If225ae7a2e916912a581e09d1a02c18fd3a17526 Fixes: PYSIDE-942 Reviewed-by: Christian Tismer <tismer@stackless.com>