diff options
author | Katja Marttila <katja.marttila@qt.io> | 2022-11-28 13:30:21 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2022-11-30 15:03:46 +0200 |
commit | 51e02b08abb44131929dba2d86860d10ca17cf41 (patch) | |
tree | c74ea513a2385f430c8a2491fcdebf08e39c2937 /src/libs/installer/packagemanagercore.cpp | |
parent | f02c3a2f2a6a5db84a947ca6d4f4ab5f5d867d41 (diff) |
Cleanup installer calculator classes
As there are several optimizations done, the single click of component
in component selection tree is not slow anymore. Cleaning the code so
it is easier to maintain.
Basically this revers commit a28cf55b5a5007c0dd952b3012c076d9da329f0f
but as there are bug fixes made after that so pure revert could not
be done.
Task-number: QTIFW-2885
Change-Id: Id486d5dc68c42c31b4848cd19a1761bcfe242db6
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 66 |
1 files changed, 2 insertions, 64 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 0788387a2..c866f1112 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -611,7 +611,7 @@ void PackageManagerCore::componentsToInstallNeedsRecalculation() QList<Component*> selectedComponentsToInstall = componentsMarkedForInstallation(); d->m_componentsToInstallCalculated = - d->installerCalculator()->appendComponentsToInstall(selectedComponentsToInstall, true); + d->installerCalculator()->appendComponentsToInstall(selectedComponentsToInstall); d->calculateUninstallComponents(); d->updateComponentCheckedState(); @@ -622,66 +622,6 @@ void PackageManagerCore::componentsToInstallNeedsRecalculation() } /*! - Calculates components to install based on user selection. \a indexes - contains list of model indexes user has selected for install, dependencies - and autodependencies are resolved later. - */ -void PackageManagerCore::calculateUserSelectedComponentsToInstall(const QList<QModelIndex> &indexes) -{ - QList<Component*> componentsToInstall; - QList<Component*> componentsToUnInstall; - ComponentModel *model = isUpdater() ? updaterComponentModel() : defaultComponentModel(); - for (QModelIndex index : indexes) { - Component *installComponent = model->componentFromIndex(index); - // 1. Component is selected for install - if (installComponent->isSelected() && !installComponent->isInstalled()) { - componentsToInstall.append(installComponent); - // Check if component has replacements that needs to be removed - const QList<Component*> replacedComponents = d->replacedComponentsByName(installComponent->name()); - for (Component *replacedComponent : replacedComponents) { - componentsToUnInstall.append(replacedComponent); - d->uninstallerCalculator()->insertUninstallReason(replacedComponent, - UninstallerCalculator::UninstallReasonType::Replaced); - } - } - // 2. Component is reselected for install (tapping checkbox off/on) - else if (installComponent->isSelected() && installComponent->isInstalled() - && !d->installerCalculator()->orderedComponentsToInstall().contains(installComponent)) { - componentsToInstall.append(installComponent); - } - // 3. Component is selected for uninstall - else if (!isUpdater() && !installComponent->isSelected() && installComponent->isInstalled()) { - componentsToUnInstall.append(installComponent); - } - // 4. Component is reselected for uninstall (tapping checkbox on/off) - else if (!installComponent->isSelected() - && d->installerCalculator()->orderedComponentsToInstall().contains(installComponent)) { - componentsToUnInstall.append(installComponent); - // Check if component has replacements that needs to be readded - componentsToInstall.append(d->replacedComponentsByName(installComponent->name())); - } - } - - d->installerCalculator()->removeComponentsFromInstall(componentsToUnInstall); - d->m_componentsToInstallCalculated - = d->installerCalculator()->appendComponentsToInstall(componentsToInstall, false); - if (!isUpdater()) { - d->uninstallerCalculator()->appendComponentsToUninstall(componentsToUnInstall, false); - } - d->uninstallerCalculator()->removeComponentsFromUnInstall(componentsToInstall); - if (componentsToUnInstall.isEmpty() && !componentsToInstall.isEmpty()) { - // There are no new components to be uninstalled but there - // are new components to be installed which might have virtual - // dependences to components which are already selected for uninstall. - // We need to remove those components from uninstall. - d->uninstallerCalculator()->appendVirtualComponentsToUninstall(true); - } - - d->updateComponentCheckedState(); -} - - -/*! Forces a recalculation of components to install. \sa {installer::clearComponentsToInstallCalculated}{installer.clearComponentsToInstallCalculated} */ @@ -4576,10 +4516,8 @@ ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, con ComponentModel::tr("Release Date")); model->setHeaderData(ComponentModelHelper::UncompressedSizeColumn, Qt::Horizontal, ComponentModel::tr("Size")); - connect(model, &ComponentModel::modelCheckStateChanged, + connect(model, &ComponentModel::checkStateChanged, this, &PackageManagerCore::componentsToInstallNeedsRecalculation); - connect(model, &ComponentModel::componentsCheckStateChanged, - this, &PackageManagerCore::calculateUserSelectedComponentsToInstall); return model; } |