X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fscreens%2Fmainscreen.py;h=32d984901fccb4c4b05ad227426d0e5ea13d1c5e;hp=4b636bc0249dd09dfe2e93eec3634200d8afe929;hb=a8f5d8a8a1fc3baf55c85d8af3243944a2dca26c;hpb=a276ef99d41c4bf3fedf1f2a4e1729666b6f3e4d diff --git a/sface/screens/mainscreen.py b/sface/screens/mainscreen.py index 4b636bc..32d9849 100644 --- a/sface/screens/mainscreen.py +++ b/sface/screens/mainscreen.py @@ -19,6 +19,29 @@ class NodeView(QTreeView): self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.setAttribute(Qt.WA_MacShowFocusRect, 0) +class ItemDelegate(QStyledItemDelegate): + def __init__(self, parent): + QStyledItemDelegate.__init__(self) + + def paint(self, painter, option, index): + data = "%s" % index.data().toString() + + if data.startswith("*"): # already in the sliver + data = " %s " % data[1:] + + rect = option.rect + fm = QFontMetrics(option.font) + w = fm.width(QString(data)) + rect.setWidth(w) + + painter.save() + painter.fillRect(rect, QColor.fromRgb(0, 250, 0)) + painter.setPen(QColor.fromRgb(0, 0, 0)) + painter.drawText(option.rect, 0, QString(data)) + painter.restore() + else: # others, fall back to default view + QStyledItemDelegate.paint(self, painter, option, index) + class TreeItem: def __init__(self, data, parent=None): self.parentItem = parent @@ -214,11 +237,11 @@ class SliceWidget(QWidget): available_nodes = filter(lambda x:x not in sliver_nodes, all_nodes) for node in sliver_nodes: - nodeItem = TreeItem([QString(""), QString(node), QString("True")], networkItem) + nodeItem = TreeItem([QString(""), QString("*%s" % node), QString("Implement Checkbox")], networkItem) networkItem.appendChild(nodeItem) for node in available_nodes: - nodeItem = TreeItem([QString(""), QString(node), QString("False")], networkItem) + nodeItem = TreeItem([QString(""), QString(node), QString("Implement Checkbox")], networkItem) networkItem.appendChild(nodeItem) self.nodeModel.rootItem.appendChild(networkItem) @@ -226,6 +249,9 @@ class SliceWidget(QWidget): self.nodeView.expandAll() self.nodeView.resizeColumnToContents(1) + self.delegate = ItemDelegate(self) + self.nodeView.setItemDelegateForColumn(1, self.delegate) + class MainScreen(SfaScreen): def __init__(self, parent):