diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2023-04-18 15:59:02 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2023-04-21 05:59:41 +0000 |
commit | 16d73684f9537db19462f9b937961fb10a5ce6aa (patch) | |
tree | 8feb390dd7751225efca2cd9d0900bd6db4b3828 /src/libs/installer/packagemanagercore_p.cpp | |
parent | 84c6eb2241d1ba31219d38de9ed513b27d3c62bc (diff) |
Unify handling of processes to close for 'updating' components
There was behavioral mismatch of handling processes to stop for updates
between GUI and CLI modes.
For CLI, each command that would make changes to components would
recursively check the installation directory for running processes
early on, and block continuing if such processes were found. In addition
to this, the component scripts may have requested to stop processes
before performing component 'updates' (add/remove/update).
For GUI, only the latter functionality was utilized, so remove
the early checks from the CLI side to make the behavior uniform.
Task-number: QTIFW-2927
Task-number: QTIFW-3009
Change-Id: I028e699c43ef4352593b49ccc8a927644916c41a
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 259aafeb6..7c3679087 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -2501,25 +2501,6 @@ void PackageManagerCorePrivate::installComponent(Component *component, double pr ProgressCoordinator::instance()->emitDetailTextChanged(tr("Done")); } -bool PackageManagerCorePrivate::runningProcessesFound() -{ - //Check if there are processes running in the install - QStringList excludeFiles = m_allowedRunningProcesses; - excludeFiles.append(maintenanceToolName()); - - const QString performModeWarning = m_completeUninstall - ? QLatin1String("Unable to remove components.") - : QLatin1String("Unable to update components."); - - QStringList runningProcesses = runningInstallerProcesses(excludeFiles); - if (!runningProcesses.isEmpty()) { - qCWarning(QInstaller::lcInstallerInstallLog).noquote().nospace() << performModeWarning - << " Please stop these processes: " << runningProcesses << " and try again."; - return true; - } - return false; -} - void PackageManagerCorePrivate::setComponentSelection(const QString &id, Qt::CheckState state) { ComponentModel *model = m_core->isUpdater() ? m_core->updaterComponentModel() : m_core->defaultComponentModel(); @@ -3008,24 +2989,6 @@ void PackageManagerCorePrivate::processFilesForDelayedDeletion() } } -void PackageManagerCorePrivate::findExecutablesRecursive(const QString &path, const QStringList &excludeFiles, QStringList *result) -{ - QDirIterator it(path, QDir::NoDotAndDotDot | QDir::Executable | QDir::Files | QDir::System, QDirIterator::Subdirectories ); - - while (it.hasNext()) - result->append(QDir::toNativeSeparators(it.next().toLower())); - - foreach (const QString &process, excludeFiles) - result->removeAll(QDir::toNativeSeparators(process.toLower())); -} - -QStringList PackageManagerCorePrivate::runningInstallerProcesses(const QStringList &excludeFiles) -{ - QStringList resultFiles; - findExecutablesRecursive(QCoreApplication::applicationDirPath(), excludeFiles, &resultFiles); - return checkRunningProcessesFromList(resultFiles); -} - bool PackageManagerCorePrivate::calculateComponentsAndRun() { bool componentsOk = m_core->recalculateAllComponents(); |