[arch-commits] Commit in pyqt/trunk (PKGBUILD fix-pyuic4.patch)
Andrea Scarpino
andrea at archlinux.org
Tue Jul 17 18:10:36 UTC 2012
Date: Tuesday, July 17, 2012 @ 14:10:36
Author: andrea
Revision: 163678
Fix regression (FS#30728)
Added:
pyqt/trunk/fix-pyuic4.patch
Modified:
pyqt/trunk/PKGBUILD
------------------+
PKGBUILD | 14 +++++---
fix-pyuic4.patch | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 101 insertions(+), 4 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2012-07-17 18:01:27 UTC (rev 163677)
+++ PKGBUILD 2012-07-17 18:10:36 UTC (rev 163678)
@@ -6,17 +6,23 @@
pkgbase=pyqt
pkgname=('pyqt-common' 'pyqt' 'python2-pyqt')
pkgver=4.9.4
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url="http://riverbankcomputing.co.uk/software/pyqt/intro"
license=('GPL')
makedepends=('qt' 'python-sip' 'python-dbus' 'python2-sip' 'phonon'
'python-opengl' 'qt-assistant-compat' 'qtwebkit' 'python2-dbus')
- source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz")
-md5sums=('a0b6a820633366365af5124ddbd059c7')
+source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz"
+ 'fix-pyuic4.patch')
+md5sums=('a0b6a820633366365af5124ddbd059c7'
+ '097651aea0bafded5abdfd6d62afd2ad')
build() {
- cd "${srcdir}"
+ # FS#30728
+ cd "${srcdir}"/PyQt-x11-gpl-${pkgver}
+ patch -p1 -i "${srcdir}"/fix-pyuic4.patch
+ cd ..
+
cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver}
cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
Added: fix-pyuic4.patch
===================================================================
--- fix-pyuic4.patch (rev 0)
+++ fix-pyuic4.patch 2012-07-17 18:10:36 UTC (rev 163678)
@@ -0,0 +1,91 @@
+# HG changeset patch
+# User Phil Thompson <phil at riverbankcomputing.com>
+# Date 2012-07-13 13:39:28 +0100
+# Node ID 29b668ada14c1428a3bbfe8f0324c6626bd5ac9a
+# Parent fd0f3da9d79ca9858d10a20c15fb85456cb832d7
+Fixed a regression in pyuic's handling of custom widgets.
+
+diff --git a/pyuic/uic/Compiler/qobjectcreator.py b/pyuic/uic/Compiler/qobjectcreator.py
+--- a/pyuic/uic/Compiler/qobjectcreator.py
++++ b/pyuic/uic/Compiler/qobjectcreator.py
+@@ -1,6 +1,6 @@
+ #############################################################################
+ ##
+-## Copyright (C) 2011 Riverbank Computing Limited.
++## Copyright (C) 2012 Riverbank Computing Limited.
+ ## Copyright (C) 2006 Thorsten Marek.
+ ## All right reserved.
+ ##
+@@ -100,7 +100,6 @@
+ assert widgetClass not in self._widgets
+ self._widgets[widgetClass] = (baseClass, module)
+
+-
+ def _resolveBaseclass(self, baseClass):
+ try:
+ for x in range(0, 10):
+@@ -114,19 +113,17 @@
+ except KeyError:
+ raise ValueError("unknown baseclass %s" % baseClass)
+
+-
+ def search(self, cls):
+ try:
+- self._usedWidgets.add(cls)
+ baseClass = self._resolveBaseclass(self._widgets[cls][0])
+ DEBUG("resolved baseclass of %s: %s" % (cls, baseClass))
+-
+- return type(cls, (baseClass,),
+- {"module" : ""})
+-
+ except KeyError:
+ return None
+
++ self._usedWidgets.add(cls)
++
++ return type(cls, (baseClass, ), {"module" : ""})
++
+ def _writeImportCode(self):
+ imports = {}
+ for widget in self._usedWidgets:
+diff --git a/pyuic/uic/objcreator.py b/pyuic/uic/objcreator.py
+--- a/pyuic/uic/objcreator.py
++++ b/pyuic/uic/objcreator.py
+@@ -102,19 +102,26 @@
+ self._modules.append(self._customWidgets)
+
+ def createQObject(self, classname, *args, **kwargs):
+- # Handle scoped names, typically static factory methods.
+- parts = classname.split('.')
+- factory = self.findQObjectType(parts[0])
++ # Handle regular and custom widgets.
++ factory = self.findQObjectType(classname)
+
+- if factory is not None:
+- for part in parts[1:]:
+- factory = getattr(factory, part, None)
+- if factory is None:
+- break
+- else:
+- return self._cpolicy.instantiate(factory, *args, **kwargs)
++ if factory is None:
++ # Handle scoped names, typically static factory methods.
++ parts = classname.split('.')
+
+- raise NoSuchWidgetError(classname)
++ if len(parts) > 1:
++ factory = self.findQObjectType(parts[0])
++
++ if factory is not None:
++ for part in parts[1:]:
++ factory = getattr(factory, part, None)
++ if factory is None:
++ break
++
++ if factory is None:
++ raise NoSuchWidgetError(classname)
++
++ return self._cpolicy.instantiate(factory, *args, **kwargs)
+
+ def invoke(self, rname, method, args=()):
+ return self._cpolicy.invoke(rname, method, args)
More information about the arch-commits
mailing list