diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-04-06 13:59:11 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-04-09 09:50:03 +0300 |
commit | 90523cb44306949893b5ae0f3706185c7d364c6f (patch) | |
tree | 285ffe703d752caf91d108980b6c004ced07ffe0 /src/libs/installer/packagemanagercore_p.cpp | |
parent | a58ec153e6e2f91e7cfa89c15ecd222c29bf3fb9 (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.cpp | 18 |
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> ¶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); |