diff --git a/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt b/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt index b42ae6c11c2b01ddcdba35530f3e759c7d1b44ba..92714569c2761061354a75f598dd76794fb75ad6 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt +++ b/Code/Mantid/MantidQt/CustomInterfaces/CMakeLists.txt @@ -309,6 +309,7 @@ set ( UI_FILES inc/MantidQtCustomInterfaces/DataComparison.ui inc/MantidQtCustomInterfaces/DirectConvertToEnergy.ui inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtGUI.ui inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabCalib.ui + inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabFocus.ui inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabSettings.ui inc/MantidQtCustomInterfaces/Indirect/AbsorptionCorrections.ui inc/MantidQtCustomInterfaces/Indirect/ApplyPaalmanPings.ui diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabFocus.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabFocus.ui index 6aef95f8882e62151427845867e191b9454515bf..5e499f87db34290a506ca6d5e0f1980a267243fd 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabFocus.ui +++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabFocus.ui @@ -108,7 +108,7 @@ </spacer> </item> <item> - <widget class="QPushButton" name="pushButton"> + <widget class="QPushButton" name="pushButton_focus"> <property name="text"> <string>Focus</string> </property> diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabSettings.ui b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabSettings.ui index 5fa6c720227cbf4889a1418b0b9ca80977929ea0..65f282325d3b97b7506fa5bfa402244544f7ba90 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabSettings.ui +++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionQtTabSettings.ui @@ -269,7 +269,7 @@ <widget class="QLineEdit" name="lineEdit_dir_focusing"/> </item> <item> - <widget class="QPushButton" name="pushButton_browse_focusing"> + <widget class="QPushButton" name="pushButton_browse_dir_focusing"> <property name="text"> <string>Browse</string> </property> diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h index aec1818ea8bc35892c59b7698aef3774923f02f6..69b133d7eeaeb6e46c0fa3e0becfdfad144bba63 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h +++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h @@ -8,6 +8,7 @@ #include "ui_EnggDiffractionQtGUI.h" #include "ui_EnggDiffractionQtTabCalib.h" +#include "ui_EnggDiffractionQtTabFocus.h" #include "ui_EnggDiffractionQtTabSettings.h" #include <boost/scoped_ptr.hpp> @@ -104,12 +105,14 @@ private slots: /// for buttons, do calibrate and similar void loadCalibrationClicked(); void calibrateClicked(); + void focusClicked(); // slots of the settings tab/section of the interface void browseInputDirCalib(); void browseInputDirRaw(); void browsePixelCalibFilename(); void browseTemplateGSAS_PRM(); + void browseDirFocusing(); // slots of the calibration tab/section of the interface @@ -124,6 +127,7 @@ private: void doSetupGeneralWidgets(); void doSetupTabCalib(); void doSetupTabSettings(); + void doSetupTabFocus(); std::string guessGSASTemplatePath() const; @@ -157,6 +161,9 @@ private: EnggDiffCalibSettings m_calibSettings; std::string m_outCalibFilename; + /// This is in principle the only settings for 'focus' + std::string m_focusDir; + /// for the 'Rebin' parameter of some Engg* algorithms static const double g_defaultRebinWidth; diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp index e159559bce68bb9167e51ce87b330bed26f98d5a..65710777b829feda5acd83b7ce7b89652d557333 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp +++ b/Code/Mantid/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp @@ -40,7 +40,8 @@ const std::string EnggDiffractionViewQtGUI::g_pixelCalibExt = "(*.csv *.nxs *.nexus);;" "Other extensions/all files (*.*)"; -const std::string EnggDiffractionViewQtGUI::m_settingsGroup = "CustomInterfaces/EnggDiffractionView"; +const std::string EnggDiffractionViewQtGUI::m_settingsGroup = + "CustomInterfaces/EnggDiffractionView"; /** * Default constructor. @@ -60,6 +61,11 @@ void EnggDiffractionViewQtGUI::initLayout() { QWidget *wCalib = new QWidget(m_ui.tabMain); m_uiTabCalib.setupUi(wCalib); m_ui.tabMain->addTab(wCalib, QString("Calibration")); + + QWidget *wFocus = new QWidget(m_ui.tabMain); + m_uiTabFocus.setupUi(wFocus); + m_ui.tabMain->addTab(wFocus, QString("Focus")); + QWidget *wSettings = new QWidget(m_ui.tabMain); m_uiTabSettings.setupUi(wSettings); m_ui.tabMain->addTab(wSettings, QString("Settings")); @@ -128,6 +134,17 @@ void EnggDiffractionViewQtGUI::doSetupTabSettings() { connect(m_uiTabSettings.pushButton_browse_template_gsas_prm, SIGNAL(released()), this, SLOT(browseTemplateGSAS_PRM())); + + connect(m_uiTabSettings.pushButton_browse_dir_focusing, SIGNAL(released()), this, + SLOT(browseDirFocusing())); +} + +void EnggDiffractionViewQtGUI::doSetupTabFocus() { + m_uiTabSettings.lineEdit_dir_focusing->setText( + QString::fromStdString(m_focusDir)); + + connect(m_uiTabFocus.pushButton_browse_dir_focusing, SIGNAL(released()), this, + SLOT(focusClicked())); } void EnggDiffractionViewQtGUI::doSetupGeneralWidgets() { @@ -182,6 +199,9 @@ void EnggDiffractionViewQtGUI::readSettings() { m_calibSettings.m_forceRecalcOverwrite = qs.value("rebin-calib", g_defaultRebinWidth).toFloat(); + // 'focusing' block + m_focusDir = qs.value("focus-dir").toString().toStdString(); + restoreGeometry(qs.value("interface-win-geometry").toByteArray()); qs.endGroup(); } @@ -217,6 +237,9 @@ void EnggDiffractionViewQtGUI::saveSettings() const { QString::fromStdString(m_calibSettings.m_templateGSAS_PRM)); qs.setValue("rebin-calib", m_calibSettings.m_rebinCalibrate); + // 'focusing' block + qs.setValue("focus-dir", m_focusDir); + qs.setValue("interface-win-geometry", saveGeometry()); qs.endGroup(); } @@ -375,6 +398,10 @@ void EnggDiffractionViewQtGUI::calibrateClicked() { m_presenter->notify(IEnggDiffractionPresenter::CalcCalib); } +void EnggDiffractionViewQtGUI::calibrateClicked() { + m_presenter->notify(IEnggDiffractionPresenter::Focus); +} + void EnggDiffractionViewQtGUI::browseInputDirCalib() { QString prevPath = QString::fromStdString(m_calibSettings.m_inputDirCalib); if (prevPath.isEmpty()) { @@ -451,6 +478,26 @@ void EnggDiffractionViewQtGUI::browseTemplateGSAS_PRM() { QString::fromStdString(m_calibSettings.m_templateGSAS_PRM)); } +void EnggDiffractionViewQtGUI::browseDirFocusing() { + QString prevPath = QString::fromStdString(m_focusDir); + if (prevPath.isEmpty()) { + prevPath = + MantidQt::API::AlgorithmInputHistory::Instance().getPreviousDirectory(); + } + QString dir = QFileDialog::getExistingDirectory( + this, tr("Open Directory"), prevPath, + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + + if (dir.isEmpty()) { + return; + } + + MantidQt::API::AlgorithmInputHistory::Instance().setPreviousDirectory(dir); + m_focusDir = dir.toStdString(); + m_uiTabSettings.lineEdit_dir_focusing->setText( + QString::fromStdString(m_focusDir)); +} + void EnggDiffractionViewQtGUI::instrumentChanged(int /*idx*/) { QComboBox *inst = m_ui.comboBox_instrument; if (!inst)