X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fscreens%2Frspecscreen.py;h=772f4cb6ef038e0b6443bb34422d72a8de6eb1fc;hp=320e065e6fd598eb0bd18e32d79bf01237167a36;hb=8c9d054133c19052e03bc3029ade2476271ac55d;hpb=6de9ffc916cb64e68d10892e05b712d73bc0f824 diff --git a/sface/screens/rspecscreen.py b/sface/screens/rspecscreen.py index 320e065..772f4cb 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: @@ -149,10 +171,14 @@ class DomItem: return self.rowNumber + class RSpecWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) + + self.view = RSpecView(self) self.updateView() + def updateView(self): document = QDomDocument("RSpec") @@ -163,9 +189,10 @@ class RSpecWidget(QWidget): document.setContent(open(rspec_file,'r').read()) model = DomModel(document, self) - view = QTreeView(self) - view.setHeaderHidden(True) + view = RSpecView(self) view.setModel(model) +# too slow! +# view.expandAll() layout = QVBoxLayout() layout.addWidget(view)