Setting tag sface-0.9-9
[sface.git] / sface / screens / mainscreen.py
index 4fc6288..910fd73 100644 (file)
@@ -176,7 +176,10 @@ class NodeNameDelegate(QStyledItemDelegate):
         QStyledItemDelegate.__init__(self, parent)
 
     def displayText(self, value, locale):
-        data = str(QStyledItemDelegate.displayText(self, value, locale))
+        try:
+            data = str(QStyledItemDelegate.displayText(self, value, locale))
+        except UnicodeEncodeError:
+            data = "<UnicodeDecodeError when generating displaytext>"
         if (len(data)>NAME_MAX_LEN):
             data = data[:(NAME_MAX_LEN-3)] + "..."
         return QString(data)
@@ -356,6 +359,7 @@ class SliceWidget(QWidget):
         bottomlayout.addWidget(renew, 0, Qt.AlignLeft)
         bottomlayout.addStretch()
         bottomlayout.addWidget(submit, 0, Qt.AlignRight)
+        self.bottomlayout = bottomlayout
 
         layout = QVBoxLayout()
         layout.addLayout(toplayout)
@@ -751,3 +755,11 @@ class MainScreen(SfaScreen):
         # rspec.
         QTimer.singleShot(2500, self.sliceWidget.refresh)
 
+    def addMainScreenButton(self, caption, action):
+        # allows another screen to add a button to mainscreen
+        button = QPushButton(caption, self)
+        self.sliceWidget.bottomlayout.insertWidget(2, button)
+        self.sliceWidget.connect(button, SIGNAL('clicked()'), action)
+        return button
+
+