childList = document.childNodes()
for i in range(childList.count()):
currElem = childList.item(i)
- if (currElem.nodeType() ==
- QDomNode.ProcessingInstructionNode):
+ if (currElem.nodeType() == QDomNode.ProcessingInstructionNode):
document.removeChild(currElem)
break
self.rootItem = DomItem(document, 0);
qslist = QStringList()
for i in range(attributeMap.count()):
attr = attributeMap.item(i)
- elem = (attr.nodeName()
- .append(QString('="'))
- .append(attr.nodeValue())
- .append(QString('"')))
+ elem = '%s="%s"' % (attr.nodeName(), attr.nodeValue())
qslist.append(elem)
- return (QString('<').
- append(node.nodeName()).
- append(' ').
- append(qslist.join(' ')).
- append('>'))
+ return QString("<%s %s>" % (node.nodeName(), qslist.join(' ')))
elif node.nodeType() == QDomNode.AttributeNode:
return QString('Whozat?!')
elif node.nodeType() == QDomNode.TextNode:
def flags(self, index):
if not index.isValid():
return Qt.ItemIsEnabled
- # does this `|` thing hold?
return Qt.ItemIsEnabled | Qt.ItemIsSelectable
def headerData(self, section, orientation, role):
return QVariant()
- def index(self, row, column, parent):
- if not parent.isValid():
+ def index(self, row, column, parent=None):
+ if not parent or not parent.isValid():
parentItem = self.rootItem
else:
parentItem = parent.internalPointer()
return parentItem.node().childNodes().count()
def columnCount(self, parent):
- # just one column
- # we'll print tag name (and attributes)
- # or the tag content
+ # just one column we'll print tag name (and attributes) or the
+ # tag content
return 1
class DomItem:
- # wrapper around PyQt4.QtXml.QDomNode
- # it keeps an hash of childrens for
- # performance reasons
+ # wrapper around PyQt4.QtXml.QDomNode it keeps an hash of
+ # childrens for performance reasons
def __init__(self, node, row, parent = 0):
# node is of type PyQt4.QtXml.QDomNode
return self.rowNumber
-
class RSpecWidget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
+ self.document = None
+ self.model = None
+
self.view = RSpecView(self)
+ layout = QVBoxLayout()
+ layout.addWidget(self.view)
+ self.setLayout(layout)
+
self.updateView()
-
def updateView(self):
- document = QDomDocument("RSpec")
+ del self.document
+ del self.model
+ self.document = None
+ self.model = None
+
rspec_file = config.getSliceRSpecFile()
if not os.path.exists(rspec_file):
return
- document.setContent(open(rspec_file,'r').read())
- model = DomModel(document, self)
-
- view = RSpecView(self)
- view.setModel(model)
-# too slow!
-# view.expandAll()
+ self.document = QDomDocument("RSpec")
+ self.document.setContent(open(rspec_file,'r').read())
+ self.model = DomModel(self.document, self)
- layout = QVBoxLayout()
- layout.addWidget(view)
- self.setLayout(layout)
+ self.view.setModel(self.model)
+ self.view.expand(self.model.index(0, 0)) #expand first level only
class RSpecScreen(SfaScreen):
def rspecUpdated(self):
self.widget.updateView()
+
+ def configurationChanged(self):
+ self.widget.updateView()