summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller/packagemanagercore.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2011-08-22 17:54:26 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-08-23 10:57:45 +0200
commita222f8f9c7fccadd4c017b5c5be5639bb288adbb (patch)
tree3dc8bc50af1c2cf2f219a2375ee09bf8c2264b75 /installerbuilder/libinstaller/packagemanagercore.cpp
parent68a367649a25b38cf69ec9dcacddc0e921c5b4f2 (diff)
Make sure we only calculate the components on actual change.
Change-Id: I5967f2fa2cba3e54519a4b8b5155b570d34d7a22 Reviewed-on: http://codereview.qt.nokia.com/3333 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Niels Weber <niels.2.weber@nokia.com> Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder/libinstaller/packagemanagercore.cpp')
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.cpp32
1 files changed, 20 insertions, 12 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp
index dd04beec8..ca1b1cd67 100644
--- a/installerbuilder/libinstaller/packagemanagercore.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore.cpp
@@ -293,6 +293,11 @@ void PackageManagerCore::cancelMetaInfoJob()
d->m_repoMetaInfoJob->cancel();
}
+void PackageManagerCore::componentsToInstallNeedsRecalculation()
+{
+ d->m_componentsToInstallCalculated = false;
+}
+
void PackageManagerCore::autoAcceptMessageBoxes()
{
MessageBoxHandler::instance()->setDefaultAction(MessageBoxHandler::Accept);
@@ -875,20 +880,23 @@ Component* PackageManagerCore::componentByName(const QString &name) const
*/
bool PackageManagerCore::calculateComponentsToInstall() const
{
- d->clearComponentsToInstall();
- QList<Component*> components;
- if (runMode() == UpdaterMode) {
- foreach(Component *component, updaterComponents()) {
- if (component->updateRequested())
- components.append(component);
- }
- } else if (runMode() == AllMode) {
- foreach(Component *component, availableComponents()) {
- if (component->installationRequested())
- components.append(component);
+ if (!d->m_componentsToInstallCalculated) {
+ d->clearComponentsToInstall();
+ QList<Component*> components;
+ if (runMode() == UpdaterMode) {
+ foreach (Component *component, updaterComponents()) {
+ if (component->updateRequested())
+ components.append(component);
+ }
+ } else if (runMode() == AllMode) {
+ foreach (Component *component, availableComponents()) {
+ if (component->installationRequested())
+ components.append(component);
+ }
}
+ d->m_componentsToInstallCalculated = d->appendComponentsToInstall(components);
}
- return d->appendComponentsToInstall(components);
+ return d->m_componentsToInstallCalculated;
}
/*!