X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fscreens%2Frspecscreen.py;h=fcaa2bfbade8253cea12699cfca38b45c90f56c5;hp=68785142045a46bc9237dd1a8dee3c8ea55bfabc;hb=bc8c98f4c8ae04576bd21b99d13089a5886eecda;hpb=b9019fc9e549041f8f356aa1849ecb5cf1813e0d diff --git a/sface/screens/rspecscreen.py b/sface/screens/rspecscreen.py index 6878514..fcaa2bf 100644 --- a/sface/screens/rspecscreen.py +++ b/sface/screens/rspecscreen.py @@ -9,6 +9,18 @@ from sface.config import config 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) @@ -77,13 +89,7 @@ class DomModel(QAbstractItemModel): return Qt.ItemIsEnabled | Qt.ItemIsSelectable def headerData(self, section, orientation, role): - if orientation == Qt.Horizontal and role == Qt.DisplayRole: - if section == 0: - return QString("Do I need an header?") - else: - return QVariant() - else: - return QVariant() + return QVariant() def index(self, row, column, parent): if not parent.isValid(): @@ -155,12 +161,13 @@ class DomItem: return self.rowNumber + class RSpecWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) - self.update_view() + self.updateView() - def update_view(self): + def updateView(self): document = QDomDocument("RSpec") rspec_file = config.getSliceRSpecFile() if not os.path.exists(rspec_file): @@ -169,8 +176,10 @@ class RSpecWidget(QWidget): document.setContent(open(rspec_file,'r').read()) model = DomModel(document, self) - view = QTreeView(self) + view = RSpecView(self) view.setModel(model) +# too slow! +# view.expandAll() layout = QVBoxLayout() layout.addWidget(view) @@ -184,4 +193,5 @@ class RSpecScreen(SfaScreen): widget = RSpecWidget(self) self.init(widget, "RSpec Window", "RSPec View") - + def rspecUpdated(self): + self.widget.updateView()