X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fscreens%2Fconfigscreen.py;h=5adefa2e06dc8f6123b3cd8b768dda71b7fd8a8f;hp=dc646208b115d96b0d848074d872652279a410e8;hb=HEAD;hpb=dea293b69063b10026b56072ef3d1006df177d20 diff --git a/sface/screens/configscreen.py b/sface/screens/configscreen.py index dc64620..5adefa2 100644 --- a/sface/screens/configscreen.py +++ b/sface/screens/configscreen.py @@ -8,6 +8,8 @@ from sface.screens.sfascreen import SfaScreen from sfa.util.version import version_core from sface.version import version_dict +from sface.sficreate import CreateWindow, RemoveWindow + static_labels = { 'slice' : [ "Sface : %s (%s)" % (version_dict()['code_tag'], version_dict()['code_url']), @@ -45,7 +47,7 @@ class ConfigWidget(QWidget): glayout = QGridLayout() row = 0 for (field,msg) in config.field_labels(): - + if static_labels.has_key(field): labels=static_labels[field] if not isinstance(labels,list): labels = [ labels, ] @@ -71,27 +73,30 @@ class ConfigWidget(QWidget): row += 1 hlayout = QHBoxLayout() - hlayout.addStretch() - def conf_button (action,label): + def bottom_button (action,label,align): button=QPushButton(label, self) button.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) - hlayout.addWidget(button) + hlayout.addWidget(button,0,align) hlayout.addSpacing(10) self.connect(button, SIGNAL('clicked()'), getattr(self,action)) - conf_button ('load','Load Conf. Dir') + bottom_button ('load','Load Config Dir',Qt.AlignLeft) # the config dir edit dialog - edit=QLineEdit (config.get_dirname(),self) - self.store_local('config_dirname',edit) - edit.setAttribute(Qt.WA_MacShowFocusRect, 0) - edit.setSizePolicy(QSizePolicy.Expanding,QSizePolicy.Maximum) - self.connect(edit,SIGNAL ('returnPressed()'), self.load) - hlayout.addWidget (edit) + confdir=QLineEdit (config.get_dirname(),self) + self.store_local('config_dirname',confdir) + confdir.setAttribute(Qt.WA_MacShowFocusRect, 0) + confdir.setSizePolicy(QSizePolicy.Expanding,QSizePolicy.Maximum) + confdir.setStyleSheet("QLineEdit { width: 200px; }") + self.connect(confdir,SIGNAL ('returnPressed()'), self.load) + hlayout.addWidget (confdir,0,Qt.AlignLeft) hlayout.addSpacing(10) - conf_button ('apply','Apply Only'), - conf_button ('save','Apply && Save') + hlayout.addStretch() + bottom_button ('deleteSlice', 'Delete Slice', Qt.AlignRight), + bottom_button ('createSlice', 'Create New Slice', Qt.AlignRight), + bottom_button ('apply','Apply Only',Qt.AlignRight), + bottom_button ('save','Apply && Save',Qt.AlignRight) layout = QVBoxLayout() layout.addLayout(glayout) @@ -100,9 +105,18 @@ class ConfigWidget(QWidget): self.setLayout(layout) self.inited=True + def createSlice(self): + dlg = CreateWindow(parent=self) + dlg.exec_() + if (dlg.sliceWasCreated): + self.slice.setText(dlg.getHrn()) + self.save() + + def deleteSlice(self): + dlg = RemoveWindow(hrn = config.getSlice(), parent=self) + dlg.exec_() def apply(self): - print 'applying' for field in config.fields(): widget=getattr(self,field) if isinstance(widget,QCheckBox): @@ -127,7 +141,7 @@ class ConfigWidget(QWidget): # switch to another config dir def load(self): # obtain new dor somehow - + edit=self.retrieve_local('config_dirname') newdir=str(edit.text()) newdir+='/'