mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
91 lines
3.1 KiB
Diff
91 lines
3.1 KiB
Diff
# 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)
|