diff --git a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtGUI.ui b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtGUI.ui index 07d608c758333a6a562903f9526e48515cfc2eba..2cc8eacb133cdd8b60b79069e3b63db96a2a55d2 100644 --- a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtGUI.ui +++ b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtGUI.ui @@ -84,6 +84,16 @@ </item> <item row="0" column="0"> <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label_RBNumber"> + <property name="text"> + <string>RB Number:</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="lineEdit_RBNumber"/> + </item> <item> <spacer name="horizontalSpacer_2"> <property name="orientation"> diff --git a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabCalib.ui b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabCalib.ui index 6381604907d9e6602362cb87b8b9f8afccd1f7bc..f9e25a3e0bde303e8d2567d9dba6fa5b2139d384 100644 --- a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabCalib.ui +++ b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabCalib.ui @@ -13,35 +13,8 @@ <property name="windowTitle"> <string>Form</string> </property> - <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="0"> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="label_RBNumber"> - <property name="text"> - <string>RB Number:</string> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="lineEdit_RBNumber"/> - </item> - <item> - <spacer name="horizontalSpacer_5"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>358</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item row="1" column="0"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> <widget class="QGroupBox" name="groupBox_current_calib"> <property name="title"> <string>Current calibration:</string> @@ -144,7 +117,7 @@ </layout> </widget> </item> - <item row="2" column="0"> + <item> <layout class="QHBoxLayout" name="horizontalLayout_2"> <item> <spacer name="horizontalSpacer_6"> @@ -233,7 +206,7 @@ </item> </layout> </item> - <item row="3" column="0"> + <item> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> diff --git a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/IEnggDiffractionView.h b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/IEnggDiffractionView.h index 91cd94e0835b6f9da52f9896e98843f7d6f469d2..d579d51de7c153c721f9f6ab5c227d1c81893c4c 100644 --- a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/IEnggDiffractionView.h +++ b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/IEnggDiffractionView.h @@ -190,6 +190,16 @@ public: const std::vector<double> &difc, const std::vector<double> &tzero) = 0; + /** + * Enable/disable all the sections or tabs of the interface. To be + * used with required parameters, like a valid instrument, a valid + * RB number, etc. This should effectively disable/enable all + * actions, including calibration, focusing, event mode, etc. + * + * @param enable true to enable all tabs of the interface + */ + virtual void enableTabs(bool enable) = 0; + /** * Enable/disable calibrate+focus actions. The idea is that actions * / buttons like 'calibrate', 'load calibration', or 'focus' can be diff --git a/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp b/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp index 99861916153ff2427eb637722c13e352c710f3a1..d99f3cd0058fd15761019f11e2fe87834d1c79ec 100644 --- a/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp +++ b/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp @@ -178,6 +178,8 @@ void EnggDiffractionViewQtGUI::doSetupTabFocus() { } void EnggDiffractionViewQtGUI::doSetupGeneralWidgets() { + m_presenter->notify(IEnggDiffractionPresenter::RBNumberChange); + // change instrument connect(m_ui.comboBox_instrument, SIGNAL(currentIndexChanged(int)), this, SLOT(instrumentChanged(int))); @@ -186,13 +188,16 @@ void EnggDiffractionViewQtGUI::doSetupGeneralWidgets() { // may remain open and visible after this close connect(m_ui.pushButton_close, SIGNAL(released()), this->parent(), SLOT(close())); + + connect(m_ui.lineEdit_RBNumber, SIGNAL(editingFinished()), this, + SLOT(RBNumberChanged())); } void EnggDiffractionViewQtGUI::readSettings() { QSettings qs; qs.beginGroup(QString::fromStdString(m_settingsGroup)); - m_uiTabCalib.lineEdit_RBNumber->setText( + m_ui.lineEdit_RBNumber->setText( qs.value("user-params-RBNumber", "").toString()); m_uiTabCalib.lineEdit_current_vanadium_num->setText( @@ -277,7 +282,7 @@ void EnggDiffractionViewQtGUI::saveSettings() const { QSettings qs; qs.beginGroup(QString::fromStdString(m_settingsGroup)); - qs.setValue("user-params-RBNumber", m_uiTabCalib.lineEdit_RBNumber->text()); + qs.setValue("user-params-RBNumber", m_ui.lineEdit_RBNumber->text()); qs.setValue("user-params-current-vanadium-num", m_uiTabCalib.lineEdit_current_vanadium_num->text()); @@ -377,7 +382,7 @@ std::string EnggDiffractionViewQtGUI::askNewCalibrationFilename( } std::string EnggDiffractionViewQtGUI::getRBNumber() const { - return m_uiTabCalib.lineEdit_RBNumber->text().toStdString(); + return m_ui.lineEdit_RBNumber->text().toStdString(); } std::string EnggDiffractionViewQtGUI::currentVanadiumNo() const { @@ -419,7 +424,6 @@ void EnggDiffractionViewQtGUI::newCalibLoaded(const std::string &vanadiumNo, void EnggDiffractionViewQtGUI::enableCalibrateAndFocusActions(bool enable) { // calibrate - m_uiTabCalib.lineEdit_RBNumber->setEnabled(enable); m_uiTabCalib.groupBox_make_new_calib->setEnabled(enable); m_uiTabCalib.groupBox_current_calib->setEnabled(enable); @@ -436,6 +440,12 @@ void EnggDiffractionViewQtGUI::enableCalibrateAndFocusActions(bool enable) { m_uiTabFocus.pushButton_focus_texture->setEnabled(enable); } +void EnggDiffractionViewQtGUI::enableTabs(bool enable) { + for (int ti = 0; ti < m_ui.tabMain->count(); ++ti) { + m_ui.tabMain->setTabEnabled(ti, enable); + } +} + void EnggDiffractionViewQtGUI::plotFocusedSpectrum(const std::string &wsName) { std::string pyCode = "win = plotSpectrum('" + wsName + "', 0)"; @@ -742,6 +752,10 @@ void EnggDiffractionViewQtGUI::instrumentChanged(int /*idx*/) { m_presenter->notify(IEnggDiffractionPresenter::InstrumentChange); } +void EnggDiffractionViewQtGUI::RBNumberChanged() { + m_presenter->notify(IEnggDiffractionPresenter::RBNumberChange); +} + void EnggDiffractionViewQtGUI::userSelectInstrument(const QString &prefix) { // Set file browsing to current instrument setPrefix(prefix.toStdString()); diff --git a/MantidQt/CustomInterfaces/test/EnggDiffractionViewMock.h b/MantidQt/CustomInterfaces/test/EnggDiffractionViewMock.h index 3f099eb845d1bcddcc1e9ca3c33c41e3eece692e..f365985ffeb60e52d3db59ba9748f4985eb53035 100644 --- a/MantidQt/CustomInterfaces/test/EnggDiffractionViewMock.h +++ b/MantidQt/CustomInterfaces/test/EnggDiffractionViewMock.h @@ -74,6 +74,9 @@ public: void(const std::string &, const std::vector<double> &, const std::vector<double> &)); + // virtual void enableTabs(bool enable); + MOCK_METHOD1(enableTabs, void(bool)); + // virtual void enableCalibrateAndFocusActions(bool enable); MOCK_METHOD1(enableCalibrateAndFocusActions, void(bool)); @@ -124,8 +127,6 @@ public: // virtual void plotReplacingWindow MOCK_METHOD1(plotReplacingWindow, void(const std::string &wsName)); - - }; #endif // MANTID_CUSTOMINTERFACES_ENGGDIFFRACTIONVIEWMOCK_H