summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-10-01 22:13:01 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-10-06 16:08:13 +0200
commit8941d7affa7dddf6780e79172bcb3c0d67fca128 (patch)
tree85e5a1e2fc532e5c3eb5f846c437b364aabc268a /src/libs/installer/packagemanagercore_p.cpp
parent2f65859c6ff0c8407f6405149a332ee524986491 (diff)
Make InstallerCalculator independent on PackageManagerCorePrivate
Inside PackageManagerCorePrivate: - rename resetComponentsToUserCheckedState() into restoreCheckState() - replace setCheckedState() with storeCheckState(), complementary to restoreCheckState() - call storeCheckState() before calculation of components to install / uninstall Change-Id: I8dde3be75a60ebac2fae5fcde1da1b609dd23256 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 1a257ab7e..6e24ce110 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -182,10 +182,8 @@ static void deferredRename(const QString &oldName, const QString &newName, bool
#endif
}
-InstallerCalculator::InstallerCalculator(const QList<Component *> &allComponents,
- PackageManagerCorePrivate *privateManager)
+InstallerCalculator::InstallerCalculator(const QList<Component *> &allComponents)
: m_allComponents(allComponents)
- , m_privateManager(privateManager)
{
}
@@ -245,7 +243,7 @@ void InstallerCalculator::realAppendToInstallComponents(Component *component)
{
if (!component->isInstalled() || component->updateRequested()) {
// remove the checkState method if we don't use selected in scripts
- m_privateManager->setCheckedState(component, Qt::Checked);
+ component->setCheckState(Qt::Checked);
m_orderedComponentsToInstall.append(component);
m_toInstallComponentIds.insert(component->name());
@@ -660,8 +658,7 @@ InstallerCalculator *PackageManagerCorePrivate::installerCalculator() const
if (!m_installerCalculator) {
PackageManagerCorePrivate *const pmcp = const_cast<PackageManagerCorePrivate *> (this);
pmcp->m_installerCalculator = new InstallerCalculator(
- m_core->components(PackageManagerCore::ComponentType::AllNoReplacements),
- pmcp);
+ m_core->components(PackageManagerCore::ComponentType::AllNoReplacements));
}
return m_installerCalculator;
}
@@ -2352,7 +2349,7 @@ bool PackageManagerCorePrivate::appendComponentToUninstall(Component *component)
// remove all already resolved dependees
QSet<Component *> dependees = m_core->dependees(component).toSet().subtract(m_componentsToUninstall);
if (dependees.isEmpty()) {
- setCheckedState(component, Qt::Unchecked);
+ component->setCheckState(Qt::Unchecked);
m_componentsToUninstall.insert(component);
return true;
}
@@ -2361,7 +2358,7 @@ bool PackageManagerCorePrivate::appendComponentToUninstall(Component *component)
foreach (Component *dependee, dependees) {
if (dependee->isInstalled()) {
// keep them as already resolved
- setCheckedState(dependee, Qt::Unchecked);
+ dependee->setCheckState(Qt::Unchecked);
m_componentsToUninstall.insert(dependee);
// gather possible dependees, keep them to resolve it later
dependeesToResolve.unite(m_core->dependees(dependee).toSet());
@@ -2385,7 +2382,7 @@ bool PackageManagerCorePrivate::appendComponentsToUninstall(const QList<Componen
bool allResolved = true;
foreach (Component *component, components) {
if (component->isInstalled()) {
- setCheckedState(component, Qt::Unchecked);
+ component->setCheckState(Qt::Unchecked);
m_componentsToUninstall.insert(component);
allResolved &= appendComponentToUninstall(component);
}
@@ -2445,7 +2442,7 @@ bool PackageManagerCorePrivate::appendComponentsToUninstall(const QList<Componen
return allResolved;
}
-void PackageManagerCorePrivate::resetComponentsToUserCheckedState()
+void PackageManagerCorePrivate::restoreCheckState()
{
if (m_coreCheckedHash.isEmpty())
return;
@@ -2457,10 +2454,14 @@ void PackageManagerCorePrivate::resetComponentsToUserCheckedState()
m_componentsToInstallCalculated = false;
}
-void PackageManagerCorePrivate::setCheckedState(Component *component, Qt::CheckState state)
+void PackageManagerCorePrivate::storeCheckState()
{
- m_coreCheckedHash.insert(component, component->checkState());
- component->setCheckState(state);
+ m_coreCheckedHash.clear();
+
+ const QList<Component *> components =
+ m_core->components(PackageManagerCore::ComponentType::AllNoReplacements);
+ foreach (Component *component, components)
+ m_coreCheckedHash.insert(component, component->checkState());
}
void PackageManagerCorePrivate::connectOperationCallMethodRequest(Operation *const operation)