- painter.drawRoundedRect(rect, 4, 4)
-
- if status_data == node_status['in']: # already in the slice
- painter.fillPath(path, QColor.fromRgb(0, 250, 0))
- painter.setPen(QColor.fromRgb(0, 0, 0))
- painter.drawText(option.rect, 0, QString(data))
-
- elif status_data == node_status['add']: # newly added to the slice
- painter.fillPath(path, QColor.fromRgb(0, 250, 0))
- painter.setPen(QColor.fromRgb(0, 0, 0))
- painter.drawText(option.rect, 0, QString(data))
- painter.drawRect(x + w + 10, y + 3, 10, 10)
- painter.fillRect(x + w + 10, y + 3, 10, 10, QColor.fromRgb(0, 250, 0))
-
- elif status_data == node_status['remove']: # removed from the slice
- painter.fillPath(path, QColor.fromRgb(250, 0, 0))
- painter.setPen(QColor.fromRgb(0, 0, 0))
- painter.drawText(option.rect, 0, QString(data))
- painter.drawRect(x + w + 10, y + 3, 10, 10)
- painter.fillRect(x + w + 10, y + 3, 10, 10, QColor.fromRgb(250, 0, 0))
-
- painter.restore()
-
-class TreeItem:
- def __init__(self, data, parent=None):
- self.parentItem = parent
- self.itemData = data
- self.childItems = []
-
- def clear(self):
- for child in self.childItems:
- child.clear()
- del child
- del self.childItems
- self.childItems = []
-
- def allChildItems(self):
- all = []
- for c in self.childItems:
- all.append(c)
- if c.childItems:
- for cc in c.childItems:
- all.append(cc)
- return all
-
- def appendChild(self, child):
- self.childItems.append(child)
-
- def child(self, row):
- return self.childItems[row]
-
- def childCount(self):
- return len(self.childItems)
-
- def childNumber(self):
- if self.parentItem:
- return self.parentItem.childItems.index(self)
- return 0
-
- def columnCount(self):
- return len(self.itemData)
-
- def data(self, column):
- return self.itemData[column]
-
- def insertChildren(self, position, count, columns):
- if position < 0 or position > len(self.childItems):
- return False
-
- for row in range(count):
- data = self.data(columns)
- item = TreeItem(data, self)
- self.childItems.insert(position, item)