summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNiels Weber <niels.weber@digia.com>2013-02-08 15:29:12 +0100
committerNiels Weber <niels.weber@digia.com>2013-02-08 17:30:52 +0100
commitf7bba447dd3b4b1598cb82e0aaf79f28e6cb16d2 (patch)
tree0b994c03a2fcd7b2767e291fe0d019238ed2d34a /src
parent7845a26f6ff58936af272ee3885603e951e17eee (diff)
allow providing a vendor to InstallIconsOperation
If given, it replaces the original vendor with the given one. Change-Id: I2a62ed9616c8f4a9bd2b39652d7f3fef1eb5dc7a Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/installiconsoperation.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/libs/installer/installiconsoperation.cpp b/src/libs/installer/installiconsoperation.cpp
index 3e7c282e0..60687cac1 100644
--- a/src/libs/installer/installiconsoperation.cpp
+++ b/src/libs/installer/installiconsoperation.cpp
@@ -135,14 +135,16 @@ void InstallIconsOperation::backup()
bool InstallIconsOperation::performOperation()
{
const QStringList args = arguments();
- if (args.count() != 1) {
+ if ((args.count() != 1) && (args.count() != 2)) {
setError(InvalidArguments);
- setErrorString(tr("Invalid arguments in %0: %1 arguments given, 1 expected.").arg(name()).arg(args
- .count()));
+ setErrorString(tr("Invalid arguments in %0: %1 arguments given, 1 or 2 expected (Sourcepath, [Vendorprefix]).")
+ .arg(name()).arg(args.count()));
return false;
}
- const QString source = args.first();
+ const QString source = args.at(0);
+ const QString vendor = args.value(1);
+
if (source.isEmpty()) {
setError(InvalidArguments);
setErrorString(QObject::tr("Invalid Argument: source folder must not be empty."));
@@ -169,12 +171,27 @@ bool InstallIconsOperation::performOperation()
return true;
const QString source = it.next();
- const QString target = targetDir.absoluteFilePath(sourceDir.relativeFilePath(source));
+ QString target = targetDir.absoluteFilePath(sourceDir.relativeFilePath(source));
emit outputTextChanged(target);
const QFileInfo fi = it.fileInfo();
if (!fi.isDir()) {
+
+ // exchange prefix with vendor if vendor is set
+ if (!vendor.isEmpty()) {
+ // path of the target file
+ const QString targetPath = QFileInfo(target).absolutePath() + QLatin1String("/");
+
+ // filename with replaced vendor string
+ const QString targetFile = vendor
+ + fi.baseName().section(QLatin1Char('-'), 1, -1, QString::SectionIncludeLeadingSep)
+ + fi.completeSuffix();
+
+ // target is the file with full path and replaced vendor string
+ target = targetPath + targetFile;
+ }
+
if (QFile(target).exists()) {
// first backup...
const QString backup = generateTemporaryFileName(target + QLatin1String("XXXXXX"));