[arch-commits] Commit in pyqt5/repos (5 files)

Antonio Rojas arojas at archlinux.org
Tue May 22 12:09:16 UTC 2018


    Date: Tuesday, May 22, 2018 @ 12:09:15
  Author: arojas
Revision: 324766

archrelease: copy trunk to staging-x86_64

Added:
  pyqt5/repos/staging-x86_64/
  pyqt5/repos/staging-x86_64/PKGBUILD
    (from rev 324765, pyqt5/trunk/PKGBUILD)
  pyqt5/repos/staging-x86_64/pyqt-qt5.11.patch
    (from rev 324765, pyqt5/trunk/pyqt-qt5.11.patch)
  pyqt5/repos/staging-x86_64/pyqt-support-new-qt.patch
    (from rev 324765, pyqt5/trunk/pyqt-support-new-qt.patch)
  pyqt5/repos/staging-x86_64/pyqt5-cura-crash.patch
    (from rev 324765, pyqt5/trunk/pyqt5-cura-crash.patch)

---------------------------+
 PKGBUILD                  |  133 ++++++++++
 pyqt-qt5.11.patch         |   17 +
 pyqt-support-new-qt.patch |   12 
 pyqt5-cura-crash.patch    |  559 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 721 insertions(+)

Copied: pyqt5/repos/staging-x86_64/PKGBUILD (from rev 324765, pyqt5/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD	                        (rev 0)
+++ staging-x86_64/PKGBUILD	2018-05-22 12:09:15 UTC (rev 324766)
@@ -0,0 +1,133 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
+# Contributor: Yichao Yu <yyc1992 at gmail.com>
+# Contributor: Douglas Soares de Andrade <douglas at archlinux.org>
+# Contributor: riai <riai at bigfoot.com> Ben <ben at benmazer.net>
+
+pkgbase=pyqt5
+pkgname=('pyqt5-common' 'python-pyqt5' 'python2-pyqt5')
+pkgver=5.10.1
+pkgrel=3
+arch=('x86_64')
+url="http://riverbankcomputing.co.uk/software/pyqt/intro"
+license=('GPL')
+makedepends=('python-sip' 'python2-sip' 'python-opengl' 'python2-opengl'
+             'python2-dbus' 'python-dbus' 'qt5-connectivity'
+             'qt5-multimedia' 'qt5-tools' 'qt5-serialport' 'qt5-svg'
+             'qt5-webengine' 'qt5-webkit' 'qt5-websockets' 'qt5-x11extras' 'qt5-networkauth')
+source=("http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-$pkgver/PyQt5_gpl-$pkgver.tar.gz" pyqt-support-new-qt.patch
+        pyqt5-cura-crash.patch pyqt-qt5.11.patch)
+sha512sums=('04cd0292f7a088f9c0d088d7c73ec96cfc40253f771dfdf194eb92be7635e6fcaf04863fa24215e9c34a096658549bb2feeb8d8fdca1e39ed87f0256ef0f790b'
+            'a9c45534d540cd4eff732a92e66f98eb313b0734e64a2289fbc703fdb208265a610ccc3c4f54f43d0813afa3a7003ec7956e6029904cc56992a5e8cc2efb280c'
+            '3f6e1c0dcd95d3ff39c03f59d7c09cbf2e42431bf9cb6dc7a63da10b7a387e5977992e57ef0ff1dea495f29dfbf4db2568b4588e801cca966a0136fe98d1ed45'
+            'bae60dd592701929acf403514d8be87d53330dccff74267efb615005d82f5710ce13636a99b2a75beb04fd93a4ade34486c3c2aa190efd334d01c78b34f1bcc0')
+
+prepare() {
+  # Support new versions of Qt - don't remove, needs to be reapplied after every new Qt release
+  pushd PyQt5_gpl-$pkgver
+  patch -p1 -i ../pyqt-support-new-qt.patch
+  patch -p1 -i ../pyqt5-cura-crash.patch # Fix crash in Cura
+  patch -p1 -i ../pyqt-qt5.11.patch # Fix build with Qt 5.11 (opensuse)
+  popd
+
+  # The additional include path was removed due to this line, I don't really know why they are doing this...
+  sed -i '/target_config.dbus_inc_dirs = \[\]/d' PyQt5_gpl-$pkgver/configure.py
+
+  cp -a PyQt5_gpl-$pkgver{,-py2}
+}
+
+build() {
+  cd "$srcdir"/PyQt5_gpl-$pkgver
+  python configure.py \
+    --confirm-license \
+    --no-sip-files \
+    --qsci-api \
+    -q /usr/bin/qmake-qt5
+
+  # Thanks Gerardo for the rpath fix
+  find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+  make
+
+  cd "$srcdir"/PyQt5_gpl-$pkgver-py2
+  python2 configure.py \
+    --confirm-license \
+    --no-sip-files \
+    --qsci-api \
+    -q /usr/bin/qmake-qt5
+
+  # Thanks Gerardo for the rpath fix
+  find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+  make
+}
+
+package_pyqt5-common(){
+  pkgdesc="Common PyQt files shared between python-pyqt5 and python2-pyqt5"
+  depends=('qt5-base')
+
+  cd PyQt5_gpl-$pkgver
+  install -Dm644 PyQt5.api "$pkgdir"/usr/share/qt/qsci/api/python/PyQt5.api
+
+  install -d "$pkgdir"/usr/share/sip/PyQt5
+  cp -a sip/* "$pkgdir"/usr/share/sip/PyQt5
+}
+
+package_python-pyqt5(){
+  pkgdesc="A set of Python 3.x bindings for the Qt5 toolkit"
+  depends=('python-sip' 'pyqt5-common')
+  optdepends=('python-opengl: enable OpenGL 3D graphics in PyQt applications'
+              'python-dbus: for python-dbus mainloop support'
+              'qt5-multimedia: QtMultimedia, QtMultimediaWidgets'
+              'qt5-tools: QtHelp, QtDesigner'
+              'qt5-svg: QtSvg'
+              'qt5-webkit: QtWebKit, QtWebKitWidgets'
+              'qt5-xmlpatterns: QtXmlPatterns'
+              'qt5-declarative: QtQml, qmlplugin'
+              'qt5-serialport: QtSerialPort'
+              'qt5-websockets: QtWebSockets'
+              'qt5-connectivity: QtNfc, QtBluetooth'
+              'qt5-webengine: QtWebEngine, QtWebEngineCore, QtWebEngineWidgets'
+              'qt5-x11extras: QtX11Extras'
+              'qt5-networkauth: QtNetworkAuth')
+
+  cd PyQt5_gpl-$pkgver
+  # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+  make DESTDIR="$pkgdir" INSTALL_ROOT="$pkgdir" install
+
+  # Provided by pyqt-common
+  rm "$pkgdir"/usr/share/qt/qsci/api/python/PyQt5.api
+}
+
+package_python2-pyqt5(){
+  pkgdesc="A set of Python 2.x bindings for the Qt5 toolkit"
+  depends=('python2-sip' 'pyqt5-common' 'python2-enum34')
+  optdepends=('python2-opengl: enable OpenGL 3D graphics in PyQt applications'
+              'python-dbus: for python-dbus mainloop support'
+              'qt5-multimedia: QtMultimedia, QtMultimediaWidgets'
+              'qt5-tools: QtHelp, QtDesigner'
+              'qt5-svg: QtSvg'
+              'qt5-webkit: QtWebKit, QtWebKitWidgets'
+              'qt5-xmlpatterns: QtXmlPatterns'
+              'qt5-declarative: QtQml, qmlplugin'
+              'qt5-serialport: QtSerialPort'
+              'qt5-websockets: QtWebSockets'
+              'qt5-connectivity: QtNfc, QtBluetooth'
+              'qt5-webengine: QtWebEngine, QtWebEngineCore, QtWebEngineWidgets'
+              'qt5-x11extras: QtX11Extras'
+              'qt5-networkauth: QtNetworkAuth')
+
+  cd PyQt5_gpl-$pkgver-py2
+  # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+  make DESTDIR="$pkgdir" INSTALL_ROOT="$pkgdir" install
+
+  # Fix conflicts with python-pyqt5
+  mv "$pkgdir"/usr/bin/{,python2-}pyuic5
+  mv "$pkgdir"/usr/bin/{,python2-}pylupdate5
+  mv "$pkgdir"/usr/bin/{,python2-}pyrcc5
+
+  rm "$pkgdir"/usr/lib/qt/plugins/designer/libpyqt5.so
+  rm "$pkgdir"/usr/lib/qt/plugins/PyQt5/libpyqt5qmlplugin.so
+  rm "$pkgdir"/usr/share/qt/qsci/api/python/PyQt5.api
+}

Copied: pyqt5/repos/staging-x86_64/pyqt-qt5.11.patch (from rev 324765, pyqt5/trunk/pyqt-qt5.11.patch)
===================================================================
--- staging-x86_64/pyqt-qt5.11.patch	                        (rev 0)
+++ staging-x86_64/pyqt-qt5.11.patch	2018-05-22 12:09:15 UTC (rev 324766)
@@ -0,0 +1,17 @@
+From: Fabian Vogt <fabian at ritter-vogt.de>
+Subject: QTest::waitForEvents() is internal only
+
+Must not be used, got removed with Qt 5.11.
+
+Index: PyQt5_gpl-5.10.1/sip/QtTest/qtestmouse.sip
+===================================================================
+--- PyQt5_gpl-5.10.1.orig/sip/QtTest/qtestmouse.sip
++++ PyQt5_gpl-5.10.1/sip/QtTest/qtestmouse.sip
+@@ -41,7 +41,6 @@ namespace QTest
+     void mousePress(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1);
+     void mouseRelease(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1);
+     void mouseEvent(QTest::MouseAction action, QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier, QPoint pos, int delay = -1);
+-    void waitForEvents() /ReleaseGIL/;
+     void mouseEvent(QTest::MouseAction action, QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier, QPoint pos, int delay = -1);
+     void mousePress(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1);
+     void mouseRelease(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1);

Copied: pyqt5/repos/staging-x86_64/pyqt-support-new-qt.patch (from rev 324765, pyqt5/trunk/pyqt-support-new-qt.patch)
===================================================================
--- staging-x86_64/pyqt-support-new-qt.patch	                        (rev 0)
+++ staging-x86_64/pyqt-support-new-qt.patch	2018-05-22 12:09:15 UTC (rev 324766)
@@ -0,0 +1,12 @@
+diff -ru a/sip/QtCore/QtCoremod.sip b/sip/QtCore/QtCoremod.sip
+--- a/sip/QtCore/QtCoremod.sip	2016-12-25 18:56:11.000000000 +0100
++++ b/sip/QtCore/QtCoremod.sip	2017-01-24 12:03:50.707514377 +0100
+@@ -22,7 +22,7 @@
+ 
+ %Module(name=PyQt5.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt5, keyword_arguments="Optional", use_limited_api=True)
+ 
+-%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_99 Qt_5_10_0 Qt_5_10_1}
++%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_99 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0}
+ 
+ %Platforms {WS_X11 WS_WIN WS_MACX}
+ 

Copied: pyqt5/repos/staging-x86_64/pyqt5-cura-crash.patch (from rev 324765, pyqt5/trunk/pyqt5-cura-crash.patch)
===================================================================
--- staging-x86_64/pyqt5-cura-crash.patch	                        (rev 0)
+++ staging-x86_64/pyqt5-cura-crash.patch	2018-05-22 12:09:15 UTC (rev 324766)
@@ -0,0 +1,559 @@
+diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquick_register_type.cpp
+--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp	2018-02-27 11:43:52.000000000 +0100
++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquick_register_type.cpp	2018-03-29 03:32:17.000000000 +0200
+@@ -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 @@
+         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 @@
+     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;
+ }
+diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.cpp
+--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp	1970-01-01 01:00:00.000000000 +0100
++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.cpp	2018-03-29 03:32:17.000000000 +0200
+@@ -0,0 +1,155 @@
++// This is the implementation of the QPyQuickWindow classes.
++//
++// Copyright (c) 2018 Riverbank Computing Limited <info at 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 at 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];
++
++
++#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); \
++} \
++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);
+diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.h
+--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h	1970-01-01 01:00:00.000000000 +0100
++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.h	2018-03-29 03:32:17.000000000 +0200
+@@ -0,0 +1,87 @@
++// This is the definition of the QPyQuickView classes.
++//
++// Copyright (c) 2018 Riverbank Computing Limited <info at 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 at 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 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
+diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.cpp
+--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp	1970-01-01 01:00:00.000000000 +0100
++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.cpp	2018-03-29 03:32:17.000000000 +0200
+@@ -0,0 +1,155 @@
++// This is the implementation of the QPyQuickWindow classes.
++//
++// Copyright (c) 2018 Riverbank Computing Limited <info at 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 at 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];
++
++
++#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); \
++} \
++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);
+diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.h
+--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h	1970-01-01 01:00:00.000000000 +0100
++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.h	2018-03-29 03:32:17.000000000 +0200
+@@ -0,0 +1,87 @@
++// This is the definition of the QPyQuickWindow classes.
++//
++// Copyright (c) 2018 Riverbank Computing Limited <info at 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 at 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 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
+diff -ur --new-file PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickview.sip
+--- PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip	2018-02-27 11:43:53.000000000 +0100
++++ PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickview.sip	2018-03-29 03:32:18.000000000 +0200
+@@ -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>
+diff -ur --new-file PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickwindow.sip
+--- PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip	2018-02-27 11:43:53.000000000 +0100
++++ PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickwindow.sip	2018-03-29 03:32:18.000000000 +0200
+@@ -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>



More information about the arch-commits mailing list