diff options
author | Niels Weber <niels.weber@digia.com> | 2014-07-10 15:50:10 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2014-07-17 14:27:41 +0200 |
commit | c8d048a41357db2842285a8e5b89d7873e126d88 (patch) | |
tree | 94974b8119988ac8c2ff65f2fade84676ec338d9 /src/libs/installer | |
parent | 0b9cd7ff849769ad543e1fdc5a1d4514c099b009 (diff) |
Don't allow \ in installpath on Unix
Also now only show the actual matching character,
not the whole RegExp.
Task-number: QTIFW-512
Change-Id: I179b994b5ee5d7f19b9724d13b2c192a6af01448
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs/installer')
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 065e2e1a9..9b2868e9d 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -1807,16 +1807,21 @@ QString TargetDirectoryPage::targetDirWarning() const // remove e.g. "c:" dir = dir.mid(2); -#endif - QString ambiguousChars = QLatin1String("[~<>|?*!@#$%^&:,; ]"); + QString ambiguousChars = QStringLiteral("[~<>|?*!@#$%^&:,; ]"); +#else // Q_OS_WIN + QString ambiguousChars = QStringLiteral("[~<>|?*!@#$%^&:,; \\\\]"); +#endif // Q_OS_WIN + if (packageManagerCore()->settings().allowSpaceInPath()) ambiguousChars.remove(QLatin1Char(' ')); + static QRegularExpression ambCharRegEx(ambiguousChars); // check if there are not allowed characters in the target path - if (dir.contains(QRegExp(ambiguousChars))) { - return tr("The installation path must not contain %1, " - "please specify a valid folder.").arg(ambiguousChars); + QRegularExpressionMatch match = ambCharRegEx.match(dir); + if (match.hasMatch()) { + return tr("The installation path must not contain '%1', " + "please specify a valid folder.").arg(match.captured(0)); } dir = targetDir(); |