diff options
author | kh1 <karsten.heimrich@digia.com> | 2013-01-31 15:58:22 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@digia.com> | 2013-02-01 12:13:52 +0100 |
commit | 4c1ea166e615b7988542b0a3145243a366fa2d3c (patch) | |
tree | 8172280d6340097c893586d1e98ed8037bd10afe /src/sdk | |
parent | a68325be2c9bddedf7415a865e911f0dfdef766c (diff) |
Prevent too long install path.
Task-number: QTIFW-201
Change-Id: Ie3c493149971ee3b00b3390ce7e301df4662650a
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/sdk')
-rw-r--r-- | src/sdk/installerbasecommons.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/sdk/installerbasecommons.cpp b/src/sdk/installerbasecommons.cpp index 75bcd2eed..e9bdc46e1 100644 --- a/src/sdk/installerbasecommons.cpp +++ b/src/sdk/installerbasecommons.cpp @@ -55,6 +55,10 @@ #include <QStackedWidget> #include <QVBoxLayout> +#ifdef Q_OS_WIN +#include <qt_windows.h> +#endif + using namespace QInstaller; @@ -382,6 +386,12 @@ QString TargetDirectoryPageImpl::targetDirWarning() const QString dir = QDir::toNativeSeparators(targetDir()); #ifdef Q_OS_WIN + // folder length (set by user) + maintenance tool name length (no extension) + extra padding + if ((dir.length() + packageManagerCore()->settings().uninstallerName().length() + 20) >= MAX_PATH) { + return TargetDirectoryPageImpl::tr("The path you have entered is too long, please make sure to " + "specify a valid path."); + } + if (dir.count() >= 3 && dir.indexOf(QRegExp(QLatin1String("[a-zA-Z]:"))) == 0 && dir.at(2) != QLatin1Char('\\')) { return TargetDirectoryPageImpl::tr("The path you have entered is not valid, please make sure to " |