Skip to content

Commit

Permalink
Making signal send an object argument
Browse files Browse the repository at this point in the history
  • Loading branch information
DolicaAkelloEgwel committed Mar 3, 2021
1 parent b060c02 commit cf21fa0
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 15 deletions.
12 changes: 6 additions & 6 deletions mantidimaging/gui/utility/qt_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,19 +130,19 @@ def set_spin_box(box, cast_func):
right_widget.setText(default_value)

if on_change is not None:
right_widget.editingFinished.connect(lambda: on_change())
right_widget.editingFinished.connect(lambda: on_change(None))

elif dtype == 'int' or dtype == Type.INT:
right_widget = Qt.QSpinBox()
set_spin_box(right_widget, int)
if on_change is not None:
right_widget.valueChanged.connect(lambda: on_change())
right_widget.valueChanged.connect(lambda: on_change(None))

elif dtype == 'float' or dtype == Type.FLOAT:
right_widget = Qt.QDoubleSpinBox()
set_spin_box(right_widget, float)
if on_change is not None:
right_widget.valueChanged.connect(lambda: on_change())
right_widget.valueChanged.connect(lambda: on_change(None))

elif dtype == 'bool' or dtype == Type.BOOL:
right_widget = Qt.QCheckBox()
Expand All @@ -157,21 +157,21 @@ def set_spin_box(box, cast_func):
raise ValueError(f"Cannot convert value {default_value} to a Boolean.")

if on_change is not None:
right_widget.stateChanged[int].connect(lambda: on_change())
right_widget.stateChanged[int].connect(lambda: on_change(None))

elif dtype == "choice" or dtype == Type.CHOICE:
right_widget = Qt.QComboBox()
right_widget.setSizeAdjustPolicy(Qt.QComboBox.AdjustToContents)
if valid_values:
right_widget.addItems(valid_values)
if on_change is not None:
right_widget.currentIndexChanged[int].connect(lambda: on_change())
right_widget.currentIndexChanged[int].connect(lambda: on_change(None))

elif dtype == 'stack' or dtype == Type.STACK:
from mantidimaging.gui.widgets.stack_selector import StackSelectorWidgetView
right_widget = StackSelectorWidgetView(filters_view)
if on_change is not None:
right_widget.currentIndexChanged[int].connect(lambda: on_change())
right_widget.currentIndexChanged[int].connect(lambda: on_change(None))

elif dtype == 'button' or dtype == Type.BUTTON:
left_widget = Qt.QPushButton(label)
Expand Down
8 changes: 3 additions & 5 deletions mantidimaging/gui/windows/operations/presenter.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def set_preview_image_index(self, image_idx):
preview_idx_spin.setValue(self.model.preview_image_idx)

# Trigger preview updating
self.view.auto_update_triggered.emit()
self.view.auto_update_triggered.emit(None)

def do_register_active_filter(self):
filter_name = self.view.filterSelector.currentText()
Expand Down Expand Up @@ -220,8 +220,7 @@ def _do_apply_filter_sync(self, apply_to):

def do_update_previews(self):
self.view.clear_previews()
# Disable preview image index scrollbox to prevent double-increase
self.view.previewImageIndex.setEnabled(False)
self.view.disable_spin_boxes()
if self.stack is not None:
stack_presenter = self.stack.presenter
subset: Images = stack_presenter.get_image(self.model.preview_image_idx)
Expand Down Expand Up @@ -255,8 +254,7 @@ def do_update_previews(self):
# Ensure all of it is visible
self.view.previews.auto_range()

# Enable preview image index box when preview has been created
self.view.previewImageIndex.setEnabled(True)
self.view.enable_spin_boxes()

@staticmethod
def _update_preview_image(image_data: Optional[np.ndarray], image: ImageItem):
Expand Down
15 changes: 11 additions & 4 deletions mantidimaging/gui/windows/operations/view.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@


class FiltersWindowView(BaseMainWindowView):
auto_update_triggered = Qt.pyqtSignal()
auto_update_triggered = Qt.pyqtSignal(object)

splitter: QSplitter
collapseToggleButton: QPushButton
Expand Down Expand Up @@ -66,7 +66,7 @@ def __init__(self, main_window: 'MainWindowView'):

# Handle stack selection
self.stackSelector.stack_selected_uuid.connect(self.presenter.set_stack_uuid)
self.stackSelector.stack_selected_uuid.connect(self.auto_update_triggered.emit)
self.stackSelector.stack_selected_uuid.connect(lambda: self.auto_update_triggered.emit(None))

# Handle apply filter
self.applyButton.clicked.connect(lambda: self.presenter.notify(PresNotification.APPLY_FILTER))
Expand Down Expand Up @@ -113,7 +113,7 @@ def cleanup(self):

def show(self):
super(FiltersWindowView, self).show()
self.auto_update_triggered.emit()
self.auto_update_triggered.emit(None)

def handle_filter_selection(self, filter_name: str):
"""
Expand All @@ -131,7 +131,7 @@ def handle_filter_selection(self, filter_name: str):

# Update preview on filter selection (on the off chance the default
# options are valid)
self.auto_update_triggered.emit()
self.auto_update_triggered.emit(None)

def on_auto_update_triggered(self):
"""
Expand Down Expand Up @@ -288,3 +288,10 @@ def toggle_filters_section(self):
else:
self.splitter.setSizes([200, 9999])
self.collapseToggleButton.setText("<<")

def disable_spin_boxes(self):
self.previewImageIndex.setEnabled(False)
print(self.filterPropertiesLayout)

def enable_spin_boxes(self):
self.previewImageIndex.setEnabled(True)

0 comments on commit cf21fa0

Please sign in to comment.