diff options
author | kh1 <karsten.heimrich@digia.com> | 2012-11-08 16:49:59 +0100 |
---|---|---|
committer | Niels Weber <niels.weber@digia.com> | 2013-01-11 13:39:09 +0100 |
commit | ecb9a04b912bc0f02485d97578718f730a227fbf (patch) | |
tree | f8de8ea1739dff9706432ee8d77acf44860c8c59 | |
parent | fbb5912de2151187c4277bdc88dff07b5d4a13ea (diff) |
Add some more ambiguous chars and option to allow space.
Task-number: QTIFW-148
Task-number: QTIFW-161
Task-number: QTIFW-199
(cherry picked from commit 274c93b4a05967563f0b201ff0b6faf9b6292701)
Conflicts:
doc/installerfw.qdoc
src/libs/installer/constants.h
Change-Id: I65f9d0ae07fdd929a8c2fd71a94a441fe404b457
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
-rw-r--r-- | doc/installerfw.qdoc | 3 | ||||
-rw-r--r-- | src/libs/installer/constants.h | 2 | ||||
-rw-r--r-- | src/libs/installer/settings.cpp | 7 | ||||
-rw-r--r-- | src/libs/installer/settings.h | 1 | ||||
-rw-r--r-- | src/sdk/installerbasecommons.cpp | 10 |
5 files changed, 18 insertions, 5 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc index 00fa04c37..6947301d1 100644 --- a/doc/installerfw.qdoc +++ b/doc/installerfw.qdoc @@ -217,6 +217,9 @@ \o AllowNonAsciiCharacters \o Set to \c true if the installation path can contain non-ASCII characters. + \row + \o AllowSpaceInPath + \o Set to \c true if the installation path can contain space characters. \endtable */ diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h index ea512ed76..5a2df1d19 100644 --- a/src/libs/installer/constants.h +++ b/src/libs/installer/constants.h @@ -76,7 +76,7 @@ static const QLatin1String scRemoveTargetDir("RemoveTargetDir"); static const QLatin1String scRunProgramDescription("RunProgramDescription"); static const QLatin1String scTargetConfigurationFile("TargetConfigurationFile"); static const QLatin1String scAllowNonAsciiCharacters("AllowNonAsciiCharacters"); - +static const QLatin1String scAllowSpaceInPath("AllowSpaceInPath"); } #endif // CONSTANTS_H diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index 181152646..5fc914261 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -338,6 +338,11 @@ QString Settings::configurationFileName() const return d->m_data.value(scTargetConfigurationFile).toString(); } +bool Settings::allowSpaceInPath() const +{ + return d->m_data.value(scAllowSpaceInPath, false).toBool(); +} + QStringList Settings::certificateFiles() const { return d->m_data.value(scSigningCertificate).toStringList(); @@ -345,7 +350,7 @@ QStringList Settings::certificateFiles() const bool Settings::allowNonAsciiCharacters() const { - return d->m_data.value(scAllowNonAsciiCharacters).toBool(); + return d->m_data.value(scAllowNonAsciiCharacters, false).toBool(); } bool Settings::dependsOnLocalInstallerBinary() const diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index ad7ad9e1f..d0df79ac9 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -112,6 +112,7 @@ public: void setUserRepositories(const QSet<Repository> &repositories); void addUserRepositories(const QSet<Repository> &repositories); + bool allowSpaceInPath() const; QStringList certificateFiles() const; bool allowNonAsciiCharacters() const; diff --git a/src/sdk/installerbasecommons.cpp b/src/sdk/installerbasecommons.cpp index a6298c836..0c5932554 100644 --- a/src/sdk/installerbasecommons.cpp +++ b/src/sdk/installerbasecommons.cpp @@ -357,14 +357,18 @@ QString TargetDirectoryPageImpl::targetDirWarning() const } QString dir = targetDir(); + QString ambiguousChars = QLatin1String("[<>|?*!@#$%^&:,; ]"); + if (packageManagerCore()->settings().allowSpaceInPath()) + ambiguousChars.remove(QLatin1Char(' ')); + #ifdef Q_OS_WIN // remove e.g. "c:" dir = dir.mid(2); #endif // check if there are not allowed characters in the target path - if (dir.contains(QRegExp(QLatin1String("[!@#$%^&*: ,;]")))) { - return TargetDirectoryPageImpl::tr("The installation path must not contain !@#$%^&*:,; or spaces, " - "please specify a valid folder."); + if (dir.contains(QRegExp(ambiguousChars))) { + return TargetDirectoryPageImpl::tr("The installation path must not contain %1, " + "please specify a valid folder.").arg(ambiguousChars); } return QString(); |