summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2017-05-29 11:12:53 +0300
committerKatja Marttila <katja.marttila@qt.io>2017-06-01 06:30:55 +0000
commit13bbcdda36522ff10a650092fb5682a79edd27e6 (patch)
treef36bb72bc17f4bf5ef889c25141da2f349741eda /src/libs/installer/packagemanagercore_p.cpp
parentd7d0974f9cdc2359b6b3ca0e359f2fe05ad437c4 (diff)
Fix maintenance tool update with silentUpdate
Maintenance tool is an essential update. Essential updates should be installed before non-essential updates. This change forces essential updates to be installed first. The behavior is same as when updating with visible UI. Task-number: QTIFW-976 Change-Id: I360145821c4e2d1f3384efca641208acb9338d5e Reviewed-by: Antti Kokko <antti.kokko@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 28d64d09c..fb802ef8b 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -162,8 +162,16 @@ static void deferredRename(const QString &oldName, const QString &newName, bool
batch << " WScript.Sleep(1000)\n";
batch << "wend\n";
batch << QString::fromLatin1("fso.MoveFile \"%1\", file\n").arg(arguments[1]);
- if (restart)
- batch << QString::fromLatin1("tmp.exec \"%1 --updater\"\n").arg(arguments[2]);
+ if (restart) {
+ //Restart with same command line arguments as first executable
+ QStringList commandLineArguments = QCoreApplication::arguments();
+ batch << QString::fromLatin1("tmp.exec \"%1 --updater").arg(arguments[2]);
+ //Skip the first argument as that is executable itself
+ for (int i = 1; i < commandLineArguments.count(); i++) {
+ batch << QString::fromLatin1(" %1").arg(commandLineArguments.at(i));
+ }
+ batch << QString::fromLatin1("\"\n");
+ }
batch << "fso.DeleteFile(WScript.ScriptFullName)\n";
}