def __init__(self, parent): TaurusMenu.__init__(self, parent) self.build(self.menuData) # TODO: AttrConfigMenu is tangocentric avoid to use with other schemes if parent and getSchemeFromName(parent.getModelName()) != "tango": self.setEnabled(False)
def _getValueValidator(self, name): """Return the name validator for the mapped model name scheme :param name: (str) resource name :return: A specific TaurusValidator """ scheme = getSchemeFromName(name) f = Factory(scheme) if self._elementType == TaurusElementType.Attribute: return f.getAttributeNameValidator() elif self._elementType == TaurusElementType.Device: return f.getDeviceNameValidator() elif self._elementType == TaurusElementType.Authority: return f.getAuthorityNameValidator() else: msg = '_elementType must be one of (Authority, Device, Attribute)' raise Exception(msg)
def setSrc(self, src): '''processes the src and sets the values of _src, display, icon and ok attributes''' if src is None: self._src, self.display, self.icon, self.ok = '', '(Empty)', Qt.QIcon( ), True return src = str(src).strip() if src == self._src: return self._src = src # empty if src == '': self.display, self.icon, self.ok = '(Empty)', Qt.QIcon(), True return # TODO tango-centric. For tango devices try: dev = taurus.Device(src) if dev.getDeviceProxy() is not None: self.display, self.icon, self.ok = dev.getSimpleName( ), getElementTypeIcon(TaurusElementType.Device), True return else: self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme( 'network-error'), False return except: # for tango attributes try: attr = taurus.Attribute(src) dev = attr.getParentObj() except TaurusException: self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme( 'dialog-warning'), False return except Exception: # @todo: this catchall except is here as an emergency bugfix, but should probably be narrowed to PyTango DevFailed. self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme( 'network-error'), False return if getSchemeFromName(attr.getFullName()) == "tango" and \ dev.getDeviceProxy() is None: self.display, self.icon, self.ok = src, Qt.QIcon.fromTheme( 'network-error'), False return self.display, self.icon, self.ok = attr.getSimpleName( ), getElementTypeIcon(TaurusElementType.Attribute), True