From: smbaker Date: Mon, 17 Oct 2011 21:31:43 +0000 (-0700) Subject: add slice picker window X-Git-Tag: sface-0.1-20~17 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=83a8227f531598385af1b6b9e3fa8ef56904b32b;hp=a42adfb545b5810b301f43a6eede650c94ab5e9d add slice picker window --- diff --git a/sface/sliceview.py b/sface/sliceview.py index d9850bb..7490128 100644 --- a/sface/sliceview.py +++ b/sface/sliceview.py @@ -155,3 +155,60 @@ class SliceModel(QStandardItemModel): return slices +class SlicePickerWindow(QDialog): + def __init__(self, parent=None): + super(SlicePickerWindow, self).__init__(parent) + self.setWindowTitle("Slice Picker") + + sliceLabel = QLabel("Slices:") + self.sliceView = SliceView() + + self.status = QLabel("") + self.status.setMaximumWidth(640) + + self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) + self.buttonBox.button(QDialogButtonBox.Ok).setDefault(True) + + layout = QVBoxLayout() + layout.addWidget(sliceLabel) + layout.addWidget(self.sliceView) + layout.addWidget(self.status) + layout.addWidget(self.buttonBox) + self.setLayout(layout) + + self.connect(self.buttonBox, SIGNAL("accepted()"), self, SLOT("accept()")) + self.connect(self.buttonBox, SIGNAL("rejected()"), self, SLOT("reject()")) + + self.sliceModel = SliceModel() + self.refreshAuthority() + + def accept(self): + self.slices = self.sliceModel.getSelectedSlices() + QDialog.accept(self) + + def setStatus(self, x): + self.status.setText(x) + + def refreshAuthority(self): + self.process = SfiProcess(self) + self.connect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished) + + self.process.listRecords(config.getAuthority(), None) + self.setStatus("Refreshing slice list. This will take a moment...") + + def getAuthorityRecordFinished(self): + self.disconnect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished) + + faultString = self.process.getFaultString() + if not faultString: + self.setStatus("Slice list refreshed.") + self.updateSliceView() + else: + self.setStatus("Authority rec refresh error: %s" % (faultString)) + + def updateSliceView(self): + self.sliceModel.updateModel() + + self.sliceView.setModel(self.sliceModel) + self.sliceView.resizeColumnToContents(0) +