From 90523cb44306949893b5ae0f3706185c7d364c6f Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Mon, 6 Apr 2020 13:59:11 +0300 Subject: 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 --- src/libs/installer/packagemanagercore_p.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/libs/installer/packagemanagercore_p.cpp') 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 ¶ms } 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); -- cgit v1.2.3