def createTree(self): objects = list(self.model) objects = [object for object in objects if self.filter.match(object)] objects.sort(key=getIdentifier) groups = {} for object in objects: if isinstance(object, Group): key = None else: key = self.getTreeKey(object) if key in groups: groups[key].append(object) else: groups[key] = [object] root = [] for key in sorted(groups.keys()): if key: label = self.createTreeKeyLabel(key) else: label = tr('Groups') tree = QTreeWidgetItem([label]) unsetFlag(tree, Qt.ItemIsSelectable) for object in groups[key]: node = self.createTreeItem(object) tree.addChild(node) root.append(tree) return root
def createTree(self): nodes = self._createTree(list(self.model)) root = QTreeWidgetItem([tr("Network interfaces")]) root.setIcon(0, QIcon(":/icons-32/home.png")) unsetFlag(root, Qt.ItemIsSelectable) for node in nodes: root.addChild(node) return [root]
def fillHeader(self, row, chain): item = chain.createTableWidgetItem() self.table.setSpan(row, 0, 1, 3) self.table.setItem(row, 0, item) item = QTableWidgetItem() unsetFlag(item, Qt.ItemIsEditable) item.setText(tr("Translated to")) item.setTextAlignment(Qt.AlignHCenter) item.setBackgroundColor(DECISION_COLORS['ACCEPT']) self.table.setSpan(row, 4, 1, 3) self.table.setItem(row, 4, item)
def createTreeItem(self, object): icon = object.getIcon() label = object.formatID() tree = QTreeWidgetItem([label]) tree.setData(0, Qt.UserRole, QVariant(object['id'])) tooltip = object.getToolTip() if tooltip: tree.setToolTip(0, tooltip) if icon: tree.setIcon(0, QIcon(icon)) font = tree.font(0) if object['editable']: font.setBold(True) if not object['references']: font.setItalic(True) tree.setFont(0, font) if not object['editable']: unsetFlag(tree, Qt.ItemIsEditable) return tree
def fillTable(self): table = self.ui.table table.clear() columns = [tr("Host"), tr("Type"), tr("Generic"), tr("Physical")] table.setColumnCount(len(columns)) table.setHorizontalHeaderLabels(columns) table_entries = {} if self.window.multisite_type == MULTISITE_MASTER: if self.ui.hosts_combo.currentIndex() == 0: table.showColumn(0) table_entries = self.links_list else: table.hideColumn(0) table_entries = { unicode(self.ui.hosts_combo.currentText()) : self.links_list[unicode(self.ui.hosts_combo.currentText())] } else: table_entries = self.links_list count = 0 for host in table_entries.iterkeys(): count += sum(len(type_links) for type_links in table_entries[host].itervalues()) table.setRowCount(count) row = 0 for host in table_entries.iterkeys(): for type, links in table_entries[host].iteritems(): for generic_id, physical in links.iteritems(): # Hostname item = QTableWidgetItem(QIcon(Resource.ICONS[HOST_RESTYPE]), host) unsetFlag(item, Qt.ItemIsEditable) table.setItem(row, 0, item) # Type item = QTableWidgetItem(QIcon(ICONS[type]), type) unsetFlag(item, Qt.ItemIsEditable) table.setItem(row, 1, item) # Generic ID item = QTableWidgetItem(generic_id) unsetFlag(item, Qt.ItemIsEditable) table.setItem(row, 2, item) # Physical ID item = QTableWidgetItem(physical) table.setItem(row, 3, item) # Hide the row if the value is set if self.ui.hide_defined.isChecked() and physical: table.hideRow(row) else: table.showRow(row) row += 1 table.resizeColumnsToContents()
def createTableWidgetItem(self): item = QTableWidgetItem() unsetFlag(item, Qt.ItemIsEditable) item.setTextAlignment(Qt.AlignHCenter) self._setTableWidgetItemAttr(item) return item