work on status bar
[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         self.user.setAttribute(Qt.WA_MacShowFocusRect, 0)
15         label2 = QLabel("Slice HRN:", self)
16         self.slice = QLineEdit(config.getSlice(), self)
17         self.slice.setAttribute(Qt.WA_MacShowFocusRect, 0)
18         apply = QPushButton("Apply", self)
19         apply.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
20         
21         layout = QVBoxLayout()
22         layout.addWidget(label1)
23         layout.addWidget(self.user)
24         layout.addWidget(label2)
25         layout.addWidget(self.slice)
26         layout.addWidget(apply, 0, Qt.AlignRight)
27         layout.addStretch()
28         self.setLayout(layout)
29
30         self.connect(apply, SIGNAL('clicked()'), self.apply)
31
32     def apply(self):
33         config.setUser("%s" % self.user.text())
34         config.setSlice("%s" % self.slice.text())
35         config.save_config()
36         self.parent().setStatus("<font color='green'>Configuration saved!</font>", timeout=3000)
37         
38
39 class ConfigScreen(SfaScreen):
40     def __init__(self, parent):
41         SfaScreen.__init__(self, parent)
42         
43         widget = ConfigWidget(self)
44         self.init(widget, "Configure", "Configure the PlanetLab Federation GUI")