restore baris tree expansion feature. Removed >print< statements.
[sface.git] / sface / rspecwindow.py
index f9bca14..2abd5fd 100644 (file)
@@ -27,7 +27,11 @@ class RSpecView(XmlView):
             self.expand(index)
 
         def search(index):
-            if index.data().toString() == txt:
+            # voodoo alert: baris was using index.data()
+            # and apparently it worked. But after me
+            # messing around, only index.model().data(index)
+            # seems to give non-empty QVariant as output.
+            if index.model().data(index).toString() == txt:
                 recursiveExpand(index)
                 self.scrollTo(index, self.PositionAtCenter)
                 return
@@ -42,19 +46,47 @@ class RSpecView(XmlView):
             index = model.index(r, 0)
             search(index)
 
-class RSpecWindow(XmlWindow):
+class RSpecWindow(QDialog):
     def __init__(self, parent=None):
-        XmlWindow.__init__(self, parent, 'RSpec Window')
+        QDialog.__init__(self, parent)
+
+        self.title = 'RSpec Window'
+        self.setWindowTitle(self.title)
+
+        self.document = None
+        self.model = None
+
         self.view = RSpecView(self)
 
+        layout = QVBoxLayout()
+        layout.addWidget(self.view)
+        self.setLayout(layout)
+        
+        self.updateView()
+
     def showNode(self, hostname):
         self.view.expandMatchingText(hostname)
 
     def updateView(self):
-        XmlWindow.updateView(self)
+
+        del self.document
+        del self.model
+        self.document = None
+        self.model = None
+
+        self.document = QDomDocument(self.title)
 
         rspec_file = config.getSliceRSpecFile()
         if not os.path.exists(rspec_file):
             return
 
         self.document.setContent(open(rspec_file,'r').read())
+        # DomModel.__init__ is gonna purge the doc
+        # from the "xml bla bla bla" node.
+        # so the arg 'document' needs to be not None
+        # for this to happen
+        self.model = DomModel(self.document, self)
+
+        self.view.setModel(self.model)
+        self.view.expand(self.model.index(0, 0)) #expand first level only
+