Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 321100 Details for
Bug 431070
dev-python/PyQt4 4.9.4 fails with custom widgets
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch to fix custom widgets support
fix_custom_widgets.patch (text/plain), 3.14 KB, created by
Laurent Bachelier
on 2012-08-12 12:11:36 UTC
(
hide
)
Description:
patch to fix custom widgets support
Filename:
MIME Type:
Creator:
Laurent Bachelier
Created:
2012-08-12 12:11:36 UTC
Size:
3.14 KB
patch
obsolete
> > ># HG changeset patch ># User Phil Thompson <phil@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)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 431070
: 321100