Display graph/set number in tree; fixes T243
This commit is contained in:
		| @@ -21,7 +21,6 @@ class DataTree(QtWidgets.QTreeWidget): | ||||
|     def __init__(self, parent=None): | ||||
|         super().__init__(parent=parent) | ||||
|  | ||||
|         self.setColumnCount(1) | ||||
|         self.invisibleRootItem().setFlags(self.invisibleRootItem().flags() ^ QtCore.Qt.ItemIsDropEnabled) | ||||
|  | ||||
|         self.itemChanged.connect(self.data_change) | ||||
| @@ -44,7 +43,7 @@ class DataTree(QtWidgets.QTreeWidget): | ||||
|         header.setSectionResizeMode(0, QtWidgets.QHeaderView.Stretch) | ||||
|         header.setVisible(False) | ||||
|         header.moveSection(1, 0) | ||||
|         self.setColumnWidth(1, 16) | ||||
|         # self.setColumnWidth(1, 16) | ||||
|         self.setItemDelegateForColumn(1, HeaderDelegate()) | ||||
|  | ||||
|     def add_graph(self, idd: str, name: str): | ||||
| @@ -59,6 +58,8 @@ class DataTree(QtWidgets.QTreeWidget): | ||||
|         self._checked_graphs.add(idd) | ||||
|         item.setExpanded(True) | ||||
|  | ||||
|         self.update_indexes() | ||||
|  | ||||
|     def add_item(self, items: Union[tuple, List[tuple]], gid: str): | ||||
|         if isinstance(items, tuple): | ||||
|             items = [items] | ||||
| @@ -78,6 +79,8 @@ class DataTree(QtWidgets.QTreeWidget): | ||||
|                 self.resizeColumnToContents(0) | ||||
|                 break | ||||
|  | ||||
|         self.update_indexes() | ||||
|  | ||||
|     @QtCore.pyqtSlot(QtWidgets.QTreeWidgetItem) | ||||
|     def data_change(self, item: QtWidgets.QTreeWidgetItem) -> Tuple[set, set]: | ||||
|         idd = item.data(0, QtCore.Qt.UserRole) | ||||
| @@ -189,6 +192,8 @@ class DataTree(QtWidgets.QTreeWidget): | ||||
|                                   to_parent.data(0, QtCore.Qt.UserRole), take_from, | ||||
|                                   pos=-1 if append else row) | ||||
|  | ||||
|         self.update_indexes() | ||||
|  | ||||
|     def move_sets(self, sid: str, gid_in: str, gid_out: str): | ||||
|         self.blockSignals(True) | ||||
|         to_parent = None | ||||
| @@ -218,8 +223,29 @@ class DataTree(QtWidgets.QTreeWidget): | ||||
|         from_parent.removeChild(it) | ||||
|         to_parent.addChild(it) | ||||
|  | ||||
|         self.update_indexes() | ||||
|  | ||||
|         self.blockSignals(False) | ||||
|  | ||||
|     def update_indexes(self): | ||||
|         graph_cnt = -1 | ||||
|         set_cnt = 0 | ||||
|         iterator = QtWidgets.QTreeWidgetItemIterator(self) | ||||
|         while iterator.value(): | ||||
|             item = iterator.value() | ||||
|             if item is not None: | ||||
|                 if item.parent() is None: | ||||
|                     graph_cnt += 1 | ||||
|                     set_cnt = 0 | ||||
|                     item.setText(1, f'G[{graph_cnt}]') | ||||
|                 else: | ||||
|                     item.setText(1, f'G[{graph_cnt}].S[{set_cnt}]') | ||||
|                     set_cnt += 1 | ||||
|  | ||||
|             iterator += 1 | ||||
|  | ||||
|         self.resizeColumnToContents(1) | ||||
|  | ||||
|     def set_name(self, sid, name): | ||||
|         iterator = QtWidgets.QTreeWidgetItemIterator(self) | ||||
|         while iterator.value(): | ||||
| @@ -306,6 +332,8 @@ class DataTree(QtWidgets.QTreeWidget): | ||||
|  | ||||
|             iterator += 1 | ||||
|  | ||||
|         self.update_indexes() | ||||
|  | ||||
|     def contextMenuEvent(self, evt): | ||||
|         menu = QtWidgets.QMenu() | ||||
|         _ = menu.addAction('Hello') | ||||
|   | ||||
| @@ -231,5 +231,11 @@ class HeaderDelegate(QtWidgets.QStyledItemDelegate): | ||||
|  | ||||
|         style = QtWidgets.QApplication.style() | ||||
|         style.drawControl(QtWidgets.QStyle.CE_HeaderSection, header_option, painter) | ||||
|  | ||||
|         text_rect = style.subElementRect(QtWidgets.QStyle.SE_ItemViewItemText, option, None) | ||||
|         text_rect.adjust(2, 0, 0, 0) | ||||
|  | ||||
|         if option.state & QtWidgets.QStyle.State_Selected: | ||||
|             painter.fillRect(option.rect, option.palette.highlight()) | ||||
|             painter.fillRect(option.rect, option.palette.highlight()) | ||||
|  | ||||
|         painter.drawText(text_rect, option.displayAlignment, index.data(QtCore.Qt.DisplayRole)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user