def fill(self): # # fill Hardware Objects tree # _instance = HardwareRepository() self.treeNodes = {} self.itemStates = {} self.hardwareObjectsTree.clear() self.root = QListViewItem(self.hardwareObjectsTree, 'Hardware Repository') if _instance is not None: filesgen = _instance.getHardwareRepositoryFiles() for name, file in filesgen: # # every name begins with '/' # dirnames = name.split('/')[1:] objectName = dirnames.pop() parent = self.root for dir in dirnames: if dir in self.treeNodes: parent = self.treeNodes[dir] else: newNode = QListViewItem(parent, dir) self.treeNodes[dir] = newNode newNode.setPixmap(0, QPixmap(self.folderClosed)) parent = newNode newLeaf = QCheckListItem(parent, objectName, QCheckListItem.CheckBox) newLeaf.setText(2, name) if _instance.hasHardwareObject(name): newLeaf.setOn(True) self.itemStates[name] = True if _instance.isDevice(name): newLeaf.setText(1, 'Device') elif _instance.isEquipment(name): newLeaf.setText(1, 'Equipment') elif _instance.isProcedure(name): newLeaf.setText(1, 'Procedure') else: self.itemStates[name] = False self.root.setOpen(True) self.hardwareObjectsTree.sort() else: logging.getLogger('HWR').error('Cannot get Hardware Repository files : not connected to server.')