def run(self): # disable Ok button until export is finished self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) # start exporting self.timer = self.startTimer(0) # show dialog MultiStepProgressDialog.exec_(self)
def run(self): # disable Ok button until export is finished self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) # start exporting self.timer = self.startTimer(0) # show dialog MultiStepProgressDialog.exec_(self)
def __init__(self, view, settingsDlg): MultiStepProgressDialog.__init__(self, view) self.view = view self.posModel = view.scene()._posModel self.dlg = settingsDlg self.exportloop = None self.timer = None # connect signals self.buttonBox.button(QDialogButtonBox.Cancel).clicked.connect(self.cancel)
def __init__(self, view, settingsDlg): MultiStepProgressDialog.__init__(self, view) self.view = view self.posModel = view.scene()._posModel self.dlg = settingsDlg self.exportloop = None self.timer = None # connect signals self.buttonBox.button(QDialogButtonBox.Cancel).clicked.connect(self.cancel)
def write(self, inputData, slicing, ranges, outputDType, fileWriter = "h5", parent = None): dlg = MultiStepProgressDialog(parent = parent) #thunkEventHandler = ThunkEventHandler(dlg) dlg.setNumberOfSteps(2) dlg.show() #Step1: roi = sliceToRoi(slicing,inputData.meta.shape) subRegion = OpSubRegion(graph = self.graph) subRegion.Start.setValue(tuple([k for k in roi[0]])) subRegion.Stop.setValue(tuple([k for k in roi[1]])) subRegion.Input.connect(inputData) inputVolume = subRegion #handle different outputTypes if ranges is not None: normalizer = OpPixelOperator(graph = self.graph) normalizer.Input.connect(inputVolume.Output) minVal,maxVal = ranges[0] outputMinVal, outputMaxVal = ranges[1] def normalize(val): frac = numpy.float(outputMaxVal - outputMinVal) / numpy.float(maxVal - minVal) return outputDType(outputMinVal + (val - minVal) * frac) normalizer.Function.setValue(normalize) inputVolume = normalizer elif outputDType != inputData.meta.dtype: converter = OpPixelOperator(graph = self.graph) def convertToType(val): return outputDType(val) converter.Function.setValue(convertToType) converter.Input.connect(inputVolume.Output) inputVolume = converter dlg.finishStep() #step 2 writer = None if fileWriter == "h5": writer = self.h5Writer elif fileWriter == "stack": writer = self.stackWriter writer.Image.disconnect() writer.Image.connect(inputVolume.Output) self._storageRequest = writer.WriteImage[:] def handleFinish(result): self.finishedStepSignal.emit() def handleCancel(): print "Full volume prediction save CANCELLED." def cancelRequest(): print "Cancelling request" self._storageRequest.cancel() def onProgressGUI(x): print "xxx",x dlg.setStepProgress(x) def onProgressLazyflow(x): self.progressSignal.emit(x) self.progressSignal.connect(onProgressGUI) self.finishedStepSignal.connect(dlg.finishStep) # Trigger the write and wait for it to complete or cancel. self._storageRequest.notify_finished(handleFinish) self._storageRequest.notify_cancelled(handleCancel) dlg.rejected.connect(cancelRequest) writer.progressSignal.subscribe( onProgressLazyflow ) self._storageRequest.submit() dlg.exec_() writer.cleanUp() if self.h5f is not None: self.h5f.close() self.h5f = None return 0