diff --git a/qt/python/mantidqt/_common.sip b/qt/python/mantidqt/_common.sip index 0717cc0acd19d6bfabe76c31f3d64803d6eed19c..d1a57a8c28b050be2ef2d5fd004fb18fbea2e136 100644 --- a/qt/python/mantidqt/_common.sip +++ b/qt/python/mantidqt/_common.sip @@ -897,6 +897,7 @@ public: void setText(const QString&); void setUserInput(const QVariant &); void setReadOnly(bool readOnly); + void setEnabled(bool enabled); void findFiles(bool isModified); signals: diff --git a/qt/widgets/common/inc/MantidQtWidgets/Common/MWRunFiles.h b/qt/widgets/common/inc/MantidQtWidgets/Common/MWRunFiles.h index a74a639124414cd880855537d2ccac73e60f8ce1..84ceb8b0190f270b0b84a3c9035fcafb7d621cd3 100644 --- a/qt/widgets/common/inc/MantidQtWidgets/Common/MWRunFiles.h +++ b/qt/widgets/common/inc/MantidQtWidgets/Common/MWRunFiles.h @@ -149,6 +149,8 @@ public: void setInstrumentOverride(const QString &instName); /// Set the input read-only or not void setReadOnly(bool readOnly); + /// Disable the browse button and file input field. + void setEnabled(bool enabled); /// Get the last directory QString getLastDirectory() { return m_lastDir; } /// Set the last directory diff --git a/qt/widgets/common/src/MWRunFiles.cpp b/qt/widgets/common/src/MWRunFiles.cpp index baeb8a7f68196627dd59d7ebd8d58fb22b564b91..8dfa1c317f07986f6d583071bde47ac7925b089e 100644 --- a/qt/widgets/common/src/MWRunFiles.cpp +++ b/qt/widgets/common/src/MWRunFiles.cpp @@ -963,9 +963,24 @@ void MWRunFiles::setReadOnly(bool readOnly) { refreshValidator(); } +/** + * @brief Set if the file finder should be enanbled or not. + * This allows the finder to be greyed out completely compared + * to the setReadOnly method, which only works on the browse button. + * + * @param enabled :: [input] true if enabled, fakse if disabled. + */ +void MWRunFiles::setEnabled(bool enabled) { + m_uiForm.browseBtn->setEnabled(enabled); + m_uiForm.fileEditor->setEnabled(enabled); + setValidatorDisplay(enabled); + refreshValidator(); +} + /** * Turn on/off the display of the red validator star. - * Validation is still performed, this just controls the display of the result. + * Validation is still performed, this just controls the display of the + * result. * @param display :: [input] whether to show validator result or not */ void MWRunFiles::setValidatorDisplay(bool display) { diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py index c261cb4021f503b96b3c5421ed1a6deb9afd77a7..eed8e9b5194d906749fd15576f192e8bdf49b275 100644 --- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py +++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/presenter.py @@ -127,15 +127,15 @@ class CalibrationPresenter(object): self.emit_enable_button_signal() def set_create_new_enabled(self, enabled): - self.view.set_vanadium_read_only(not enabled) - self.view.set_calib_read_only(not enabled) + self.view.set_vanadium_enabled(enabled) + self.view.set_calib_enabled(enabled) if enabled: self.set_calibrate_button_text("Calibrate") self.view.set_check_plot_output_enabled(True) self.find_files() def set_load_existing_enabled(self, enabled): - self.view.set_path_read_only(not enabled) + self.view.set_path_enabled(enabled) if enabled: self.set_calibrate_button_text("Load") self.view.set_check_plot_output_enabled(False) diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_presenter.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_presenter.py index 5e1c1a991b02bc19f303d3b55bc4caba0c776210..d9f137f975e969f0fea5474c56346b338bf7c2d1 100644 --- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_presenter.py +++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/test/test_calib_presenter.py @@ -190,10 +190,10 @@ class CalibrationPresenterTest(unittest.TestCase): def test_create_new_enabled_true(self): self.presenter.set_create_new_enabled(True) - self.assertEqual(self.view.set_vanadium_read_only.call_count, 1) - self.view.set_vanadium_read_only.assert_called_with(False) - self.assertEqual(self.view.set_calib_read_only.call_count, 1) - self.view.set_calib_read_only.assert_called_with(False) + self.assertEqual(self.view.set_vanadium_enabled.call_count, 1) + self.view.set_vanadium_enabled.assert_called_with(True) + self.assertEqual(self.view.set_calib_enabled.call_count, 1) + self.view.set_calib_enabled.assert_called_with(True) self.view.set_calibrate_button_text.assert_called_with("Calibrate") self.view.set_check_plot_output_enabled.assert_called_with(True) self.assertEqual(self.view.find_calib_files.call_count, 1) @@ -201,10 +201,10 @@ class CalibrationPresenterTest(unittest.TestCase): def test_create_new_enabled_false(self): self.presenter.set_create_new_enabled(False) - self.assertEqual(self.view.set_vanadium_read_only.call_count, 1) - self.view.set_vanadium_read_only.assert_called_with(True) - self.assertEqual(self.view.set_calib_read_only.call_count, 1) - self.view.set_calib_read_only.assert_called_with(True) + self.assertEqual(self.view.set_vanadium_enabled.call_count, 1) + self.view.set_vanadium_enabled.assert_called_with(False) + self.assertEqual(self.view.set_calib_enabled.call_count, 1) + self.view.set_calib_enabled.assert_called_with(False) self.assertEqual(self.view.set_calibrate_button_text.call_count, 0) self.assertEqual(self.view.set_check_plot_output_enabled.call_count, 0) self.assertEqual(self.view.find_calib_files.call_count, 0) @@ -212,16 +212,16 @@ class CalibrationPresenterTest(unittest.TestCase): def test_load_existing_enabled_true(self): self.presenter.set_load_existing_enabled(True) - self.assertEqual(self.view.set_path_read_only.call_count, 1) - self.view.set_path_read_only.assert_called_with(False) + self.assertEqual(self.view.set_path_enabled.call_count, 1) + self.view.set_path_enabled.assert_called_with(True) self.view.set_calibrate_button_text.assert_called_with("Load") self.view.set_check_plot_output_enabled.assert_called_with(False) def test_load_existing_enabled_false(self): self.presenter.set_load_existing_enabled(False) - self.assertEqual(self.view.set_path_read_only.call_count, 1) - self.view.set_path_read_only.assert_called_with(True) + self.assertEqual(self.view.set_path_enabled.call_count, 1) + self.view.set_path_enabled.assert_called_with(False) self.assertEqual(self.view.set_calibrate_button_text.call_count, 0) self.assertEqual(self.view.set_check_plot_output_enabled.call_count, 0) diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/view.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/view.py index 29e2f508ec6cacb1ecb0ef562e2cd7cce848fc41..ae207f36e89323d8addf513b33c3bd83d28154ed 100644 --- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/view.py +++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/view.py @@ -28,7 +28,7 @@ class CalibrationView(QtWidgets.QWidget, Ui_calib): self.finder_path.setLabelText("Path") self.finder_path.isForRunFiles(False) - self.finder_path.setReadOnly(True) + self.finder_path.setEnabled(False) # ================= # Slot Connectors @@ -68,14 +68,14 @@ class CalibrationView(QtWidgets.QWidget, Ui_calib): self.finder_vanadium.setInstrumentOverride(instrument) self.finder_calib.setInstrumentOverride(instrument) - def set_vanadium_read_only(self, set_to): - self.finder_vanadium.setReadOnly(set_to) + def set_vanadium_enabled(self, set_to): + self.finder_vanadium.setEnabled(set_to) - def set_calib_read_only(self, set_to): - self.finder_calib.setReadOnly(set_to) + def set_calib_enabled(self, set_to): + self.finder_calib.setEnabled(set_to) - def set_path_read_only(self, set_to): - self.finder_path.setReadOnly(set_to) + def set_path_enabled(self, set_to): + self.finder_path.setEnabled(set_to) def set_vanadium_text(self, text): self.finder_vanadium.setText(text)