ui: replace invalid characters in project name during project creation (issue #671)

This commit is contained in:
mlangkabel
2019-02-25 12:43:32 +01:00
parent 478f97d66b
commit 91e2c2e7e5
2 changed files with 16 additions and 0 deletions
@@ -1,6 +1,7 @@
#include "QtProjectWizzardContentProjectData.h"
#include <QMessageBox>
#include <QRegularExpression>
#include <boost/filesystem/path.hpp>
#include "ProjectSettings.h"
@@ -32,6 +33,7 @@ void QtProjectWizzardContentProjectData::populate(QGridLayout* layout, int& row)
m_projectName->setObjectName("name");
m_projectName->setAttribute(Qt::WA_MacShowFocusRect, 0);
m_projectName->setEnabled(!m_disableNameEditing);
connect(m_projectName, &QLineEdit::textEdited, this, &QtProjectWizzardContentProjectData::onProjectNameEdited);
layout->addWidget(nameLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
layout->addWidget(m_projectName, row, QtProjectWizzardWindow::BACK_COL);
@@ -125,3 +127,14 @@ bool QtProjectWizzardContentProjectData::check()
return true;
}
void QtProjectWizzardContentProjectData::onProjectNameEdited(QString text)
{
const int cursorPosition = m_projectName->cursorPosition();
QRegularExpression regex("[^A-Za-z0-9_.-]");
text.replace(regex, "_");
m_projectName->setText(text);
m_projectName->setCursorPosition(cursorPosition);
}
@@ -24,6 +24,9 @@ public:
virtual void save() override;
virtual bool check() override;
public slots:
void onProjectNameEdited(QString text);
private:
std::shared_ptr<ProjectSettings> m_projectSettings;