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):
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:
return self.rowNumber
+
class RSpecWidget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
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)