Skip to content
Snippets Groups Projects
Commit e3936b8d authored by Matthew Andrew's avatar Matthew Andrew
Browse files

Updated IndirectFitDataView Re #22055

parent 2ec19d79
No related branches found
No related tags found
No related merge requests found
Showing
with 573 additions and 30 deletions
...@@ -34,7 +34,7 @@ set( ...@@ -34,7 +34,7 @@ set(
IndirectFitAnalysisTab.cpp IndirectFitAnalysisTab.cpp
IndirectFitData.cpp IndirectFitData.cpp
IndirectFitDataPresenter.cpp IndirectFitDataPresenter.cpp
IndirectFitDataView.cpp IndirectFitDataViewLegacy.cpp
IndirectFitOutput.cpp IndirectFitOutput.cpp
IndirectFitOutputOptionsModel.cpp IndirectFitOutputOptionsModel.cpp
IndirectFitOutputOptionsPresenter.cpp IndirectFitOutputOptionsPresenter.cpp
...@@ -124,7 +124,7 @@ set( ...@@ -124,7 +124,7 @@ set(
Elwin.h Elwin.h
FunctionTemplateBrowser.h FunctionTemplateBrowser.h
IAddWorkspaceDialog.h IAddWorkspaceDialog.h
IIndirectFitDataView.h IIndirectFitDataViewLegacy.h
IIndirectFitOutputOptionsView.h IIndirectFitOutputOptionsView.h
IIndirectFitPlotView.h IIndirectFitPlotView.h
IIndirectSettingsView.h IIndirectSettingsView.h
...@@ -142,7 +142,7 @@ set( ...@@ -142,7 +142,7 @@ set(
IndirectEditResultsDialog.h IndirectEditResultsDialog.h
IndirectFitAnalysisTab.h IndirectFitAnalysisTab.h
IndirectFitDataPresenter.h IndirectFitDataPresenter.h
IndirectFitDataView.h IndirectFitDataViewLegacy.h
IndirectFitOutputOptionsPresenter.h IndirectFitOutputOptionsPresenter.h
IndirectFitOutputOptionsView.h IndirectFitOutputOptionsView.h
IndirectFitPlotPresenter.h IndirectFitPlotPresenter.h
...@@ -204,7 +204,7 @@ set( ...@@ -204,7 +204,7 @@ set(
IndirectDataReduction.ui IndirectDataReduction.ui
IndirectDiffractionReduction.ui IndirectDiffractionReduction.ui
IndirectEditResultsDialog.ui IndirectEditResultsDialog.ui
IndirectFitDataView.ui IndirectFitDataViewLegacy.ui
IndirectFitOutputOptions.ui IndirectFitOutputOptions.ui
IndirectFitPreviewPlot.ui IndirectFitPreviewPlot.ui
IndirectInterfaceSettings.ui IndirectInterfaceSettings.ui
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<property name="childrenCollapsible"> <property name="childrenCollapsible">
<bool>false</bool> <bool>false</bool>
</property> </property>
<widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataView" name="fitDataView" native="true"> <widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy" name="fitDataView" native="true">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
...@@ -168,9 +168,9 @@ ...@@ -168,9 +168,9 @@
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
<class>MantidQt::CustomInterfaces::IDA::IndirectFitDataView</class> <class>MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header>IndirectFitDataView.h</header> <header>IndirectFitDataViewLegacy.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
......
...@@ -24,7 +24,7 @@ namespace CustomInterfaces { ...@@ -24,7 +24,7 @@ namespace CustomInterfaces {
namespace IDA { namespace IDA {
ConvFitDataPresenter::ConvFitDataPresenter(ConvFitModel *model, ConvFitDataPresenter::ConvFitDataPresenter(ConvFitModel *model,
IIndirectFitDataView *view) IIndirectFitDataViewLegacy *view)
: IndirectFitDataPresenter(model, view, : IndirectFitDataPresenter(model, view,
std::make_unique<ConvFitDataTablePresenter>( std::make_unique<ConvFitDataTablePresenter>(
model, view->getDataTable())), model, view->getDataTable())),
......
...@@ -20,7 +20,7 @@ class MANTIDQT_INDIRECT_DLL ConvFitDataPresenter ...@@ -20,7 +20,7 @@ class MANTIDQT_INDIRECT_DLL ConvFitDataPresenter
: public IndirectFitDataPresenter { : public IndirectFitDataPresenter {
Q_OBJECT Q_OBJECT
public: public:
ConvFitDataPresenter(ConvFitModel *model, IIndirectFitDataView *view); ConvFitDataPresenter(ConvFitModel *model, IIndirectFitDataViewLegacy *view);
private slots: private slots:
void setModelResolution(const QString &name); void setModelResolution(const QString &name);
......
...@@ -51,8 +51,12 @@ public: ...@@ -51,8 +51,12 @@ public:
virtual void readSettings(QSettings const &settings) = 0; virtual void readSettings(QSettings const &settings) = 0;
virtual UserInputValidator &validate(UserInputValidator &validator) = 0; virtual UserInputValidator &validate(UserInputValidator &validator) = 0;
virtual void setXRange(std::pair<double, double> const &range) = 0;
public slots: public slots:
virtual void displayWarning(std::string const &warning) = 0; virtual void displayWarning(std::string const &warning) = 0;
virtual void setStartX(double) = 0;
virtual void setEndX(double) = 0;
signals: signals:
void sampleLoaded(QString const & /*_t1*/); void sampleLoaded(QString const & /*_t1*/);
...@@ -61,6 +65,8 @@ signals: ...@@ -61,6 +65,8 @@ signals:
void removeClicked(); void removeClicked();
void multipleDataViewSelected(); void multipleDataViewSelected();
void singleDataViewSelected(); void singleDataViewSelected();
void startXChanged(double);
void endXChanged(double);
}; };
} // namespace IDA } // namespace IDA
} // namespace CustomInterfaces } // namespace CustomInterfaces
......
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source
// & Institut Laue - Langevin
// SPDX - License - Identifier: GPL - 3.0 +
#ifndef MANTIDQTCUSTOMINTERFACESIDA_IIndirectFitDataViewLegacy_H_
#define MANTIDQTCUSTOMINTERFACESIDA_IIndirectFitDataViewLegacy_H_
#include "DllConfig.h"
#include "MantidQtWidgets/Common/UserInputValidator.h"
#include <QObject>
#include <QTabWidget>
#include <QTableWidget>
namespace MantidQt {
namespace CustomInterfaces {
namespace IDA {
class MANTIDQT_INDIRECT_DLL IIndirectFitDataViewLegacy : public QTabWidget {
Q_OBJECT
public:
IIndirectFitDataViewLegacy(QWidget *parent = nullptr) : QTabWidget(parent){};
virtual ~IIndirectFitDataViewLegacy(){};
virtual QTableWidget *getDataTable() const = 0;
virtual bool isMultipleDataTabSelected() const = 0;
virtual bool isResolutionHidden() const = 0;
virtual void setResolutionHidden(bool hide) = 0;
virtual void disableMultipleDataTab() = 0;
virtual std::string getSelectedSample() const = 0;
virtual std::string getSelectedResolution() const = 0;
virtual QStringList getSampleWSSuffices() const = 0;
virtual QStringList getSampleFBSuffices() const = 0;
virtual QStringList getResolutionWSSuffices() const = 0;
virtual QStringList getResolutionFBSuffices() const = 0;
virtual void setSampleWSSuffices(QStringList const &suffices) = 0;
virtual void setSampleFBSuffices(QStringList const &suffices) = 0;
virtual void setResolutionWSSuffices(QStringList const &suffices) = 0;
virtual void setResolutionFBSuffices(QStringList const &suffices) = 0;
virtual bool isSampleWorkspaceSelectorVisible() const = 0;
virtual void
setSampleWorkspaceSelectorIndex(QString const &workspaceName) = 0;
virtual void readSettings(QSettings const &settings) = 0;
virtual UserInputValidator &validate(UserInputValidator &validator) = 0;
public slots:
virtual void displayWarning(std::string const &warning) = 0;
signals:
void sampleLoaded(QString const & /*_t1*/);
void resolutionLoaded(QString const & /*_t1*/);
void addClicked();
void removeClicked();
void multipleDataViewSelected();
void singleDataViewSelected();
};
} // namespace IDA
} // namespace CustomInterfaces
} // namespace MantidQt
#endif
...@@ -12,13 +12,13 @@ namespace CustomInterfaces { ...@@ -12,13 +12,13 @@ namespace CustomInterfaces {
namespace IDA { namespace IDA {
IndirectFitDataPresenter::IndirectFitDataPresenter(IndirectFittingModel *model, IndirectFitDataPresenter::IndirectFitDataPresenter(IndirectFittingModel *model,
IIndirectFitDataView *view) IIndirectFitDataViewLegacy *view)
: IndirectFitDataPresenter(model, view, : IndirectFitDataPresenter(model, view,
std::make_unique<IndirectDataTablePresenter>( std::make_unique<IndirectDataTablePresenter>(
model, view->getDataTable())) {} model, view->getDataTable())) {}
IndirectFitDataPresenter::IndirectFitDataPresenter( IndirectFitDataPresenter::IndirectFitDataPresenter(
IndirectFittingModel *model, IIndirectFitDataView *view, IndirectFittingModel *model, IIndirectFitDataViewLegacy *view,
std::unique_ptr<IndirectDataTablePresenter> tablePresenter) std::unique_ptr<IndirectDataTablePresenter> tablePresenter)
: m_model(model), m_view(view), : m_model(model), m_view(view),
m_tablePresenter(std::move(tablePresenter)) { m_tablePresenter(std::move(tablePresenter)) {
...@@ -64,7 +64,7 @@ IndirectFitDataPresenter::IndirectFitDataPresenter( ...@@ -64,7 +64,7 @@ IndirectFitDataPresenter::IndirectFitDataPresenter(
IndirectFitDataPresenter::~IndirectFitDataPresenter() { observeReplace(false); } IndirectFitDataPresenter::~IndirectFitDataPresenter() { observeReplace(false); }
IIndirectFitDataView const *IndirectFitDataPresenter::getView() const { IIndirectFitDataViewLegacy const *IndirectFitDataPresenter::getView() const {
return m_view; return m_view;
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#define MANTIDQTCUSTOMINTERFACESIDA_INDIRECTFITDATAPRESENTER_H_ #define MANTIDQTCUSTOMINTERFACESIDA_INDIRECTFITDATAPRESENTER_H_
#include "IAddWorkspaceDialog.h" #include "IAddWorkspaceDialog.h"
#include "IIndirectFitDataView.h" #include "IIndirectFitDataViewLegacy.h"
#include "IndirectDataTablePresenter.h" #include "IndirectDataTablePresenter.h"
#include "IndirectFittingModel.h" #include "IndirectFittingModel.h"
...@@ -28,9 +28,9 @@ class MANTIDQT_INDIRECT_DLL IndirectFitDataPresenter ...@@ -28,9 +28,9 @@ class MANTIDQT_INDIRECT_DLL IndirectFitDataPresenter
Q_OBJECT Q_OBJECT
public: public:
IndirectFitDataPresenter(IndirectFittingModel *model, IndirectFitDataPresenter(IndirectFittingModel *model,
IIndirectFitDataView *view); IIndirectFitDataViewLegacy *view);
IndirectFitDataPresenter( IndirectFitDataPresenter(
IndirectFittingModel *model, IIndirectFitDataView *view, IndirectFittingModel *model, IIndirectFitDataViewLegacy *view,
std::unique_ptr<IndirectDataTablePresenter> tablePresenter); std::unique_ptr<IndirectDataTablePresenter> tablePresenter);
~IndirectFitDataPresenter(); ~IndirectFitDataPresenter();
...@@ -80,7 +80,7 @@ signals: ...@@ -80,7 +80,7 @@ signals:
void updateAvailableFitTypes(); void updateAvailableFitTypes();
protected: protected:
IIndirectFitDataView const *getView() const; IIndirectFitDataViewLegacy const *getView() const;
void addData(IAddWorkspaceDialog const *dialog); void addData(IAddWorkspaceDialog const *dialog);
virtual void addDataToModel(IAddWorkspaceDialog const *dialog); virtual void addDataToModel(IAddWorkspaceDialog const *dialog);
void setSingleModelData(const std::string &name); void setSingleModelData(const std::string &name);
...@@ -105,7 +105,7 @@ private: ...@@ -105,7 +105,7 @@ private:
IndirectFittingModel *m_model; IndirectFittingModel *m_model;
PrivateFittingData m_singleData; PrivateFittingData m_singleData;
PrivateFittingData m_multipleData; PrivateFittingData m_multipleData;
IIndirectFitDataView *m_view; IIndirectFitDataViewLegacy *m_view;
std::unique_ptr<IndirectDataTablePresenter> m_tablePresenter; std::unique_ptr<IndirectDataTablePresenter> m_tablePresenter;
}; };
......
...@@ -25,6 +25,8 @@ IndirectFitDataView::IndirectFitDataView(QWidget *parent) ...@@ -25,6 +25,8 @@ IndirectFitDataView::IndirectFitDataView(QWidget *parent)
m_dataForm->setupUi(this); m_dataForm->setupUi(this);
m_dataForm->dsResolution->hide(); m_dataForm->dsResolution->hide();
m_dataForm->lbResolution->hide(); m_dataForm->lbResolution->hide();
m_dataForm->dsbStartX->setRange(-1e100, 1e100);
m_dataForm->dsbEndX->setRange(-1e100, 1e100);
connect(m_dataForm->dsSample, SIGNAL(dataReady(const QString &)), this, connect(m_dataForm->dsSample, SIGNAL(dataReady(const QString &)), this,
SIGNAL(sampleLoaded(const QString &))); SIGNAL(sampleLoaded(const QString &)));
...@@ -33,6 +35,10 @@ IndirectFitDataView::IndirectFitDataView(QWidget *parent) ...@@ -33,6 +35,10 @@ IndirectFitDataView::IndirectFitDataView(QWidget *parent)
connect(m_dataForm->pbAdd, SIGNAL(clicked()), this, SIGNAL(addClicked())); connect(m_dataForm->pbAdd, SIGNAL(clicked()), this, SIGNAL(addClicked()));
connect(m_dataForm->pbRemove, SIGNAL(clicked()), this, connect(m_dataForm->pbRemove, SIGNAL(clicked()), this,
SIGNAL(removeClicked())); SIGNAL(removeClicked()));
connect(m_dataForm->dsbStartX, SIGNAL(valueChanged(double)), this,
SIGNAL(startXChanged(double)));
connect(m_dataForm->dsbEndX, SIGNAL(valueChanged(double)), this,
SIGNAL(endXChanged(double)));
connect(this, SIGNAL(currentChanged(int)), this, SLOT(emitViewSelected(int))); connect(this, SIGNAL(currentChanged(int)), this, SLOT(emitViewSelected(int)));
...@@ -110,6 +116,24 @@ void IndirectFitDataView::setSampleWorkspaceSelectorIndex( ...@@ -110,6 +116,24 @@ void IndirectFitDataView::setSampleWorkspaceSelectorIndex(
m_dataForm->dsSample->setSelectorIndex(1); m_dataForm->dsSample->setSelectorIndex(1);
} }
void IndirectFitDataView::setXRange(std::pair<double, double> const &range) {
m_dataForm->dsbStartX->setRange(range.first, range.second);
m_dataForm->dsbEndX->setRange(range.first, range.second);
auto const dx = fabs(range.second - range.first) / 10.0;
m_dataForm->dsbStartX->setSingleStep(dx);
m_dataForm->dsbEndX->setSingleStep(dx);
m_dataForm->dsbStartX->setValue(range.first);
m_dataForm->dsbEndX->setValue(range.second);
}
void IndirectFitDataView::setStartX(double value) {
m_dataForm->dsbStartX->setValue(value);
}
void IndirectFitDataView::setEndX(double value) {
m_dataForm->dsbEndX->setValue(value);
}
UserInputValidator & UserInputValidator &
IndirectFitDataView::validate(UserInputValidator &validator) { IndirectFitDataView::validate(UserInputValidator &validator) {
if (currentIndex() == 0) if (currentIndex() == 0)
......
...@@ -51,11 +51,15 @@ public: ...@@ -51,11 +51,15 @@ public:
void readSettings(const QSettings &settings) override; void readSettings(const QSettings &settings) override;
UserInputValidator &validate(UserInputValidator &validator) override; UserInputValidator &validate(UserInputValidator &validator) override;
void setXRange(std::pair<double, double> const &range) override;
public slots: public slots:
void displayWarning(const std::string &warning) override; void displayWarning(const std::string &warning) override;
protected slots: protected slots:
void emitViewSelected(int index); void emitViewSelected(int index);
void setStartX(double) override;
void setEndX(double) override;
private: private:
UserInputValidator &validateMultipleData(UserInputValidator &validator); UserInputValidator &validateMultipleData(UserInputValidator &validator);
......
...@@ -74,6 +74,69 @@ ...@@ -74,6 +74,69 @@
<property name="showLoad" stdset="0"> <property name="showLoad" stdset="0">
<bool>false</bool> <bool>false</bool>
</property> </property>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,0,0,0">
<item>
<widget class="QDoubleSpinBox" name="dsbStartX">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="decimals">
<number>6</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>End X</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="dsbEndX">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="decimals">
<number>6</number>
</property>
<property name="minimum">
<double>-1000000000.000000000000000</double>
</property>
<property name="maximum">
<double>1000000000.000000000000000</double>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Start X</string>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
......
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright &copy; 2018 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source
// & Institut Laue - Langevin
// SPDX - License - Identifier: GPL - 3.0 +
#include "IndirectFitDataViewLegacy.h"
using namespace Mantid::API;
namespace {
bool isWorkspaceLoaded(std::string const &workspaceName) {
return AnalysisDataService::Instance().doesExist(workspaceName);
}
} // namespace
namespace MantidQt {
namespace CustomInterfaces {
namespace IDA {
IndirectFitDataViewLegacy::IndirectFitDataViewLegacy(QWidget *parent)
: IIndirectFitDataViewLegacy(parent), m_dataForm(new Ui::IndirectFitDataForm) {
m_dataForm->setupUi(this);
m_dataForm->dsResolution->hide();
m_dataForm->lbResolution->hide();
connect(m_dataForm->dsSample, SIGNAL(dataReady(const QString &)), this,
SIGNAL(sampleLoaded(const QString &)));
connect(m_dataForm->dsResolution, SIGNAL(dataReady(const QString &)), this,
SIGNAL(resolutionLoaded(const QString &)));
connect(m_dataForm->pbAdd, SIGNAL(clicked()), this, SIGNAL(addClicked()));
connect(m_dataForm->pbRemove, SIGNAL(clicked()), this,
SIGNAL(removeClicked()));
connect(this, SIGNAL(currentChanged(int)), this, SLOT(emitViewSelected(int)));
m_dataForm->dsSample->isOptional(true);
m_dataForm->dsResolution->isOptional(true);
}
QTableWidget *IndirectFitDataViewLegacy::getDataTable() const {
return m_dataForm->tbFitData;
}
bool IndirectFitDataViewLegacy::isMultipleDataTabSelected() const {
return currentIndex() == 1;
}
bool IndirectFitDataViewLegacy::isResolutionHidden() const {
return m_dataForm->dsResolution->isHidden();
}
std::string IndirectFitDataViewLegacy::getSelectedSample() const {
return m_dataForm->dsSample->getCurrentDataName().toStdString();
}
std::string IndirectFitDataViewLegacy::getSelectedResolution() const {
return m_dataForm->dsResolution->getCurrentDataName().toStdString();
}
void IndirectFitDataViewLegacy::readSettings(const QSettings &settings) {
const auto group = settings.group();
m_dataForm->dsSample->readSettings(group);
m_dataForm->dsResolution->readSettings(group);
}
void IndirectFitDataViewLegacy::disableMultipleDataTab() { setTabEnabled(1, false); }
QStringList IndirectFitDataViewLegacy::getSampleWSSuffices() const {
return m_dataForm->dsSample->getWSSuffixes();
}
QStringList IndirectFitDataViewLegacy::getSampleFBSuffices() const {
return m_dataForm->dsSample->getFBSuffixes();
}
QStringList IndirectFitDataViewLegacy::getResolutionWSSuffices() const {
return m_dataForm->dsResolution->getWSSuffixes();
}
QStringList IndirectFitDataViewLegacy::getResolutionFBSuffices() const {
return m_dataForm->dsResolution->getFBSuffixes();
}
void IndirectFitDataViewLegacy::setSampleWSSuffices(const QStringList &suffices) {
m_dataForm->dsSample->setWSSuffixes(suffices);
}
void IndirectFitDataViewLegacy::setSampleFBSuffices(const QStringList &suffices) {
m_dataForm->dsSample->setFBSuffixes(suffices);
}
void IndirectFitDataViewLegacy::setResolutionWSSuffices(const QStringList &suffices) {
m_dataForm->dsResolution->setWSSuffixes(suffices);
}
void IndirectFitDataViewLegacy::setResolutionFBSuffices(const QStringList &suffices) {
m_dataForm->dsResolution->setFBSuffixes(suffices);
}
bool IndirectFitDataViewLegacy::isSampleWorkspaceSelectorVisible() const {
return m_dataForm->dsSample->isWorkspaceSelectorVisible();
}
void IndirectFitDataViewLegacy::setSampleWorkspaceSelectorIndex(
const QString &workspaceName) {
m_dataForm->dsSample->setWorkspaceSelectorIndex(workspaceName);
m_dataForm->dsSample->setSelectorIndex(1);
}
UserInputValidator &
IndirectFitDataViewLegacy::validate(UserInputValidator &validator) {
if (currentIndex() == 0)
return validateSingleData(validator);
return validateMultipleData(validator);
}
UserInputValidator &
IndirectFitDataViewLegacy::validateMultipleData(UserInputValidator &validator) {
if (m_dataForm->tbFitData->rowCount() == 0)
validator.addErrorMessage("No input data has been provided.");
return validator;
}
UserInputValidator &
IndirectFitDataViewLegacy::validateSingleData(UserInputValidator &validator) {
validator = validateSample(validator);
if (!isResolutionHidden())
validator = validateResolution(validator);
return validator;
}
UserInputValidator &
IndirectFitDataViewLegacy::validateSample(UserInputValidator &validator) {
const auto sampleIsLoaded = isWorkspaceLoaded(getSelectedSample());
validator.checkDataSelectorIsValid("Sample Input", m_dataForm->dsSample);
if (!sampleIsLoaded)
emit sampleLoaded(QString::fromStdString(getSelectedSample()));
return validator;
}
UserInputValidator &
IndirectFitDataViewLegacy::validateResolution(UserInputValidator &validator) {
const auto resolutionIsLoaded = isWorkspaceLoaded(getSelectedResolution());
validator.checkDataSelectorIsValid("Resolution Input",
m_dataForm->dsResolution);
if (!resolutionIsLoaded)
emit resolutionLoaded(QString::fromStdString(getSelectedResolution()));
return validator;
}
void IndirectFitDataViewLegacy::displayWarning(const std::string &warning) {
QMessageBox::warning(parentWidget(), "MantidPlot - Warning",
QString::fromStdString(warning));
}
void IndirectFitDataViewLegacy::setResolutionHidden(bool hide) {
m_dataForm->lbResolution->setHidden(hide);
m_dataForm->dsResolution->setHidden(hide);
}
void IndirectFitDataViewLegacy::emitViewSelected(int index) {
if (index == 0)
emit singleDataViewSelected();
else
emit multipleDataViewSelected();
}
} // namespace IDA
} // namespace CustomInterfaces
} // namespace MantidQt
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source
// & Institut Laue - Langevin
// SPDX - License - Identifier: GPL - 3.0 +
#ifndef MANTIDQTCUSTOMINTERFACES_INDIRECTFITDATAVIEW_H_
#define MANTIDQTCUSTOMINTERFACES_INDIRECTFITDATAVIEW_H_
#include "ui_IndirectFitDataView.h"
#include "IIndirectFitDataViewLegacy.h"
#include "DllConfig.h"
#include "MantidQtWidgets/Common/UserInputValidator.h"
#include <QTabWidget>
namespace MantidQt {
namespace CustomInterfaces {
namespace IDA {
class MANTIDQT_INDIRECT_DLL IndirectFitDataViewLegacy : public IIndirectFitDataViewLegacy {
Q_OBJECT
public:
IndirectFitDataViewLegacy(QWidget *parent = nullptr);
~IndirectFitDataViewLegacy() override = default;
QTableWidget *getDataTable() const override;
virtual bool isMultipleDataTabSelected() const override;
bool isResolutionHidden() const override;
void setResolutionHidden(bool hide) override;
void disableMultipleDataTab() override;
virtual std::string getSelectedSample() const override;
std::string getSelectedResolution() const override;
virtual QStringList getSampleWSSuffices() const override;
virtual QStringList getSampleFBSuffices() const override;
QStringList getResolutionWSSuffices() const override;
QStringList getResolutionFBSuffices() const override;
virtual void setSampleWSSuffices(const QStringList &suffices) override;
virtual void setSampleFBSuffices(const QStringList &suffices) override;
virtual void setResolutionWSSuffices(const QStringList &suffices) override;
virtual void setResolutionFBSuffices(const QStringList &suffices) override;
bool isSampleWorkspaceSelectorVisible() const override;
void setSampleWorkspaceSelectorIndex(const QString &workspaceName) override;
void readSettings(const QSettings &settings) override;
UserInputValidator &validate(UserInputValidator &validator) override;
public slots:
void displayWarning(const std::string &warning) override;
protected slots:
void emitViewSelected(int index);
private:
UserInputValidator &validateMultipleData(UserInputValidator &validator);
UserInputValidator &validateSingleData(UserInputValidator &validator);
UserInputValidator &validateSample(UserInputValidator &validator);
UserInputValidator &validateResolution(UserInputValidator &validator);
std::unique_ptr<Ui::IndirectFitDataForm> m_dataForm;
};
} // namespace IDA
} // namespace CustomInterfaces
} // namespace MantidQt
#endif /* MANTIDQTCUSTOMINTERFACES_INDIRECTFITDATAVIEW_H_ */
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>IndirectFitDataForm</class>
<widget class="QTabWidget" name="IndirectFitDataForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>654</width>
<height>222</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>TabWidget</string>
</property>
<property name="tabPosition">
<enum>QTabWidget::North</enum>
</property>
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<property name="elideMode">
<enum>Qt::ElideLeft</enum>
</property>
<widget class="QWidget" name="loSingleInput">
<attribute name="title">
<string>Single Input</string>
</attribute>
<layout class="QGridLayout" name="gridLayout" columnstretch="0,1">
<item row="0" column="0">
<widget class="QLabel" name="lbSample">
<property name="text">
<string>Sample</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lbResolution">
<property name="text">
<string>Resolution</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="MantidQt::MantidWidgets::DataSelector" name="dsSample" native="true">
<property name="autoLoad" stdset="0">
<bool>true</bool>
</property>
<property name="ShowGroups" stdset="0">
<bool>false</bool>
</property>
<property name="showLoad" stdset="0">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="MantidQt::MantidWidgets::DataSelector" name="dsResolution" native="true">
<property name="autoLoad" stdset="0">
<bool>true</bool>
</property>
<property name="ShowGroups" stdset="0">
<bool>false</bool>
</property>
<property name="showLoad" stdset="0">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Multiple Input</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTableWidget" name="tbFitData">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="loDataControl">
<property name="rightMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="pbAdd">
<property name="text">
<string>Add Workspace</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pbRemove">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>MantidQt::MantidWidgets::DataSelector</class>
<extends>QWidget</extends>
<header>MantidQtWidgets/Common/DataSelector.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<property name="childrenCollapsible"> <property name="childrenCollapsible">
<bool>false</bool> <bool>false</bool>
</property> </property>
<widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataView" name="fitDataView" native="true"/> <widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy" name="fitDataView" native="true"/>
<widget class="QWidget" name="layoutWidget"> <widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
...@@ -144,9 +144,9 @@ ...@@ -144,9 +144,9 @@
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
<class>MantidQt::CustomInterfaces::IDA::IndirectFitDataView</class> <class>MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header>IndirectFitDataView.h</header> <header>IndirectFitDataViewLegacy.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<property name="childrenCollapsible"> <property name="childrenCollapsible">
<bool>false</bool> <bool>false</bool>
</property> </property>
<widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataView" name="fitDataView" native="true"/> <widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy" name="fitDataView" native="true"/>
<widget class="QWidget" name="layoutWidget"> <widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
...@@ -234,9 +234,9 @@ ...@@ -234,9 +234,9 @@
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
<class>MantidQt::CustomInterfaces::IDA::IndirectFitDataView</class> <class>MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header>IndirectFitDataView.h</header> <header>IndirectFitDataViewLegacy.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
......
...@@ -14,7 +14,7 @@ namespace CustomInterfaces { ...@@ -14,7 +14,7 @@ namespace CustomInterfaces {
namespace IDA { namespace IDA {
JumpFitDataPresenter::JumpFitDataPresenter( JumpFitDataPresenter::JumpFitDataPresenter(
JumpFitModel *model, IIndirectFitDataView *view, QComboBox *cbParameterType, JumpFitModel *model, IIndirectFitDataViewLegacy *view, QComboBox *cbParameterType,
QComboBox *cbParameter, QLabel *lbParameterType, QLabel *lbParameter) QComboBox *cbParameter, QLabel *lbParameterType, QLabel *lbParameter)
: IndirectFitDataPresenter(model, view, : IndirectFitDataPresenter(model, view,
std::make_unique<JumpFitDataTablePresenter>( std::make_unique<JumpFitDataTablePresenter>(
......
...@@ -22,7 +22,7 @@ class MANTIDQT_INDIRECT_DLL JumpFitDataPresenter ...@@ -22,7 +22,7 @@ class MANTIDQT_INDIRECT_DLL JumpFitDataPresenter
: public IndirectFitDataPresenter { : public IndirectFitDataPresenter {
Q_OBJECT Q_OBJECT
public: public:
JumpFitDataPresenter(JumpFitModel *model, IIndirectFitDataView *view, JumpFitDataPresenter(JumpFitModel *model, IIndirectFitDataViewLegacy *view,
QComboBox *cbParameterType, QComboBox *cbParameter, QComboBox *cbParameterType, QComboBox *cbParameter,
QLabel *lbParameterType, QLabel *lbParameter); QLabel *lbParameterType, QLabel *lbParameter);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<property name="childrenCollapsible"> <property name="childrenCollapsible">
<bool>false</bool> <bool>false</bool>
</property> </property>
<widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataView" name="fitDataView" native="true"/> <widget class="MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy" name="fitDataView" native="true"/>
<widget class="QWidget" name="layoutWidget"> <widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing"> <property name="spacing">
...@@ -141,9 +141,9 @@ ...@@ -141,9 +141,9 @@
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
<class>MantidQt::CustomInterfaces::IDA::IndirectFitDataView</class> <class>MantidQt::CustomInterfaces::IDA::IndirectFitDataViewLegacy</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header>IndirectFitDataView.h</header> <header>IndirectFitDataViewLegacy.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget> <customwidget>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include "ConvFitDataPresenter.h" #include "ConvFitDataPresenter.h"
#include "ConvFitModel.h" #include "ConvFitModel.h"
#include "IIndirectFitDataView.h" #include "IIndirectFitDataViewLegacy.h"
#include "MantidAPI/FrameworkManager.h" #include "MantidAPI/FrameworkManager.h"
#include "MantidKernel/WarningSuppressions.h" #include "MantidKernel/WarningSuppressions.h"
...@@ -39,7 +39,7 @@ std::unique_ptr<QTableWidget> createEmptyTableWidget(int columns, int rows) { ...@@ -39,7 +39,7 @@ std::unique_ptr<QTableWidget> createEmptyTableWidget(int columns, int rows) {
GNU_DIAG_OFF_SUGGEST_OVERRIDE GNU_DIAG_OFF_SUGGEST_OVERRIDE
/// Mock object to mock the view /// Mock object to mock the view
class MockConvFitDataView : public IIndirectFitDataView { class MockConvFitDataView : public IIndirectFitDataViewLegacy {
public: public:
/// Signals /// Signals
void emitResolutionLoaded(QString const &workspaceName) { void emitResolutionLoaded(QString const &workspaceName) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment