From: smbaker Date: Thu, 9 Jun 2011 18:01:36 +0000 (-0700) Subject: ignore qvariants when painting and computing size; fix duplicate treeview in rspec... X-Git-Tag: sface-0.1-14~1 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=ed2d6eecaf798bdd9f8129ce7186d8f30ec01467;hp=0c55a38266f33671e518651b72e51dce1fe98bee ignore qvariants when painting and computing size; fix duplicate treeview in rspec window --- diff --git a/sface/rspecwindow.py b/sface/rspecwindow.py index f9bca14..7c6f061 100644 --- a/sface/rspecwindow.py +++ b/sface/rspecwindow.py @@ -45,7 +45,9 @@ class RSpecView(XmlView): class RSpecWindow(XmlWindow): def __init__(self, parent=None): XmlWindow.__init__(self, parent, 'RSpec Window') - self.view = RSpecView(self) + + def initView(self): + return RSpecView(self) def showNode(self, hostname): self.view.expandMatchingText(hostname) diff --git a/sface/xmlwidget.py b/sface/xmlwidget.py index b11f1ed..a803868 100644 --- a/sface/xmlwidget.py +++ b/sface/xmlwidget.py @@ -85,7 +85,7 @@ class DomModel(QAbstractItemModel): if not index.isValid(): return Qt.ItemIsEnabled return Qt.ItemIsEnabled | Qt.ItemIsSelectable - + def headerData(self, section, orientation, role): return QVariant() @@ -176,7 +176,7 @@ class XmlWindow(QDialog): self.model = None self.title = title - self.view = XmlView(self) + self.view = self.initView() self.delegate = XmlDelegate(self) self.view.setItemDelegate(self.delegate) self.delegate.insertNodeDelegate('element', ElemNodeDelegate()) @@ -188,6 +188,9 @@ class XmlWindow(QDialog): self.updateView() + def initView(self): + return XmlView(self) + def show(self): self.updateView() QDialog.show(self) @@ -228,6 +231,8 @@ class XmlDelegate(QItemDelegate): del self.delegates[nodeType] def paint(self, painter, option, index): + if isinstance(index.model().data(index),QVariant): + return nodeType = index.model().data(index).property('nodeType') delegate = self.delegates.get(str(nodeType.toString())) #print "TYPE:", str(type(str(nodeType.toString()))) @@ -244,6 +249,8 @@ class XmlDelegate(QItemDelegate): def sizeHint(self, option, index): fm = option.fontMetrics + if isinstance(index.model().data(index),QVariant): + return QSize(0, 0) text = index.model().data(index).property('content').toString() document = QTextDocument() document.setDefaultFont(option.font)