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)