X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fscreens%2Frspecscreen.py;h=dc79c8361e9fd7a14ce24ef7ca0c5b6d5678c094;hp=5b324f3f843655f9bff4329962ac482479947a16;hb=0f6d855d510b419a752cb8e5f67a5489c04d92e9;hpb=d93310c8e667d3256c07272c0f3a719cdd1fa719 diff --git a/sface/screens/rspecscreen.py b/sface/screens/rspecscreen.py index 5b324f3..dc79c83 100644 --- a/sface/screens/rspecscreen.py +++ b/sface/screens/rspecscreen.py @@ -9,10 +9,31 @@ from sface.config import config from sface.screens.sfascreen import SfaScreen +class RSpecView(QTreeView): + def __init__(self, parent): + QTreeView.__init__(self, parent) + + self.setAnimated(True) + self.setItemsExpandable(True) + self.setRootIsDecorated(True) + self.setHeaderHidden(True) + self.setAttribute(Qt.WA_MacShowFocusRect, 0) + self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) + + class DomModel(QAbstractItemModel): def __init__(self, document, parent = 0): QAbstractItemModel.__init__(self, parent) self.domDocument = document + # one of the children of the rootItem is the 'xml' thing. + # here I delete it. + childList = document.childNodes() + for i in range(childList.count()): + currElem = childList.item(i) + if (currElem.nodeType() == + QDomNode.ProcessingInstructionNode): + document.removeChild(currElem) + break self.rootItem = DomItem(document, 0); def data(self, index, role): @@ -50,7 +71,8 @@ class DomModel(QAbstractItemModel): elif node.nodeType() == QDomNode.EntityNode: return QString('unsupported node type') elif node.nodeType() == QDomNode.ProcessingInstructionNode: - return node.nodeName() + return QVariant() + #return node.nodeName() elif node.nodeType() == QDomNode.CommentNode: return QString('#').append(node.nodeValue()) elif node.nodeType() == QDomNode.DocumentNode: @@ -77,13 +99,7 @@ class DomModel(QAbstractItemModel): return Qt.ItemIsEnabled | Qt.ItemIsSelectable def headerData(self, section, orientation, role): - if orientation == Qt.Horizontal and role == Qt.DisplayRole: - if section == 0: - return QString("Do I need an header?") - else: - return QVariant() - else: - return QVariant() + return QVariant() def index(self, row, column, parent): if not parent.isValid(): @@ -155,6 +171,7 @@ class DomItem: return self.rowNumber + class RSpecWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) @@ -169,8 +186,10 @@ class RSpecWidget(QWidget): document.setContent(open(rspec_file,'r').read()) model = DomModel(document, self) - view = QTreeView(self) + view = RSpecView(self) view.setModel(model) +# too slow! +# view.expandAll() layout = QVBoxLayout() layout.addWidget(view)