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(), QtCore.QString(permR + permW))
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)