def __repr__(self): cls = self.__class__ try: sClsName = upperFirst(cls.classLabel) if hasattr(cls, "classLabel") else cls.__name__ sRepr = ("{0}('{1}')".format(sClsName, toStr(getattr(self, cls.classReprAttr)))) except AttributeError: sRepr = cls.__name__ return sRepr
def __repr__(self): cls = self.__class__ try: sClsName = upperFirst(cls.classLabel) if hasattr( cls, "classLabel") else cls.__name__ sRepr = ("{0}('{1}')".format( sClsName, toStr(getattr(self, cls.classReprAttr)))) except AttributeError: sRepr = cls.__name__ return sRepr
def _writeAllValues(self, propertyNames=None): logMsg(self.__class__.__name__, log='all') sPropertyIter = self.__class__._iterPropertyArg(propertyNames) for sProperty in sPropertyIter: value = getattr(self, sProperty) bWriteOnly = False sSetFnc = "set" + upperFirst(sProperty) setFnc = getattr(self, sSetFnc, None) msg = u"Setting {0}.{1} to {2}( {3} ) using {4}".format( self, sProperty, type(value).__name__, toStr(value), setFnc if setFnc else "setPrpty") logMsg(msg, log="debug") bSuccess = False if setFnc: try: bSuccess = setFnc(value, writingAttrs=True) except TypeError: try: bSuccess = setFnc(value) except Exception, msg: logMsg(msg, warning=True) bWriteOnly = True else: bWriteOnly = True if bWriteOnly: metaprpty = self.__metaProperties[sProperty] if metaprpty.isWritable(): bSuccess = metaprpty.write(value) else: logMsg(u"<{}> Writing to non-writable property: {}.{} .". format(getCaller(), self, metaprpty.name), warning=True) bSuccess = True if not bSuccess: logMsg("Failed " + lowerFirst(msg), warning=True)
def _writeAllValues(self, propertyNames=None): logMsg(self.__class__.__name__, log='all') sPropertyIter = self.__class__._iterPropertyArg(propertyNames) for sProperty in sPropertyIter: value = getattr(self, sProperty) bWriteOnly = False sSetFnc = "set" + upperFirst(sProperty) setFnc = getattr(self, sSetFnc, None) msg = u"Setting {0}.{1} to {2}( {3} ) using {4}".format( self, sProperty, type(value).__name__, toStr(value), setFnc if setFnc else "setPrpty") logMsg(msg, log="debug") bSuccess = False if setFnc: try: bSuccess = setFnc(value, writingAttrs=True) except TypeError: try: bSuccess = setFnc(value) except Exception, msg: logMsg(msg , warning=True) bWriteOnly = True else: bWriteOnly = True if bWriteOnly: metaprpty = self.__metaProperties[sProperty] if metaprpty.isWritable(): bSuccess = metaprpty.write(value) else: logMsg(u"<{}> Writing to non-writable property: {}.{} ." .format(getCaller(), self, metaprpty.name), warning=True) bSuccess = True if not bSuccess: logMsg("Failed " + lowerFirst(msg), warning=True)
def __repr__(self): sClsName = self.__class__.__name__ sRepr = ("{}('{}')".format(sClsName, toStr(self.text()))) return sRepr
class BaseContextMenu(QtGui.QMenu): def __init__(self, parentView): super(BaseContextMenu, self).__init__(parentView) self.view = parentView self.actionSelection = [] self.actionSelectionLoaded = False self.createActions() self.buildSubmenus() def model(self): model = self.view.model() if isinstance(model, QtGui.QSortFilterProxyModel): return model.sourceModel() return model def getActionSelection(self): view = self.view model = view.model() selectModel = view.selectionModel() selBhv = view.selectionBehavior() if selBhv == SelectionBehavior.SelectRows: selIndexes = selectModel.selectedRows(0) elif selBhv == SelectionBehavior.SelectColumns: selIndexes = selectModel.selectedColumns(0) else: selIndexes = selectModel.selectedIndexes() if len(selIndexes) > 1: curIndex = selectModel.currentIndex() if selBhv == SelectionBehavior.SelectRows: curIndex = curIndex.sibling(curIndex.row(), 0) elif selBhv == SelectionBehavior.SelectColumns: curIndex = curIndex.sibling(0, curIndex.column()) if curIndex.isValid() and curIndex != selIndexes[-1]: try: selIndexes.remove(curIndex) except ValueError: pass selIndexes.append(curIndex) itemFromIndex = model.itemFromIndex return [itemFromIndex(idx) for idx in selIndexes] def loadActionSelection(self): self.actionSelection = self.getActionSelection() self.actionSelectionLoaded = True def assertActionSelection(self): if not self.actionSelectionLoaded: raise RuntimeError("Action Selection not loaded.") else: self.actionSelectionLoaded = False def launchAction(self, actionDct, checked): self.assertActionSelection() sActionMsg = "'{}'>'{}'".format(actionDct["menu"], actionDct["label"]) try: logMsg(u'# Action: {} #'.format(sActionMsg)) except Exception, e: logMsg(e, warning=True) args = actionDct.get("args", []) + self.actionSelection kwargs = actionDct.get("kwargs", {}) func = actionDct["fnc"] try: return func(*args, **kwargs) except Exception, err: sMsg = "Could not launch {} : \n\n> ".format(sActionMsg) confirmDialog(title='SORRY !' , message=sMsg + toStr(err) , button=["OK"] , defaultButton="OK" , cancelButton="OK" , dismissString="OK" , icon="critical") raise