extra/pyqt to 4.9.4-2

This commit is contained in:
Kevin Mihelich 2012-07-18 10:22:41 -04:00
parent eef6896236
commit a9eef11f4f
2 changed files with 97 additions and 3 deletions

View file

@ -9,20 +9,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"
"PyQt4-4.7.3-qreal_float_support.patch")
"PyQt4-4.7.3-qreal_float_support.patch"
'fix-pyuic4.patch')
md5sums=('a0b6a820633366365af5124ddbd059c7'
'a20d7022e91071f838bd4908851a0f7b')
'a20d7022e91071f838bd4908851a0f7b'
'097651aea0bafded5abdfd6d62afd2ad'))
build() {
cd "${srcdir}"/PyQt-x11-gpl-${pkgver}
patch -p1 -i "${srcdir}"/PyQt4-4.7.3-qreal_float_support.patch
patch -p1 -i "${srcdir}"/fix-pyuic4.patch
cd "${srcdir}"
cp -r PyQt-x11-gpl-${pkgver} Py2Qt-x11-gpl-${pkgver}

View file

@ -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)