Mantid
Loading...
Searching...
No Matches
AddWorkspaceDialog.cpp
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
10
13
14#include <QRegularExpression>
15#include <QRegularExpressionValidator>
16
17#include <utility>
18
20
21AddWorkspaceDialog::AddWorkspaceDialog(QWidget *parent) : QDialog(parent) {
22 m_uiForm.setupUi(this);
23 const auto validatorString = QString::fromStdString(getRegexValidatorString(RegexValidatorStrings::SpectraValidator));
24 m_uiForm.leWorkspaceIndices->setValidator(new QRegularExpressionValidator(QRegularExpression(validatorString), this));
26 connect(m_uiForm.dsWorkspace, SIGNAL(filesAutoLoaded()), this, SLOT(handleAutoLoaded()));
27 connect(m_uiForm.dsWorkspace, SIGNAL(dataReady(const QString &)), this, SLOT(workspaceChanged(const QString &)));
28 connect(m_uiForm.ckAllSpectra, SIGNAL(stateChanged(int)), this, SLOT(selectAllSpectra(int)));
29 connect(m_uiForm.pbAdd, SIGNAL(clicked()), this, SLOT(emitAddData()));
30 connect(m_uiForm.pbClose, SIGNAL(clicked()), this, SLOT(close()));
31}
32
34 return m_uiForm.dsWorkspace->getCurrentDataName().toStdString();
35}
36
38 return FunctionModelSpectra(m_uiForm.leWorkspaceIndices->text().toStdString());
39}
40
41void AddWorkspaceDialog::setWSSuffices(const QStringList &suffices) { m_uiForm.dsWorkspace->setWSSuffixes(suffices); }
42
43void AddWorkspaceDialog::setFBSuffices(const QStringList &suffices) { m_uiForm.dsWorkspace->setFBSuffixes(suffices); }
44
45void AddWorkspaceDialog::setLoadProperty(const std::string &propName, bool enable) {
46 m_uiForm.dsWorkspace->setLoadProperty(propName, enable);
47}
48
50 auto const state = m_uiForm.ckAllSpectra->isChecked() ? Qt::Checked : Qt::Unchecked;
51 selectAllSpectra(state);
52}
53
55 auto const name = workspaceName();
56 if (WorkspaceUtils::doesExistInADS(name) && state == Qt::Checked) {
57 m_uiForm.leWorkspaceIndices->setText(QString::fromStdString(WorkspaceUtils::getIndexString(name)));
58 m_uiForm.leWorkspaceIndices->setEnabled(false);
59 } else
60 m_uiForm.leWorkspaceIndices->setEnabled(true);
61}
62
63void AddWorkspaceDialog::workspaceChanged(const QString &workspaceName) {
64 const auto name = workspaceName.toStdString();
66 m_uiForm.pbAdd->setText("Add");
67 m_uiForm.pbAdd->setEnabled(true);
68
69 if (workspace)
71 else
73}
74
76
78 m_uiForm.pbAdd->setText("Loading");
79 m_uiForm.pbAdd->setEnabled(false);
80}
81
84 if (m_uiForm.ckAllSpectra->isChecked()) {
85 m_uiForm.leWorkspaceIndices->setText(QString::fromStdString(WorkspaceUtils::getIndexString(workspace)));
86 m_uiForm.leWorkspaceIndices->setEnabled(false);
87 }
88}
89
90void AddWorkspaceDialog::setAllSpectraSelectionEnabled(bool doEnable) { m_uiForm.ckAllSpectra->setEnabled(doEnable); }
91
92std::string AddWorkspaceDialog::getFileName() const { return m_uiForm.dsWorkspace->getFullFilePath().toStdString(); }
93
94} // namespace MantidQt::MantidWidgets
std::string name
Definition Run.cpp:60
IPeaksWorkspace_sptr workspace
void setFBSuffices(const QStringList &suffices) override
void setWorkspace(const std::string &workspace)
void addData(MantidWidgets::IAddWorkspaceDialog *dialog)
std::string workspaceName() const override final
void workspaceChanged(const QString &workspaceName)
void setLoadProperty(const std::string &propName, bool enable) override
void setWSSuffices(const QStringList &suffices) override
EXPORT_OPT_MANTIDQT_COMMON std::string getIndexString(const std::string &workspaceName)
std::shared_ptr< T > getADSWorkspace(std::string const &workspaceName)
EXPORT_OPT_MANTIDQT_COMMON bool doesExistInADS(std::string const &workspaceName)
EXPORT_OPT_MANTIDQT_COMMON std::string getRegexValidatorString(const RegexValidatorStrings &validatorMask)