regexp to validate image title and image name

Signed-off-by: Le Tan <tamlokveer@gmail.com>
This commit is contained in:
Le Tan 2016-11-20 23:16:10 +08:00
parent ac2552603b
commit 1ed324fd20
2 changed files with 10 additions and 4 deletions

View File

@ -1,4 +1,6 @@
#include <QtWidgets> #include <QtWidgets>
#include <QValidator>
#include <QRegExp>
#include "vinsertimagedialog.h" #include "vinsertimagedialog.h"
VInsertImageDialog::VInsertImageDialog(const QString &title, const QString &defaultImageTitle, VInsertImageDialog::VInsertImageDialog(const QString &title, const QString &defaultImageTitle,
@ -39,6 +41,9 @@ void VInsertImageDialog::setupUI()
imageTitleEdit = new QLineEdit(defaultImageTitle); imageTitleEdit = new QLineEdit(defaultImageTitle);
imageTitleEdit->selectAll(); imageTitleEdit->selectAll();
imageTitleLabel->setBuddy(imageTitleEdit); imageTitleLabel->setBuddy(imageTitleEdit);
QRegExp regExp("[\\w\\(\\)@#%\\*\\-\\+=\\?<>\\,\\.]+");
QValidator *validator = new QRegExpValidator(regExp, this);
imageTitleEdit->setValidator(validator);
okBtn = new QPushButton(tr("&OK")); okBtn = new QPushButton(tr("&OK"));
okBtn->setDefault(true); okBtn->setDefault(true);

View File

@ -2,7 +2,6 @@
#include <QFile> #include <QFile>
#include <QDir> #include <QDir>
#include <QDebug> #include <QDebug>
#include <QRegularExpression>
#include <QRegExp> #include <QRegExp>
#include <QClipboard> #include <QClipboard>
#include <QApplication> #include <QApplication>
@ -68,13 +67,15 @@ QString VUtils::generateImageFileName(const QString &path, const QString &title,
const QString &format) const QString &format)
{ {
Q_ASSERT(!title.isEmpty()); Q_ASSERT(!title.isEmpty());
QRegularExpression regExp("[^a-zA-Z0-9_]+"); QRegExp regExp("\\W");
QString baseName(title.toLower()); QString baseName(title.toLower());
baseName.replace(regExp, "_"); baseName.remove(regExp);
baseName.prepend('_'); baseName.prepend('_');
// Add current time to make the name be most likely unique // Add current time and random number to make the name be most likely unique
baseName = baseName + '_' + QString::number(QDateTime::currentDateTime().toTime_t()); baseName = baseName + '_' + QString::number(QDateTime::currentDateTime().toTime_t());
baseName = baseName + '_' + QString::number(qrand());
QString imageName = baseName + "." + format.toLower(); QString imageName = baseName + "." + format.toLower();
QString filePath = QDir(path).filePath(imageName); QString filePath = QDir(path).filePath(imageName);
int index = 1; int index = 1;