Setting tag sface-0.1-14
[sface.git] / sface / xmlwidget.py
index b11f1ed..a803868 100644 (file)
@@ -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)