Example #1
0
    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)
Example #2
0
 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)
Example #4
0
 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)
Example #5
0
    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