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)