summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2012-11-08 16:49:59 +0100
committerNiels Weber <niels.weber@digia.com>2013-01-11 13:39:09 +0100
commitecb9a04b912bc0f02485d97578718f730a227fbf (patch)
treef8de8ea1739dff9706432ee8d77acf44860c8c59
parentfbb5912de2151187c4277bdc88dff07b5d4a13ea (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.qdoc3
-rw-r--r--src/libs/installer/constants.h2
-rw-r--r--src/libs/installer/settings.cpp7
-rw-r--r--src/libs/installer/settings.h1
-rw-r--r--src/sdk/installerbasecommons.cpp10
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();