Skip to content
Snippets Groups Projects
  • Conor Finn's avatar
    8565f4a8
    RE #27012 Fix debug error on windows · 8565f4a8
    Conor Finn authored
    Debug error appeared on windows when buttons are enabled at the end of
    the calibration and focus.
    
    By emitting a signal instead of calling the function to enable the
    buttons directly, windows stops complaining about threads interacting
    with the GUI.
    8565f4a8
    History
    RE #27012 Fix debug error on windows
    Conor Finn authored
    Debug error appeared on windows when buttons are enabled at the end of
    the calibration and focus.
    
    By emitting a signal instead of calling the function to enable the
    buttons directly, windows stops complaining about threads interacting
    with the GUI.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
view.py 2.68 KiB
# Mantid Repository : https://github.com/mantidproject/mantid
#
# Copyright © 2019 ISIS Rutherford Appleton Laboratory UKRI,
#     NScD Oak Ridge National Laboratory, European Spallation Source
#     & Institut Laue - Langevin
# SPDX - License - Identifier: GPL - 3.0 +

from __future__ import (absolute_import, division, print_function)
from qtpy import QtWidgets, QtCore

from mantidqt.utils.qt import load_ui

Ui_calib, _ = load_ui(__file__, "calibration_tab.ui")


class CalibrationView(QtWidgets.QWidget, Ui_calib):
    sig_enable_controls = QtCore.Signal(bool)

    def __init__(self, parent=None, instrument="ENGINX"):
        super(CalibrationView, self).__init__(parent)
        self.setupUi(self)
        self.setup_tabbing_order()
        self.finder_calib.setLabelText("Calibration Sample #")
        self.finder_calib.setInstrumentOverride(instrument)

        self.finder_vanadium.setLabelText("Vanadium #")
        self.finder_vanadium.setInstrumentOverride(instrument)

    def set_on_text_changed(self, slot):
        self.finder_vanadium.fileTextChanged.connect(slot)
        self.finder_calib.fileTextChanged.connect(slot)

    def set_on_finding_files_finished(self, slot):
        self.finder_vanadium.fileFindingFinished.connect(slot)
        self.finder_calib.fileFindingFinished.connect(slot)

    def set_on_calibrate_clicked(self, slot):
        self.button_calibrate.clicked.connect(slot)

    def set_enable_controls_connection(self, slot):
        self.sig_enable_controls.connect(slot)

    def set_calibrate_button_enabled(self, enabled):
        self.button_calibrate.setEnabled(enabled)

    def set_check_plot_output_enabled(self, enabled):
        self.check_plotOutput.setEnabled(enabled)

    def set_instrument_override(self, instrument):
        self.finder_vanadium.setInstrumentOverride(instrument)
        self.finder_calib.setInstrumentOverride(instrument)

    def get_vanadium_filename(self):
        return self.finder_vanadium.getFirstFilename()

    def get_vanadium_valid(self):
        return self.finder_vanadium.isValid()

    def get_calib_filename(self):
        return self.finder_calib.getFirstFilename()

    def get_calib_valid(self):
        return self.finder_calib.isValid()

    def get_plot_output(self):
        return self.check_plotOutput.isChecked()

    def is_searching(self):
        return self.finder_calib.isSearching() or self.finder_calib.isSearching()

    def setup_tabbing_order(self):
        self.setTabOrder(self.radio_newCalib, self.finder_vanadium)
        self.setTabOrder(self.finder_vanadium, self.finder_calib)
        self.setTabOrder(self.finder_calib, self.check_plotOutput)
        self.setTabOrder(self.check_plotOutput, self.button_calibrate)