##// END OF EJS Templates
Next var request parameter is now based on previous request instead of...
Next var request parameter is now based on previous request instead of initial variable parameter

File last commit:

r713:0bbf90c7e3d0
r810:0f020366c50a
Show More
RenameVariableDialog.cpp
63 lines | 1.7 KiB | text/x-c | CppLexer
/ gui / src / Variable / RenameVariableDialog.cpp
Alexandre Leroux
Creates dialog to rename a variable
r682 #include "Variable/RenameVariableDialog.h"
#include <ui_RenameVariableDialog.h>
RenameVariableDialog::RenameVariableDialog(const QString &defaultName,
const QVector<QString> &forbiddenNames, QWidget *parent)
: QDialog{parent},
ui{new Ui::RenameVariableDialog},
m_DefaultName{defaultName},
m_ForbiddenNames{forbiddenNames}
{
ui->setupUi(this);
connect(ui->nameLineEdit, &QLineEdit::textChanged, [this]() { ui->errorLabel->hide(); });
ui->nameLineEdit->setText(defaultName);
ui->nameLineEdit->selectAll();
ui->nameLineEdit->setFocus();
}
RenameVariableDialog::~RenameVariableDialog() noexcept
{
delete ui;
}
QString RenameVariableDialog::name() const noexcept
{
Alexandre Leroux
Fixes the ability to enter a name with only spaces when renaming variables
r713 return ui->nameLineEdit->text().trimmed();
Alexandre Leroux
Creates dialog to rename a variable
r682 }
void RenameVariableDialog::accept()
{
auto invalidateInput = [this](const auto &error) {
ui->nameLineEdit->selectAll();
ui->nameLineEdit->setFocus();
ui->errorLabel->setText(error);
ui->errorLabel->show();
};
// Empty name
Alexandre Leroux
Fixes the ability to enter a name with only spaces when renaming variables
r713 auto name = this->name();
Alexandre Leroux
Creates dialog to rename a variable
r682 if (name.isEmpty()) {
invalidateInput(tr("A variable name must be specified"));
return;
}
// Same name when opening dialog
if (name.compare(m_DefaultName, Qt::CaseInsensitive) == 0) {
reject();
return;
}
// Forbidden name
auto isForbidden
= [&name](const auto &it) { return name.compare(it, Qt::CaseInsensitive) == 0; };
if (std::any_of(m_ForbiddenNames.cbegin(), m_ForbiddenNames.cend(), isForbidden)) {
invalidateInput(tr("'%1' is already used").arg(name));
return;
}
// Valid name
QDialog::accept();
}