summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
diff options
context:
space:
mode:
authorNiels Weber <niels.weber@digia.com>2014-07-10 15:50:10 +0200
committerKai Koehne <kai.koehne@digia.com>2014-07-17 14:27:41 +0200
commitc8d048a41357db2842285a8e5b89d7873e126d88 (patch)
tree94974b8119988ac8c2ff65f2fade84676ec338d9 /src/libs/installer
parent0b9cd7ff849769ad543e1fdc5a1d4514c099b009 (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.cpp15
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();