add addMainScreenButton to allow other screens to attach buttons to mainscreen
authorsmbaker <smbaker@fc8clean.lan>
Wed, 8 Aug 2012 01:28:45 +0000 (18:28 -0700)
committersmbaker <smbaker@fc8clean.lan>
Wed, 8 Aug 2012 01:28:45 +0000 (18:28 -0700)
sface/screens/mainscreen.py
sface/screens/sfascreen.py

index 9bb94cc..910fd73 100644 (file)
@@ -359,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)
@@ -754,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
+
+
index 1563468..9ee0aa0 100644 (file)
@@ -37,11 +37,13 @@ class SfaScreen(QWidget):
     def setStatus(self, msg, timeout):
         self.mainwin.setStatus(msg, timeout)
 
-    def signalAll(self, action):
+    def signalAll(self, action, *args):
+        results=[]
         for i in SfaScreen.instances:
             method = getattr(i, action, None)
             if method:
-                method()
+                results.append(method(*args))
+        return results
 
     def rspecUpdated(self):
         pass