import os import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtXml import * from sface.xmlwidget import * from sface.config import config from sface.screens.sfascreen import SfaScreen class RSpecView(XmlView): def __init__(self, parent): XmlView.__init__(self, parent) def expandMatchingText(self, txt): self.collapseAll() self.expandToDepth(0) model = self.model() def recursiveExpand(index): parent = index.parent() if parent and parent.isValid(): recursiveExpand(parent) self.expand(index) def search(index): if index.data().toString() == txt: recursiveExpand(index) self.scrollTo(index, self.PositionAtCenter) return rows = model.rowCount(index) for r in range(rows): child_index = index.child(r, 0) search(child_index) root_rows = model.rowCount() for r in range(root_rows): index = model.index(r, 0) search(index) class RSpecWindow(XmlWindow): def __init__(self, parent=None): XmlWindow.__init__(self, parent, 'RSpec Window') self.view = RSpecView(self) def showNode(self, hostname): self.view.expandMatchingText(hostname) def updateView(self): XmlWindow.updateView(self) rspec_file = config.getSliceRSpecFile() if not os.path.exists(rspec_file): return self.document.setContent(open(rspec_file,'r').read())