def model(self, model: FluorophoreSettings) -> None:
        # Disconnect old model event handling
        try:
            self._model.response_added.disconnect(self._onResponseAdded)
            self._model.response_removed.disconnect(self._onResponseRemoved)
            disconnectModelFromSignal(self.model, self._modifiedFlagSlotFunc)
        except AttributeError:
            pass

        # Set model
        self._hasHandledNewModelRowChange = self._selectedResponse is None
        self._model = model

        # Trigger model change event handlers
        self.widget.clearResponseList()
        for response in model.responses:
            self.widget.addResponseToList(response, select=False)

        self._uiResponseSelectionChange(None)

        # Prepare model events
        model.response_added.connect(self._onResponseAdded)
        model.response_removed.connect(self._onResponseRemoved)
        self._modifiedFlagSlotFunc = connectModelToSignal(
            self.model, self.widget.modifiedFlagSet)
    def model(self, model: IlluminationResponse) -> None:
        # Disconnect old model event handling
        try:
            self._model.basic_field_changed.disconnect(self._onBasicFieldChange)
            disconnectModelFromSignal(self.model, self._modifiedFlagSlotFunc)
        except AttributeError:
            pass

        # Set model
        self._model = model

        # Trigger model change event handlers
        self._onBasicFieldChange(model)

        # Connect new model events
        model.basic_field_changed.connect(self._onBasicFieldChange)
        self._modifiedFlagSlotFunc = connectModelToSignal(self.model, self.widget.modifiedFlagSet)
    def model(self, model: DetectorProperties) -> None:
        # Disconnect old model event handling
        try:
            self._model.basic_field_changed.disconnect(
                self._onBasicFieldChange)
            disconnectModelFromSignal(self.model, self._modifiedFlagSlotFunc)
        except AttributeError:
            pass

        # Set model
        self._model = model

        # Trigger model change event handlers
        self._onBasicFieldChange(model)

        # Prepare model events
        model.basic_field_changed.connect(self._onBasicFieldChange)
        self._modifiedFlagSlotFunc = connectModelToSignal(
            self.model, self.widget.modifiedFlagSet)
Example #4
0
    def model(self, model: ImagingSystemSettings) -> None:
        # Disconnect old model event handling
        try:
            self._model.basic_field_changed.disconnect(
                self._onBasicFieldChange)
            disconnectModelFromSignal(self.model, self._modifiedFlagSlotFunc)
        except AttributeError:
            pass

        # Set model
        self._model = model

        # Trigger model change event handlers
        self.widget.updateOpticalPsf(model.optical_psf)
        self.widget.updatePinholeFunction(model.pinhole_function)
        self._onBasicFieldChange(model)

        # Prepare model events
        model.basic_field_changed.connect(self._onBasicFieldChange)
        self._modifiedFlagSlotFunc = connectModelToSignal(
            self.model, self.widget.modifiedFlagSet)
    def model(self, model: PulseScheme) -> None:
        # Disconnect old model event handling
        try:
            self._model.pulse_added.disconnect(self._onPulseAdded)
            self._model.pulse_moved.disconnect(self._onPulseMoved)
            self._model.pulse_removed.disconnect(self._onPulseRemoved)
            disconnectModelFromSignal(self.model, self._modifiedFlagSlotFunc)
        except AttributeError:
            pass

        # Set model
        self._model = model

        # Trigger model change event handlers
        self.widget.updatePlot(model)

        # Prepare model events
        model.pulse_added.connect(self._onPulseAdded)
        model.pulse_moved.connect(self._onPulseMoved)
        model.pulse_removed.connect(self._onPulseRemoved)
        self._modifiedFlagSlotFunc = connectModelToSignal(
            self.model, self.widget.modifiedFlagSet)