diff --git a/mantidimaging/gui/ui/spectrum_viewer.ui b/mantidimaging/gui/ui/spectrum_viewer.ui index e018fab7d2d..b00fe2be2cc 100644 --- a/mantidimaging/gui/ui/spectrum_viewer.ui +++ b/mantidimaging/gui/ui/spectrum_viewer.ui @@ -255,18 +255,23 @@ - + Single Spectrum + + + 2D Binned + + - Error mode + Error Mode @@ -284,6 +289,43 @@ + + + + Bin Size + + + + + + + 1 + + + 1000 + + + 10 + + + + + + + Bin Step + + + + + + + 1 + + + 1000 + + + diff --git a/mantidimaging/gui/windows/spectrum_viewer/view.py b/mantidimaging/gui/windows/spectrum_viewer/view.py index 3a599cd3acb..829a7d30135 100644 --- a/mantidimaging/gui/windows/spectrum_viewer/view.py +++ b/mantidimaging/gui/windows/spectrum_viewer/view.py @@ -6,7 +6,7 @@ from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QCheckBox, QVBoxLayout, QFileDialog, QPushButton, QLabel, QAbstractItemView, QHeaderView, \ - QTabWidget, QComboBox + QTabWidget, QComboBox, QSpinBox from mantidimaging.core.utility import finder from mantidimaging.gui.mvp_base import BaseMainWindowView @@ -36,7 +36,10 @@ class SpectrumViewerWindowView(BaseMainWindowView): normaliseErrorIcon: QLabel _current_dataset_id: Optional['UUID'] normalise_error_issue: str = "" + image_output_mode_combobox: QComboBox transmission_error_mode_combobox: QComboBox + bin_size_spinBox: QSpinBox + bin_step_spinBox: QSpinBox def __init__(self, main_window: 'MainWindowView'): super().__init__(None, 'gui/ui/spectrum_viewer.ui') @@ -68,6 +71,8 @@ def __init__(self, main_window: 'MainWindowView'): self.normaliseCheckBox.stateChanged.connect(self.presenter.handle_button_enabled) self.exportTabs.currentChanged.connect(self.presenter.handle_export_tab_change) + self.image_output_mode_combobox.currentTextChanged.connect(self.set_binning_visibility) + self.set_binning_visibility() # ROI action buttons self.addBtn.clicked.connect(self.set_new_roi) @@ -310,3 +315,22 @@ def clear_all_rois(self) -> None: @property def transmission_error_mode(self) -> str: return self.transmission_error_mode_combobox.currentText() + + @property + def image_output_mode(self) -> str: + return self.image_output_mode_combobox.currentText() + + @property + def bin_size(self) -> int: + return self.bin_size_spinbox.value() + + @property + def bin_step(self) -> int: + return self.bin_step_spinbox.value() + + def set_binning_visibility(self) -> None: + hide_binning = self.image_output_mode != "2D Binned" + self.bin_size_label.setHidden(hide_binning) + self.bin_size_spinBox.setHidden(hide_binning) + self.bin_step_label.setHidden(hide_binning) + self.bin_step_spinBox.setHidden(hide_binning)