Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
 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)