Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.0:Staging:A:DVD
python-qt5
qt_quick_crash_fix.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File qt_quick_crash_fix.patch of Package python-qt5
Description: upstream fixes related to Qt Quick support - Handle QQuickWindow and QQuickView as special cases (cf. QQuickItem) when exposing sub-classes to QML. - Fixed the handling of QQuickItem and similar classes so that the correct meta-object is returned by metaObject(). - Improved the fix for QtQuick meta-objects so that the customgeometry.py example works again. Origin: upstream, changesets 78085eee5e7e, 8bf883e1619f and 7facd5e24cbb Bug: https://bugs.launchpad.net/bugs/1766092 Last-Update: 2018-04-23 Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp =================================================================== --- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquick_register_type.cpp +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp @@ -22,6 +22,8 @@ #include "qpyquickframebufferobject.h" #include "qpyquickitem.h" #include "qpyquickpainteditem.h" +#include "qpyquickview.h" +#include "qpyquickwindow.h" #include "sipAPIQtQuick.h" @@ -30,6 +32,9 @@ sipErrorState qpyquick_register_type(PyT const QMetaObject *mo, const QByteArray &ptr_name, const QByteArray &list_name, QQmlPrivate::RegisterType **rtp) { + // Make sure the types are tested in the right order (ie. more specific + // types first). + #if QT_VERSION >= 0x050200 if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickFramebufferObject))) return ((*rtp = QPyQuickFramebufferObject::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); @@ -41,6 +46,12 @@ sipErrorState qpyquick_register_type(PyT if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickItem))) return ((*rtp = QPyQuickItem::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); + if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickView))) + return ((*rtp = QPyQuickView::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); + + if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickWindow))) + return ((*rtp = QPyQuickWindow::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); + // We don't recognise the type. return sipErrorContinue; } Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.cpp =================================================================== --- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickframebufferobject.cpp +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.cpp @@ -37,6 +37,10 @@ static QList<PyTypeObject *> pyqt_types; // The registration data for the canned types. static QQmlPrivate::RegisterType canned_types[NrOfQuickFramebufferObjectTypes]; + +// External declarations. +extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, + const QMetaObject *static_mo); #define QPYQUICKFRAMEBUFFEROBJECT_INIT(n) \ @@ -143,6 +147,10 @@ QPyQuickFramebufferObject##n::QPyQuickFr { \ createPyObject(parent); \ } \ +const QMetaObject *QPyQuickFramebufferObject##n::metaObject() const \ +{ \ + return qpyquick_pick_metaobject(QPyQuickFramebufferObject::metaObject(), &staticMetaObject); \ +} \ QMetaObject QPyQuickFramebufferObject##n::staticMetaObject Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.h =================================================================== --- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickframebufferobject.h +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.h @@ -58,6 +58,7 @@ class QPyQuickFramebufferObject##n : pub public: \ QPyQuickFramebufferObject##n(QQuickItem *parent = 0); \ static QMetaObject staticMetaObject; \ + virtual const QMetaObject *metaObject() const; \ virtual int typeNr() const {return n##U;} \ private: \ QPyQuickFramebufferObject##n(const QPyQuickFramebufferObject##n &); \ Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.cpp =================================================================== --- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickitem.cpp +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.cpp @@ -37,6 +37,22 @@ static QList<PyTypeObject *> pyqt_types; static QQmlPrivate::RegisterType canned_types[NrOfQuickItemTypes]; +// Pick the correct meta-object, either the one from the super-class or the +// static meta-object. +const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, + const QMetaObject *static_mo) +{ + // If a Python type has been sub-classed in QML then we need to use the + // QtQuick supplied meta-object. In this case it's super-class meta-object + // will be the meta-object of the Python type. Otherwise we need to use + // the static meta-object (which is a copy of the meta-object of the Python + // type). We use the class names held by the meta-objects to determine the + // correct meta-object to return. + + return (qstrcmp(super_mo->superClass()->className(), static_mo->className()) == 0) ? super_mo : static_mo; +} + + #define QPYQUICKITEM_INIT(n) \ case n##U: \ QPyQuickItem##n::staticMetaObject = *mo; \ @@ -140,6 +156,10 @@ QPyQuickItem##n::QPyQuickItem##n(QQuickI { \ createPyObject(parent); \ } \ +const QMetaObject *QPyQuickItem##n::metaObject() const \ +{ \ + return qpyquick_pick_metaobject(QPyQuickItem::metaObject(), &staticMetaObject); \ +} \ QMetaObject QPyQuickItem##n::staticMetaObject Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.h =================================================================== --- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickitem.h +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.h @@ -56,6 +56,7 @@ class QPyQuickItem##n : public QPyQuickI public: \ QPyQuickItem##n(QQuickItem *parent = 0); \ static QMetaObject staticMetaObject; \ + virtual const QMetaObject *metaObject() const; \ virtual int typeNr() const {return n##U;} \ private: \ QPyQuickItem##n(const QPyQuickItem##n &); \ Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.cpp =================================================================== --- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickpainteditem.cpp +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.cpp @@ -36,6 +36,10 @@ static QList<PyTypeObject *> pyqt_types; // The registration data for the canned types. static QQmlPrivate::RegisterType canned_types[NrOfQuickPaintedItemTypes]; +// External declarations. +extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, + const QMetaObject *static_mo); + #define QPYQUICKPAINTEDITEM_INIT(n) \ case n##U: \ @@ -141,6 +145,10 @@ QPyQuickPaintedItem##n::QPyQuickPaintedI { \ createPyObject(parent); \ } \ +const QMetaObject *QPyQuickPaintedItem##n::metaObject() const \ +{ \ + return qpyquick_pick_metaobject(QPyQuickPaintedItem::metaObject(), &staticMetaObject); \ +} \ QMetaObject QPyQuickPaintedItem##n::staticMetaObject Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.h =================================================================== --- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickpainteditem.h +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.h @@ -56,6 +56,7 @@ class QPyQuickPaintedItem##n : public QP public: \ QPyQuickPaintedItem##n(QQuickItem *parent = 0); \ static QMetaObject staticMetaObject; \ + virtual const QMetaObject *metaObject() const; \ virtual int typeNr() const {return n##U;} \ private: \ QPyQuickPaintedItem##n(const QPyQuickPaintedItem##n &); \ Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp =================================================================== --- /dev/null +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp @@ -0,0 +1,163 @@ +// This is the implementation of the QPyQuickWindow classes. +// +// Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> +// +// This file is part of PyQt5. +// +// This file may be used under the terms of the GNU General Public License +// version 3.0 as published by the Free Software Foundation and appearing in +// the file LICENSE included in the packaging of this file. Please review the +// following information to ensure the GNU General Public License version 3.0 +// requirements will be met: http://www.gnu.org/copyleft/gpl.html. +// +// If you do not wish to use this file under the terms of the GPL version 3.0 +// then you may purchase a commercial license. For more information contact +// info@riverbankcomputing.com. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +#include <Python.h> + +#include <QQmlListProperty> + +#include "qpyquickview.h" + +#include "sipAPIQtQuick.h" + + +// The maximum number of Python QQuickView types. +const int NrOfQuickViewTypes = 20; + +// The list of registered Python types. +static QList<PyTypeObject *> pyqt_types; + +// The registration data for the canned types. +static QQmlPrivate::RegisterType canned_types[NrOfQuickViewTypes]; + +// External declarations. +extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, + const QMetaObject *static_mo); + + +#define QPYQUICKVIEW_INIT(n) \ + case n##U: \ + QPyQuickView##n::staticMetaObject = *mo; \ + rt->typeId = qRegisterNormalizedMetaType<QPyQuickView##n *>(ptr_name); \ + rt->listId = qRegisterNormalizedMetaType<QQmlListProperty<QPyQuickView##n> >(list_name); \ + rt->objectSize = sizeof(QPyQuickView##n); \ + rt->create = QQmlPrivate::createInto<QPyQuickView##n>; \ + rt->metaObject = mo; \ + rt->attachedPropertiesFunction = QQmlPrivate::attachedPropertiesFunc<QPyQuickView##n>(); \ + rt->attachedPropertiesMetaObject = QQmlPrivate::attachedPropertiesMetaObject<QPyQuickView##n>(); \ + rt->parserStatusCast = QQmlPrivate::StaticCastSelector<QPyQuickView##n,QQmlParserStatus>::cast(); \ + rt->valueSourceCast = QQmlPrivate::StaticCastSelector<QPyQuickView##n,QQmlPropertyValueSource>::cast(); \ + rt->valueInterceptorCast = QQmlPrivate::StaticCastSelector<QPyQuickView##n,QQmlPropertyValueInterceptor>::cast(); \ + break + + +// The ctor. +QPyQuickView::QPyQuickView(QWindow *parent) : sipQQuickView(parent) +{ +} + + +// Add a new Python type and return its number. +QQmlPrivate::RegisterType *QPyQuickView::addType(PyTypeObject *type, + const QMetaObject *mo, const QByteArray &ptr_name, + const QByteArray &list_name) +{ + int type_nr = pyqt_types.size(); + + // Check we have a spare canned type. + if (type_nr >= NrOfQuickViewTypes) + { + PyErr_Format(PyExc_TypeError, + "a maximum of %d QQuickView types may be registered with QML", + NrOfQuickViewTypes); + return 0; + } + + pyqt_types.append(type); + + QQmlPrivate::RegisterType *rt = &canned_types[type_nr]; + + // Initialise those members that depend on the C++ type. + switch (type_nr) + { + QPYQUICKVIEW_INIT(0); + QPYQUICKVIEW_INIT(1); + QPYQUICKVIEW_INIT(2); + QPYQUICKVIEW_INIT(3); + QPYQUICKVIEW_INIT(4); + QPYQUICKVIEW_INIT(5); + QPYQUICKVIEW_INIT(6); + QPYQUICKVIEW_INIT(7); + QPYQUICKVIEW_INIT(8); + QPYQUICKVIEW_INIT(9); + QPYQUICKVIEW_INIT(10); + QPYQUICKVIEW_INIT(11); + QPYQUICKVIEW_INIT(12); + QPYQUICKVIEW_INIT(13); + QPYQUICKVIEW_INIT(14); + QPYQUICKVIEW_INIT(15); + QPYQUICKVIEW_INIT(16); + QPYQUICKVIEW_INIT(17); + QPYQUICKVIEW_INIT(18); + QPYQUICKVIEW_INIT(19); + } + + return rt; +} + + +// Create the Python instance. +void QPyQuickView::createPyObject(QWindow *parent) +{ + SIP_BLOCK_THREADS + + // Assume C++ owns everything. + PyObject *obj = sipConvertFromNewPyType(this, pyqt_types.at(typeNr()), + NULL, &sipPySelf, "D", parent, sipType_QWindow, NULL); + + if (!obj) + pyqt5_qtquick_err_print(); + + SIP_UNBLOCK_THREADS +} + + +// The canned type implementations. +#define QPYQUICKVIEW_IMPL(n) \ +QPyQuickView##n::QPyQuickView##n(QWindow *parent) : QPyQuickView(parent) \ +{ \ + createPyObject(parent); \ +} \ +const QMetaObject *QPyQuickView##n::metaObject() const \ +{ \ + return qpyquick_pick_metaobject(QPyQuickView::metaObject(), &staticMetaObject); \ +} \ +QMetaObject QPyQuickView##n::staticMetaObject + + +QPYQUICKVIEW_IMPL(0); +QPYQUICKVIEW_IMPL(1); +QPYQUICKVIEW_IMPL(2); +QPYQUICKVIEW_IMPL(3); +QPYQUICKVIEW_IMPL(4); +QPYQUICKVIEW_IMPL(5); +QPYQUICKVIEW_IMPL(6); +QPYQUICKVIEW_IMPL(7); +QPYQUICKVIEW_IMPL(8); +QPYQUICKVIEW_IMPL(9); +QPYQUICKVIEW_IMPL(10); +QPYQUICKVIEW_IMPL(11); +QPYQUICKVIEW_IMPL(12); +QPYQUICKVIEW_IMPL(13); +QPYQUICKVIEW_IMPL(14); +QPYQUICKVIEW_IMPL(15); +QPYQUICKVIEW_IMPL(16); +QPYQUICKVIEW_IMPL(17); +QPYQUICKVIEW_IMPL(18); +QPYQUICKVIEW_IMPL(19); Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h =================================================================== --- /dev/null +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h @@ -0,0 +1,88 @@ +// This is the definition of the QPyQuickView classes. +// +// Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> +// +// This file is part of PyQt5. +// +// This file may be used under the terms of the GNU General Public License +// version 3.0 as published by the Free Software Foundation and appearing in +// the file LICENSE included in the packaging of this file. Please review the +// following information to ensure the GNU General Public License version 3.0 +// requirements will be met: http://www.gnu.org/copyleft/gpl.html. +// +// If you do not wish to use this file under the terms of the GPL version 3.0 +// then you may purchase a commercial license. For more information contact +// info@riverbankcomputing.com. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +#ifndef _QPYQUICKVIEW_H +#define _QPYQUICKVIEW_H + + +#include <Python.h> + +#include <qqmlprivate.h> +#include <QByteArray> +#include <QMetaObject> +#include <QQuickView> + +#include "sipAPIQtQuick.h" + + +class QPyQuickView : public sipQQuickView +{ +public: + QPyQuickView(QWindow *parent = 0); + + virtual int typeNr() const = 0; + + static QQmlPrivate::RegisterType *addType(PyTypeObject *type, + const QMetaObject *mo, const QByteArray &ptr_name, + const QByteArray &list_name); + void createPyObject(QWindow *parent); + +private: + QPyQuickView(const QPyQuickView &); +}; + + +// The canned type declarations. +#define QPYQUICKVIEW_DECL(n) \ +class QPyQuickView##n : public QPyQuickView \ +{ \ +public: \ + QPyQuickView##n(QWindow *parent = 0); \ + static QMetaObject staticMetaObject; \ + virtual const QMetaObject *metaObject() const; \ + virtual int typeNr() const {return n##U;} \ +private: \ + QPyQuickView##n(const QPyQuickView##n &); \ +} + + +QPYQUICKVIEW_DECL(0); +QPYQUICKVIEW_DECL(1); +QPYQUICKVIEW_DECL(2); +QPYQUICKVIEW_DECL(3); +QPYQUICKVIEW_DECL(4); +QPYQUICKVIEW_DECL(5); +QPYQUICKVIEW_DECL(6); +QPYQUICKVIEW_DECL(7); +QPYQUICKVIEW_DECL(8); +QPYQUICKVIEW_DECL(9); +QPYQUICKVIEW_DECL(10); +QPYQUICKVIEW_DECL(11); +QPYQUICKVIEW_DECL(12); +QPYQUICKVIEW_DECL(13); +QPYQUICKVIEW_DECL(14); +QPYQUICKVIEW_DECL(15); +QPYQUICKVIEW_DECL(16); +QPYQUICKVIEW_DECL(17); +QPYQUICKVIEW_DECL(18); +QPYQUICKVIEW_DECL(19); + + +#endif Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp =================================================================== --- /dev/null +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp @@ -0,0 +1,163 @@ +// This is the implementation of the QPyQuickWindow classes. +// +// Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> +// +// This file is part of PyQt5. +// +// This file may be used under the terms of the GNU General Public License +// version 3.0 as published by the Free Software Foundation and appearing in +// the file LICENSE included in the packaging of this file. Please review the +// following information to ensure the GNU General Public License version 3.0 +// requirements will be met: http://www.gnu.org/copyleft/gpl.html. +// +// If you do not wish to use this file under the terms of the GPL version 3.0 +// then you may purchase a commercial license. For more information contact +// info@riverbankcomputing.com. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +#include <Python.h> + +#include <QQmlListProperty> + +#include "qpyquickwindow.h" + +#include "sipAPIQtQuick.h" + + +// The maximum number of Python QQuickWindow types. +const int NrOfQuickWindowTypes = 20; + +// The list of registered Python types. +static QList<PyTypeObject *> pyqt_types; + +// The registration data for the canned types. +static QQmlPrivate::RegisterType canned_types[NrOfQuickWindowTypes]; + +// External declarations. +extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, + const QMetaObject *static_mo); + + +#define QPYQUICKWINDOW_INIT(n) \ + case n##U: \ + QPyQuickWindow##n::staticMetaObject = *mo; \ + rt->typeId = qRegisterNormalizedMetaType<QPyQuickWindow##n *>(ptr_name); \ + rt->listId = qRegisterNormalizedMetaType<QQmlListProperty<QPyQuickWindow##n> >(list_name); \ + rt->objectSize = sizeof(QPyQuickWindow##n); \ + rt->create = QQmlPrivate::createInto<QPyQuickWindow##n>; \ + rt->metaObject = mo; \ + rt->attachedPropertiesFunction = QQmlPrivate::attachedPropertiesFunc<QPyQuickWindow##n>(); \ + rt->attachedPropertiesMetaObject = QQmlPrivate::attachedPropertiesMetaObject<QPyQuickWindow##n>(); \ + rt->parserStatusCast = QQmlPrivate::StaticCastSelector<QPyQuickWindow##n,QQmlParserStatus>::cast(); \ + rt->valueSourceCast = QQmlPrivate::StaticCastSelector<QPyQuickWindow##n,QQmlPropertyValueSource>::cast(); \ + rt->valueInterceptorCast = QQmlPrivate::StaticCastSelector<QPyQuickWindow##n,QQmlPropertyValueInterceptor>::cast(); \ + break + + +// The ctor. +QPyQuickWindow::QPyQuickWindow(QWindow *parent) : sipQQuickWindow(parent) +{ +} + + +// Add a new Python type and return its number. +QQmlPrivate::RegisterType *QPyQuickWindow::addType(PyTypeObject *type, + const QMetaObject *mo, const QByteArray &ptr_name, + const QByteArray &list_name) +{ + int type_nr = pyqt_types.size(); + + // Check we have a spare canned type. + if (type_nr >= NrOfQuickWindowTypes) + { + PyErr_Format(PyExc_TypeError, + "a maximum of %d QQuickWindow types may be registered with QML", + NrOfQuickWindowTypes); + return 0; + } + + pyqt_types.append(type); + + QQmlPrivate::RegisterType *rt = &canned_types[type_nr]; + + // Initialise those members that depend on the C++ type. + switch (type_nr) + { + QPYQUICKWINDOW_INIT(0); + QPYQUICKWINDOW_INIT(1); + QPYQUICKWINDOW_INIT(2); + QPYQUICKWINDOW_INIT(3); + QPYQUICKWINDOW_INIT(4); + QPYQUICKWINDOW_INIT(5); + QPYQUICKWINDOW_INIT(6); + QPYQUICKWINDOW_INIT(7); + QPYQUICKWINDOW_INIT(8); + QPYQUICKWINDOW_INIT(9); + QPYQUICKWINDOW_INIT(10); + QPYQUICKWINDOW_INIT(11); + QPYQUICKWINDOW_INIT(12); + QPYQUICKWINDOW_INIT(13); + QPYQUICKWINDOW_INIT(14); + QPYQUICKWINDOW_INIT(15); + QPYQUICKWINDOW_INIT(16); + QPYQUICKWINDOW_INIT(17); + QPYQUICKWINDOW_INIT(18); + QPYQUICKWINDOW_INIT(19); + } + + return rt; +} + + +// Create the Python instance. +void QPyQuickWindow::createPyObject(QWindow *parent) +{ + SIP_BLOCK_THREADS + + // Assume C++ owns everything. + PyObject *obj = sipConvertFromNewPyType(this, pyqt_types.at(typeNr()), + NULL, &sipPySelf, "D", parent, sipType_QWindow, NULL); + + if (!obj) + pyqt5_qtquick_err_print(); + + SIP_UNBLOCK_THREADS +} + + +// The canned type implementations. +#define QPYQUICKWINDOW_IMPL(n) \ +QPyQuickWindow##n::QPyQuickWindow##n(QWindow *parent) : QPyQuickWindow(parent) \ +{ \ + createPyObject(parent); \ +} \ +const QMetaObject *QPyQuickWindow##n::metaObject() const \ +{ \ + return qpyquick_pick_metaobject(QPyQuickWindow::metaObject(), &staticMetaObject); \ +} \ +QMetaObject QPyQuickWindow##n::staticMetaObject + + +QPYQUICKWINDOW_IMPL(0); +QPYQUICKWINDOW_IMPL(1); +QPYQUICKWINDOW_IMPL(2); +QPYQUICKWINDOW_IMPL(3); +QPYQUICKWINDOW_IMPL(4); +QPYQUICKWINDOW_IMPL(5); +QPYQUICKWINDOW_IMPL(6); +QPYQUICKWINDOW_IMPL(7); +QPYQUICKWINDOW_IMPL(8); +QPYQUICKWINDOW_IMPL(9); +QPYQUICKWINDOW_IMPL(10); +QPYQUICKWINDOW_IMPL(11); +QPYQUICKWINDOW_IMPL(12); +QPYQUICKWINDOW_IMPL(13); +QPYQUICKWINDOW_IMPL(14); +QPYQUICKWINDOW_IMPL(15); +QPYQUICKWINDOW_IMPL(16); +QPYQUICKWINDOW_IMPL(17); +QPYQUICKWINDOW_IMPL(18); +QPYQUICKWINDOW_IMPL(19); Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h =================================================================== --- /dev/null +++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h @@ -0,0 +1,88 @@ +// This is the definition of the QPyQuickWindow classes. +// +// Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> +// +// This file is part of PyQt5. +// +// This file may be used under the terms of the GNU General Public License +// version 3.0 as published by the Free Software Foundation and appearing in +// the file LICENSE included in the packaging of this file. Please review the +// following information to ensure the GNU General Public License version 3.0 +// requirements will be met: http://www.gnu.org/copyleft/gpl.html. +// +// If you do not wish to use this file under the terms of the GPL version 3.0 +// then you may purchase a commercial license. For more information contact +// info@riverbankcomputing.com. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +#ifndef _QPYQUICKWINDOW_H +#define _QPYQUICKWINDOW_H + + +#include <Python.h> + +#include <qqmlprivate.h> +#include <QByteArray> +#include <QMetaObject> +#include <QQuickWindow> + +#include "sipAPIQtQuick.h" + + +class QPyQuickWindow : public sipQQuickWindow +{ +public: + QPyQuickWindow(QWindow *parent = 0); + + virtual int typeNr() const = 0; + + static QQmlPrivate::RegisterType *addType(PyTypeObject *type, + const QMetaObject *mo, const QByteArray &ptr_name, + const QByteArray &list_name); + void createPyObject(QWindow *parent); + +private: + QPyQuickWindow(const QPyQuickWindow &); +}; + + +// The canned type declarations. +#define QPYQUICKWINDOW_DECL(n) \ +class QPyQuickWindow##n : public QPyQuickWindow \ +{ \ +public: \ + QPyQuickWindow##n(QWindow *parent = 0); \ + static QMetaObject staticMetaObject; \ + virtual const QMetaObject *metaObject() const; \ + virtual int typeNr() const {return n##U;} \ +private: \ + QPyQuickWindow##n(const QPyQuickWindow##n &); \ +} + + +QPYQUICKWINDOW_DECL(0); +QPYQUICKWINDOW_DECL(1); +QPYQUICKWINDOW_DECL(2); +QPYQUICKWINDOW_DECL(3); +QPYQUICKWINDOW_DECL(4); +QPYQUICKWINDOW_DECL(5); +QPYQUICKWINDOW_DECL(6); +QPYQUICKWINDOW_DECL(7); +QPYQUICKWINDOW_DECL(8); +QPYQUICKWINDOW_DECL(9); +QPYQUICKWINDOW_DECL(10); +QPYQUICKWINDOW_DECL(11); +QPYQUICKWINDOW_DECL(12); +QPYQUICKWINDOW_DECL(13); +QPYQUICKWINDOW_DECL(14); +QPYQUICKWINDOW_DECL(15); +QPYQUICKWINDOW_DECL(16); +QPYQUICKWINDOW_DECL(17); +QPYQUICKWINDOW_DECL(18); +QPYQUICKWINDOW_DECL(19); + + +#endif Index: PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip =================================================================== --- PyQt5_gpl-5.10.1.orig/sip/QtQuick/qquickview.sip +++ PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip @@ -20,7 +20,7 @@ // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -class QQuickView : QQuickWindow +class QQuickView : QQuickWindow /ExportDerived/ { %TypeHeaderCode #include <qquickview.h> Index: PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip =================================================================== --- PyQt5_gpl-5.10.1.orig/sip/QtQuick/qquickwindow.sip +++ PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip @@ -20,7 +20,7 @@ // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -class QQuickWindow : QWindow +class QQuickWindow : QWindow /ExportDerived/ { %TypeHeaderCode #include <qquickwindow.h>
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor