From 1f16d680ce03e01a80915d64d5cc20694b1300f7 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Fri, 29 Apr 2022 14:22:15 +0300 Subject: Do not recalculate local installed components No need to recalculate local installed components if no changes has been made. This makes the component selection quicker if there are lots of components to be installed. Local components are already calculated and listed in LocalPackageHub. Using this class directly instead of calculating own local component hash table. This changes the localInstalledPackages() from QHash to QMap, which is not as optimized for searching components, but overall performance is still now way better. Task-number: QTIFW-2522 Change-Id: I8c16060f4b4014f740be0c7c43ece5e659d92987 Reviewed-by: Arttu Tarkiainen --- src/libs/installer/packagemanagercore.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/libs/installer/packagemanagercore.h') diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index bebfc191d..50cdac486 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -127,7 +127,7 @@ public: bool directoryWritable(const QString &path) const; bool fetchLocalPackagesTree(); - LocalPackagesHash localInstalledPackages(); + LocalPackagesMap localInstalledPackages(); void networkSettingsChanged(); PackageManagerProxyFactory *proxyFactory() const; @@ -411,15 +411,15 @@ private: struct Data { Package *package; QHash *components; - const LocalPackagesHash *installedPackages; + const LocalPackagesMap *installedPackages; QHash replacementToExchangeables; }; bool updateComponentData(struct Data &data, QInstaller::Component *component); void storeReplacedComponents(QHash &components, const struct Data &data, QMap *const treeNameComponents = nullptr); - bool fetchAllPackages(const PackagesList &remotePackages, const LocalPackagesHash &localPackages); - bool fetchUpdaterPackages(const PackagesList &remotePackages, const LocalPackagesHash &localPackages); + bool fetchAllPackages(const PackagesList &remotePackages, const LocalPackagesMap &localPackages); + bool fetchUpdaterPackages(const PackagesList &remotePackages, const LocalPackagesMap &localPackages); void createAutoTreeNames(QHash &components, const QMap &treeNameComponents); @@ -430,7 +430,7 @@ private: ComponentModel *componentModel(PackageManagerCore *core, const QString &objectName) const; QList componentsMarkedForInstallation() const; - bool fetchPackagesTree(const PackagesList &packages, const LocalPackagesHash installedPackages); + bool fetchPackagesTree(const PackagesList &packages, const LocalPackagesMap installedPackages); bool componentUninstallableFromCommandLine(const QString &componentName); bool checkComponentsForInstallation(const QStringList &components, QString &errorMessage); -- cgit v1.2.3