+ def expandMatchingText(self, txt):
+ self.collapseAll()
+ self.expandToDepth(0)
+
+ 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)
+
+ rows = model.rowCount(index)
+ for r in range(rows):
+ child_index = index.child(r, 0)
+ search(child_index)
+
+ model = self.model()
+ root_rows = model.rowCount()
+ for r in range(root_rows):
+ index = model.index(r, 0)
+ search(index)
+