From: <cpa...@ce...> - 2015-11-23 14:37:33
|
From: cpascual <cpa...@ce...> The "change read/write widget" feature of taurusform relies on the TaurusWidgetFactory to obtain class objects from the class name, but names of locally defined classes are not supported. Fix it by using the globals before the factory. Do the same for all other setXXXwidgetClass() methods. --- lib/taurus/qt/qtgui/panel/taurusvalue.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/taurus/qt/qtgui/panel/taurusvalue.py b/lib/taurus/qt/qtgui/panel/taurusvalue.py index 85b00d0..543ba0e 100644 --- a/lib/taurus/qt/qtgui/panel/taurusvalue.py +++ b/lib/taurus/qt/qtgui/panel/taurusvalue.py @@ -607,6 +607,7 @@ class TaurusValue(Qt.QWidget, TaurusBaseWidget): def labelWidgetClassFactory(self, classID): if self._customWidget is not None: return None if classID is None or classID == 'None': return None + classID = globals().get(classID, classID) if isinstance(classID, type): return classID elif str(classID) == 'Auto': return self.getDefaultLabelWidgetClass() else: return TaurusWidgetFactory().getWidgetClass(classID) @@ -614,7 +615,7 @@ class TaurusValue(Qt.QWidget, TaurusBaseWidget): def readWidgetClassFactory(self, classID): if self._customWidget is not None: return None if classID is None or classID == 'None': return None - + classID = globals().get(classID, classID) if isinstance(classID, type): ret = classID elif str(classID) == 'Auto': ret = self.getDefaultReadWidgetClass() else: ret = TaurusWidgetFactory().getWidgetClass(classID) @@ -634,6 +635,7 @@ class TaurusValue(Qt.QWidget, TaurusBaseWidget): if self._customWidget is not None: return None if classID is None or classID == 'None': return None if self._compact and not ignoreCompact: return None + classID = globals().get(classID, classID) if isinstance(classID, type): return classID elif str(classID) == 'Auto': return self.getDefaultWriteWidgetClass() else: return TaurusWidgetFactory().getWidgetClass(classID) @@ -641,12 +643,14 @@ class TaurusValue(Qt.QWidget, TaurusBaseWidget): def unitsWidgetClassFactory(self, classID): if self._customWidget is not None: return None if classID is None or classID == 'None': return None + classID = globals().get(classID, classID) if isinstance(classID, type): return classID elif str(classID) == 'Auto': return self.getDefaultUnitsWidgetClass() else: return TaurusWidgetFactory().getWidgetClass(classID) def customWidgetClassFactory(self, classID): if classID is None or classID == 'None': return None + classID = globals().get(classID, classID) if isinstance(classID, type): return classID elif str(classID) == 'Auto': return self.getDefaultCustomWidgetClass() else: return TaurusWidgetFactory().getWidgetClass(classID) @@ -654,6 +658,7 @@ class TaurusValue(Qt.QWidget, TaurusBaseWidget): def extraWidgetClassFactory(self, classID): if self._customWidget is not None: return None if classID is None or classID == 'None': return None + classID = globals().get(classID, classID) if isinstance(classID, type): return classID elif str(classID) == 'Auto': return self.getDefaultExtraWidgetClass() else: return TaurusWidgetFactory().getWidgetClass(classID) -- 2.6.2 |