diff --git a/iris/gui/controller.py b/iris/gui/controller.py index e52901d..393bdad 100644 --- a/iris/gui/controller.py +++ b/iris/gui/controller.py @@ -84,7 +84,7 @@ class IrisController(QtCore.QObject, metaclass=ErrorAware): status_message_signal = QtCore.pyqtSignal(str) raw_data_signal = QtCore.pyqtSignal(object) - averaged_data_signal = QtCore.pyqtSignal(object) + averaged_data_signal = QtCore.pyqtSignal(object, bool) powder_data_signal = QtCore.pyqtSignal(object, object) time_series_signal = QtCore.pyqtSignal(object, object) @@ -168,7 +168,8 @@ def display_raw_data(self, timedelay_index, scan): ) @QtCore.pyqtSlot(int) - def display_averaged_data(self, timedelay_index): + @QtCore.pyqtSlot(int, bool) + def display_averaged_data(self, timedelay_index, autocontrast=False): """ Extract processed diffraction pattern. @@ -176,6 +177,8 @@ def display_averaged_data(self, timedelay_index): ---------- timedelay_index : int Time-delay index. + autocontrast : bool, optional + Whether or not the contrast of the image should be adjusted. Returns ------- @@ -204,7 +207,7 @@ def display_averaged_data(self, timedelay_index): out=self._averaged_data_container, ) - self.averaged_data_signal.emit(self._averaged_data_container) + self.averaged_data_signal.emit(self._averaged_data_container, autocontrast) self.status_message_signal.emit(f"Displaying data at {timedelay:.3f}ps.") @QtCore.pyqtSlot() @@ -475,7 +478,7 @@ def load_dataset(self, path): self.processed_dataset_loaded_signal.emit(True) self.powder_dataset_loaded_signal.emit(is_powder) - self.display_averaged_data(timedelay_index=0) + self.display_averaged_data(timedelay_index=0, autocontrast=True) if is_powder: self.display_powder_data() else: @@ -494,7 +497,7 @@ def close_dataset(self): self.processed_dataset_loaded_signal.emit(False) self.powder_dataset_loaded_signal.emit(False) - self.averaged_data_signal.emit(None) + self.averaged_data_signal.emit(None, True) self.powder_data_signal.emit(None, None) self.status_message_signal.emit("Dataset closed.") diff --git a/iris/gui/data_viewer.py b/iris/gui/data_viewer.py index 6b85956..2762235 100644 --- a/iris/gui/data_viewer.py +++ b/iris/gui/data_viewer.py @@ -123,8 +123,8 @@ def _update_roi_bounds_text(self, rect): self.roi_bottomright_text.setPos(y2, x2) self.roi_bottomright_text.setText(f"({y2},{x2})") - @QtCore.pyqtSlot(object) - def display(self, image): + @QtCore.pyqtSlot(object, bool) + def display(self, image, autocontrast=False): """ Display an image in the form of an ndarray. @@ -132,16 +132,16 @@ def display(self, image): ---------- image : ndarray or None If None, the display is cleared. + autocontrast: bool, optional + If True, the image contrast will be adjusted """ if image is None: self.image_viewer.clear() return - # autoLevels = False ensures that the colormap stays the same - # when 'sliding' through data. This makes it easier to compare - # data at different time points. - # Similarly for autoRange = False - self.image_viewer.setImage(image, autoLevels=False, autoRange=False) + self.image_viewer.setImage( + image, autoLevels=autocontrast, autoRange=autocontrast + ) self.update_timeseries_rect() @QtCore.pyqtSlot(object, object)