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));
28 connect(m_uiForm.ckAllSpectra, &QCheckBox::checkStateChanged, this, &AddWorkspaceDialog::selectAllSpectra);
29 connect(m_uiForm.pbAdd, &QPushButton::clicked, this, &AddWorkspaceDialog::emitAddData);
30 connect(m_uiForm.pbClose, &QPushButton::clicked, this, &AddWorkspaceDialog::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
54void AddWorkspaceDialog::selectAllSpectra(Qt::CheckState state) {
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
void filesAutoLoaded()
Signal emitted when files are found and autoloaded.
void dataReady(const QString &wsname)
Signal emitted when data is ready from a workspace selector or file browser.
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)