Setting tag sface-0.9-9
[sface.git] / sface / screens / configscreen.py
index dc64620..5adefa2 100644 (file)
@@ -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+='/'