manage signals between screens through sfascreen
[sface.git] / sface / screens / mainscreen.py
index be67787..5507294 100644 (file)
@@ -47,7 +47,6 @@ class NodeView(QTreeView):
 
         model.emit(SIGNAL("dataChanged(QModelIndex, QModelIndex)"), hostname_index, hostname_index)
                 
-        
 
 class NodeNameDelegate(QStyledItemDelegate):
     def __init__(self, parent):
@@ -99,6 +98,7 @@ class NodeNameDelegate(QStyledItemDelegate):
 
         painter.restore()
 
+
 class TreeItem:
     def __init__(self, data, parent=None):
         self.parentItem = parent
@@ -267,7 +267,6 @@ class NodeModel(QAbstractItemModel):
         return ret
 
 
-
 class SliceWidget(QWidget):
     def __init__(self, parent):
         QWidget.__init__(self, parent)
@@ -275,15 +274,16 @@ class SliceWidget(QWidget):
         self.network_names = []
         self.process = SfiProcess(self)
 
-        slicename = QLabel ("Slice : %s"%(config.getSlice() or "None"),self)
-        slicename.setScaledContents(False)
+        self.slicename = QLabel("", self)
+        self.updateSliceName()
+        self.slicename.setScaledContents(False)
         searchlabel = QLabel ("Search: ", self)
         searchlabel.setScaledContents(False)
         searchbox = QLineEdit(self)
         searchbox.setAttribute(Qt.WA_MacShowFocusRect, 0)
 
         toplayout = QHBoxLayout()
-        toplayout.addWidget(slicename, 0, Qt.AlignLeft)
+        toplayout.addWidget(self.slicename, 0, Qt.AlignLeft)
         toplayout.addStretch()
         toplayout.addWidget(searchlabel, 0, Qt.AlignRight)
         toplayout.addWidget(searchbox, 0, Qt.AlignRight)
@@ -329,6 +329,7 @@ class SliceWidget(QWidget):
     def refreshFinished(self):
         self.setStatus("<font color='green'>Slice data updated.</font>", timeout=5000)
         self.updateView()
+        self.parent().signalAll("rspecUpdated")
 
     def readSliceRSpec(self):
         rspec_file = config.getSliceRSpecFile()
@@ -397,7 +398,6 @@ class SliceWidget(QWidget):
 
         self.disconnect(self.process, SIGNAL('finished()'), self.submitFinished)
         self.connect(self.process, SIGNAL('finished()'), self.refreshFinished)
-        self.connect(self.process, SIGNAL('finished()'), self.parent().rspecUpdated)
 
         self.process.getRSpecFromSM()
         self.setStatus("Updating slice data. This may take some time...")
@@ -442,6 +442,9 @@ class SliceWidget(QWidget):
         self.nodeView.expandAll()
         self.nodeView.resizeColumnToContents(1)
 
+    def updateSliceName(self):
+        self.slicename.setText("Slice : %s" % (config.getSlice() or "None"))
+
 
 class MainScreen(SfaScreen):
     def __init__(self, parent):
@@ -449,3 +452,8 @@ class MainScreen(SfaScreen):
 
         slice = SliceWidget(self)
         self.init(slice, "Main Window", "OneLab Federation GUI")
+
+    def configurationChanged(self):
+        self.widget.updateSliceName()
+        self.widget.updateView()
+