def setFromObject(self, obj): tm = obj if not tm: return if self.acosPerms_: self.acosPerms_.clear() self.acosPerms_ = None self.acosPerms_ = QtCore.QDict(31) self.acosPerms_.setAutoDelete(True) fL = FLTableMetaData(tm.fieldList()) if not fL: return field = FLFieldMetaData() permW = QtCore.Qchar() permR = QtCore.Qchar() it = QtCore.QDictIterator(fL) while not it.current() == 0: field = it.current() ++it permR = '-' permW = '-' if field.visible(): permR = 'r' if field.editable(): permW = 'w' self.acosPerms_.replace(field.name(), QString(permR + permW))
def processObject(self, obj): mw = QtGui.QMainWindow(obj) if not mw or not self.acosPerms_: return if not self.perm_.isEmpty(): l = QtCore.QObjectList(mw.queryList("QAction")) ito = QtCore.QObjectListIt(l) a = QtCore.QAction while not ito.current() == 0: a = ito.current() ++ito if self.acosPerm_[a.name()]: continue if self.perm_ == "-w" or self.perm_ == "--": a.setVisible(False) del l it = QtCore.QDictIterator(self.acosPerms_) for i in range(len(it.current())): a = mw.child(it.currentKey(), "QAction") if a: perm = it if perm in ("-w", "--"): a.setVisible(False)
def processObject(self, obj): if not obj or obj.aqWasDeleted(): return tm = FLTableMetaData(obj) if not tm: return maskPerm = 0 hasAcos = bool(self.acosPerms_ and not self.acosPerms_.isEmpty()) if not self.perm_.isEmpty(): if self.perm_.left(1) == "r": maskPerm |= 2 if self.perm_.right(1) == "w": maskPerm |= 1 elif hasAcos: maskPerm = 8 else: return fieldPerm = "" fieldPermPtr = "" maskFieldPerm = 0 fL = FLFieldMetaDataList(tm.fieldList()) if not fL: return field = None it = QtCore.QDictIterator(fL) while not it.current() == 0: field = it.current() maskFieldPerm = maskPerm ++it if hasAcos and (fieldPermPtr = self.acosPerms_[field.name()]): fieldPerm = fieldPermPtr maskFieldPerm = 0 if fieldPerm.lef(1) == "r": maskFieldPerm |= 2 if fieldPerm.right(1) == "w": maskFieldPerm |= 1 if maskFieldPrem == 0: field.setVisible(False) field.setEditable(False) elif maskFieldPerm == 1: field.setVisible(False) field.setEditable(True) elif maskFieldPerm == 2: field.setVisible(True) field.setEditable(False) elif maskFieldPerm == 3: field.setVisible(True) field.setEditable(True)