add a global status widget
[sface.git] / sface / screens / configscreen.py
1
2 from PyQt4.QtCore import SIGNAL, Qt
3 from PyQt4.QtGui import QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QSizePolicy
4
5 from sface.sficonfig import config
6 from sface.screens.sfascreen import SfaScreen
7
8 class ConfigWidget(QWidget):
9     def __init__(self, parent):
10         QWidget.__init__(self, parent)
11
12         label1 = QLabel("User HRN:", self)
13         self.user = QLineEdit(config.getUser(), self)
14         label2 = QLabel("Slice HRN:", self)
15         self.slice = QLineEdit(config.getSlice(), self)
16         apply = QPushButton("Apply", self)
17         apply.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
18         
19         layout = QVBoxLayout()
20         layout.addWidget(label1)
21         layout.addWidget(self.user)
22         layout.addWidget(label2)
23         layout.addWidget(self.slice)
24         layout.addWidget(apply, 0, Qt.AlignRight)
25         layout.addStretch()
26         self.setLayout(layout)
27
28         self.connect(apply, SIGNAL('clicked()'), self.apply)
29
30     def apply(self):
31         config.setUser("%s" % self.user.text())
32         config.setSlice("%s" % self.slice.text())
33         config.save_config()
34         self.parent().setStatus("<font color='green'>Configuration saved!</font>")
35         
36
37 class ConfigScreen(SfaScreen):
38     def __init__(self, parent):
39         SfaScreen.__init__(self, parent)
40         
41         widget = ConfigWidget(self)
42         self.init(widget, "Configure", "Configure the PlanetLab Federation GUI")