summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-04-06 13:59:11 +0300
committerKatja Marttila <katja.marttila@qt.io>2020-04-09 09:50:03 +0300
commit90523cb44306949893b5ae0f3706185c7d364c6f (patch)
tree285ffe703d752caf91d108980b6c004ced07ffe0 /src/libs/installer/packagemanagercore_p.cpp
parenta58ec153e6e2f91e7cfa89c15ecd222c29bf3fb9 (diff)
Fix shortcut creation when installing from CLI
Change default button from Retry to Cancel if operation fails to avoid infinite loop when running from command line interface. Added also unit tests for shortcut operation. Task-number: QTIFW-1666 QTIFW-1710 Change-Id: I171b6aecd9886acce0051b7082842f8f76b22046 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index dba96c222..e408db40e 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -593,6 +593,20 @@ void PackageManagerCorePrivate::initialize(const QHash<QString, QString> &params
}
processFilesForDelayedDeletion();
+ // Set shortcut path for command line interface, in GUI version
+ // we have a separate page where the whole path is set.
+#ifdef Q_OS_WIN
+ if (m_core->isCommandLineInstance()) {
+ QString startMenuPath;
+ if (params.value(QLatin1String("AllUsers")) == scTrue)
+ startMenuPath = m_data.value(scAllUsersStartMenuProgramsPath).toString();
+ else
+ startMenuPath = m_data.value(scUserStartMenuProgramsPath).toString();
+ QString startMenuDir = m_core->value(scStartMenuDir, m_core->value(QLatin1String("ProductName")));
+ m_data.setValue(scStartMenuDir, startMenuPath + QDir::separator() + startMenuDir);
+ }
+#endif
+
disconnect(this, &PackageManagerCorePrivate::installationStarted,
ProgressCoordinator::instance(), &ProgressCoordinator::reset);
connect(this, &PackageManagerCorePrivate::installationStarted,
@@ -1901,10 +1915,10 @@ void PackageManagerCorePrivate::installComponent(Component *component, double pr
.join(QLatin1String("; ")), operation->errorString());
const QMessageBox::StandardButton button =
MessageBoxHandler::warning(MessageBoxHandler::currentBestSuitParent(),
- QLatin1String("installationErrorWithRetry"), tr("Installer Error"),
+ QLatin1String("installationErrorWithCancel"), tr("Installer Error"),
tr("Error during installation process (%1):\n%2").arg(component->name(),
operation->errorString()),
- QMessageBox::Retry | QMessageBox::Ignore | QMessageBox::Cancel, QMessageBox::Retry);
+ QMessageBox::Retry | QMessageBox::Ignore | QMessageBox::Cancel, QMessageBox::Cancel);
if (button == QMessageBox::Retry)
ok = performOperationThreaded(operation);