Esempio n. 1
0
    def _chooseSettings(self):
        opExportModelOp, opSubRegion = get_model_op(self.topLevelOperator)
        if opExportModelOp is None:
            QMessageBox.information(
                self,
                "Image not ready for export",
                "Export isn't possible yet: No images are ready for export.  "
                "Please configure upstream pipeline with valid settings, "
                "check that images were specified in the (batch) input applet and try again.",
            )
            return

        settingsDlg = DataExportOptionsDlg(self, opExportModelOp)
        if settingsDlg.exec_() == DataExportOptionsDlg.Accepted:
            # Copy the settings from our 'model op' into the real op
            setting_slots = [
                opExportModelOp.RegionStart,
                opExportModelOp.RegionStop,
                opExportModelOp.InputMin,
                opExportModelOp.InputMax,
                opExportModelOp.ExportMin,
                opExportModelOp.ExportMax,
                opExportModelOp.ExportDtype,
                opExportModelOp.OutputAxisOrder,
                opExportModelOp.OutputFilenameFormat,
                opExportModelOp.OutputInternalPath,
                opExportModelOp.OutputFormat,
            ]

            # Disconnect the special 'transaction' slot to prevent these
            #  settings from triggering many calls to setupOutputs.
            self.topLevelOperator.TransactionSlot.disconnect()

            for model_slot in setting_slots:
                real_inslot = getattr(self.topLevelOperator, model_slot.name)
                if model_slot.ready():
                    real_inslot.setValue(model_slot.value)
                else:
                    real_inslot.disconnect()

            # Re-connect the 'transaction' slot to apply all settings at once.
            self.topLevelOperator.TransactionSlot.setValue(True)

            # Discard the temporary model op
            opExportModelOp.cleanUp()
            opSubRegion.cleanUp()

            # Update the gui with the new export paths
            for index, slot in enumerate(self.topLevelOperator.ExportPath):
                self.updateTableForSlot(slot)
Esempio n. 2
0
    def _chooseSettings(self):
        opExportModelOp, opSubRegion = get_model_op(self.topLevelOperator)
        if opExportModelOp is None:
            QMessageBox.information(
                self,
                "Image not ready for export",
                "Export isn't possible yet: No images are ready for export.  "
                "Please configure upstream pipeline with valid settings, "
                "check that images were specified in the (batch) input applet and try again.",
            )
            return

        settingsDlg = DataExportOptionsDlg(self, opExportModelOp)
        if settingsDlg.exec_() == DataExportOptionsDlg.Accepted:
            # Copy the settings from our 'model op' into the real op
            setting_slots = [
                opExportModelOp.RegionStart,
                opExportModelOp.RegionStop,
                opExportModelOp.InputMin,
                opExportModelOp.InputMax,
                opExportModelOp.ExportMin,
                opExportModelOp.ExportMax,
                opExportModelOp.ExportDtype,
                opExportModelOp.OutputAxisOrder,
                opExportModelOp.OutputFilenameFormat,
                opExportModelOp.OutputInternalPath,
                opExportModelOp.OutputFormat,
            ]

            # Disconnect the special 'transaction' slot to prevent these
            #  settings from triggering many calls to setupOutputs.
            self.topLevelOperator.TransactionSlot.disconnect()

            for model_slot in setting_slots:
                real_inslot = getattr(self.topLevelOperator, model_slot.name)
                if model_slot.ready():
                    real_inslot.setValue(model_slot.value)
                else:
                    real_inslot.disconnect()

            # Re-connect the 'transaction' slot to apply all settings at once.
            self.topLevelOperator.TransactionSlot.setValue(True)

            # Discard the temporary model op
            opExportModelOp.cleanUp()
            opSubRegion.cleanUp()

            # Update the gui with the new export paths
            for index, slot in enumerate(self.topLevelOperator.ExportPath):
                self.updateTableForSlot(slot)