Example #1
0
 def addFieldDef(self,fieldDef, recover = None):
     self.defOrder = ['fieldName', 'fieldMap', 'fieldLabel', 'fieldType', 'fieldHint', 'fieldRequired', 'fieldDefault', 'fieldQtype', 'fieldWidget', 'fieldChoices','fieldAppearance','fieldReadOnly','fieldCalculation']
     row = []
     self.setIcon(QIcon(os.path.join(os.path.dirname(__file__),"field.png")))
     if not 'fieldReadOnly' in fieldDef:
         fieldDef['fieldReadOnly'] = ''
     if not 'fieldCalculation' in fieldDef:
         fieldDef['fieldCalculation'] = ''
     if recover: #backup dict provided if recovering fields state
         for fdef in self.defOrder:
             if fdef == 'fieldName':
                 sub_item = QStandardItem(None)
             elif fdef == 'fieldRequired':
                 sub_item = QStandardItem(None)
                 sub_item.setCheckable(True)
                 if fieldDef['fieldRequired']:
                     sub_item.setCheckState(Qt.Checked)
                 else:
                     sub_item.setCheckState(Qt.Unchecked)
             else:
                 sub_item = QStandardItem(fieldDef[fdef])
             row.append(sub_item)
         self.appendRow(row)
         self.setCheckable(True)
         if fieldDef['fieldEnabled']:
             self.setCheckState(Qt.Checked)
         else:
             self.setCheckState(Qt.Unchecked)
     else:
         fieldDef['fieldType'] = self.getODKType(fieldDef)
         if fieldDef['fieldType'] in appearanceDef.keys():
             fieldDef['fieldAppearance'] = appearanceDef[fieldDef['fieldType']][0]
         else:
             fieldDef['fieldAppearance'] = 'default'
         for fdef in self.defOrder:
             if fdef == 'fieldName':
                 sub_item = QStandardItem(None)
             elif fdef == 'fieldRequired':
                 sub_item = QStandardItem(None)
                 sub_item.setCheckable(True)
                 if fieldDef['fieldRequired']:
                     sub_item.setCheckState(Qt.Checked)
                 else:
                     sub_item.setCheckState(Qt.Unchecked)
             elif fdef == 'fieldChoices':
                 sub_item = QStandardItem(json.dumps(fieldDef[fdef]))
             else:
                 sub_item = QStandardItem(fieldDef[fdef] or '')
             sub_item.setDropEnabled(False)
             sub_item.setDragEnabled(False)
             row.append(sub_item)
         self.appendRow(row)
         self.setCheckable(True)
         if fieldDef['fieldEnabled']:
             self.setCheckState(Qt.Checked)
         else:
             self.setCheckState(Qt.Unchecked)
Example #2
0
 def addGroup(self, name = None, metadata = None):
     model = self.model()
     group_item = QStandardItem(name or 'New Group')
     group_item.setFlags(Qt.ItemIsSelectable|Qt.ItemIsEditable)
     group_item.setEnabled(True)
     if metadata:
         group_item.setText('Metadata')
     group_item.setDropEnabled(True)
     group_item.setDragEnabled(True)
     group_item.setCheckable(True)
     group_item.setCheckState(Qt.Checked)
     group_item.setIcon(QIcon(os.path.join(os.path.dirname(__file__),"group.png")))
     model.appendRow([group_item])
     if not name:
         self.setCurrentIndex(model.indexFromItem(group_item))
     return group_item
Example #3
0
 def scanLibDir ( self ) :
   # process directories
   sortFlags = QDir.Name
   filterFlags = ( QDir.AllDirs | QDir.NoDotAndDotDot )
   fileList = self.libdir.entryInfoList ( filterFlags, sortFlags ) 
   
   for f in fileList :
     item = QStandardItem ( f.fileName () )
     item.setEditable ( False )
     item.setDragEnabled ( False )
     
     # set bold font for folders
     font = item.font()
     font.setBold ( True )
     item.setFont ( font )
     
     item.setWhatsThis ( 'folder' )
     
     currparent = self.parentItem
     self.parentItem.appendRow ( item )
     self.parentItem = item
     
     currlevel = self.liblevel # store current level
     self.liblevel = self.liblevel + f.fileName () + '/' 
     self.libdir.cd ( f.fileName () )
     
     self.scanLibDir () # recurcive call itself
     
     self.liblevel = currlevel # restore current level
     self.libdir.cdUp ()
     
     self.parentItem = currparent
       
   # process XML files
   filterFlags = QDir.Files    
   fileList = self.libdir.entryInfoList ( [ '*.xml' ], filterFlags, sortFlags ) 
   for f in fileList :
     self.scanXmlNodes ( f.fileName () )