summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@digia.com>2013-07-29 12:50:51 +0200
committerTim Jenssen <tim.jenssen@digia.com>2013-07-29 13:22:29 +0200
commite778ad5ccf76a830390db3d658abd1aeb75fafd3 (patch)
treecb804650c7e66d65e5c7811b745a71527efdede1 /src
parentac16f9c34572eb46de8dc5f46778494378a4b992 (diff)
Fix broken model/component update due to wrong connected signals.
- After 3eb3be the updater and the default model got the same components set once setRootComponents was emitted. The results was that both models would show all fetched components, not differentiating between updates and normal components. Change-Id: I053fdea73d42ca5ac1c2c26ebb063d9e7e415a13 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/packagemanagercore.cpp31
-rw-r--r--src/libs/installer/packagemanagercore.h5
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp2
3 files changed, 15 insertions, 23 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 99e3087e7..92f8ea26c 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -192,12 +192,6 @@
*/
/*!
- \qmlsignal QInstaller::setRootComponents(list<Component> components)
-
- Triggered with the list of new root components (for example after an online update).
-*/
-
-/*!
\qmlsignal QInstaller::startAllComponentsReset()
Triggered when the list of components starts to get updated.
@@ -206,9 +200,9 @@
*/
/*!
- \qmlsignal QInstaller::finishAllComponentsReset()
+ \qmlsignal QInstaller::finishAllComponentsReset(list<Component> rootComponents)
- Triggered when the list of components has been updated.
+ Triggered when the list of new root components has been updated.
\sa startAllComponentsReset
*/
@@ -220,9 +214,9 @@
*/
/*!
- \qmlsignal QInstaller::finishUpdaterComponentsReset()
+ \qmlsignal QInstaller::finishUpdaterComponentsReset(list<Component> componentsWithUpdates)
- Triggered when components have been updated during a remote update.
+ Triggered when the list of available remote updates has been updated.
*/
/*!
@@ -814,9 +808,8 @@ bool PackageManagerCore::fetchLocalPackagesTree()
updateDisplayVersions(scDisplayVersion);
- emit finishAllComponentsReset();
+ emit finishAllComponentsReset(d->m_rootComponents);
d->setStatus(Success);
- emit setRootComponents(d->m_rootComponents);
return true;
}
@@ -1315,6 +1308,8 @@ ComponentModel *PackageManagerCore::defaultComponentModel() const
d->m_defaultModel = componentModel(const_cast<PackageManagerCore*> (this),
QLatin1String("AllComponentsModel"));
}
+ connect(this, SIGNAL(finishAllComponentsReset(QList<QInstaller::Component*>)), d->m_defaultModel,
+ SLOT(setRootComponents(QList<QInstaller::Component*>)));
return d->m_defaultModel;
}
@@ -1325,6 +1320,8 @@ ComponentModel *PackageManagerCore::updaterComponentModel() const
d->m_updaterModel = componentModel(const_cast<PackageManagerCore*> (this),
QLatin1String("UpdaterComponentsModel"));
}
+ connect(this, SIGNAL(finishUpdaterComponentsReset(QList<QInstaller::Component*>)), d->m_updaterModel,
+ SLOT(setRootComponents(QList<QInstaller::Component*>)));
return d->m_updaterModel;
}
@@ -2133,8 +2130,7 @@ bool PackageManagerCore::fetchAllPackages(const PackagesList &remotes, const Loc
if (!d->buildComponentTree(components, true))
return false;
- emit finishAllComponentsReset();
- emit setRootComponents(d->m_rootComponents);
+ emit finishAllComponentsReset(d->m_rootComponents);
return true;
}
@@ -2275,7 +2271,7 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
}
} catch (const Error &error) {
d->clearUpdaterComponentLists();
- emit finishUpdaterComponentsReset();
+ emit finishUpdaterComponentsReset(QList<QInstaller::Component*>());
d->setStatus(Failure, error.message());
// TODO: make sure we remove all message boxes inside the library at some point.
@@ -2284,8 +2280,7 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
return false;
}
- emit finishUpdaterComponentsReset();
- emit setRootComponents(d->m_updaterComponents);
+ emit finishUpdaterComponentsReset(d->m_updaterComponents);
return true;
}
@@ -2349,8 +2344,6 @@ ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, con
ComponentModel::tr("New Version"));
model->setHeaderData(ComponentModelHelper::UncompressedSizeColumn, Qt::Horizontal,
ComponentModel::tr("Size"));
- connect(this, SIGNAL(setRootComponents(QList<QInstaller::Component*>)), model,
- SLOT(setRootComponents(QList<QInstaller::Component*>)));
connect(model, SIGNAL(checkStateChanged(QInstaller::ComponentModel::ModelState)), this,
SLOT(componentsToInstallNeedsRecalculation()));
diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h
index 712a5174c..218d9f6a9 100644
--- a/src/libs/installer/packagemanagercore.h
+++ b/src/libs/installer/packagemanagercore.h
@@ -271,13 +271,12 @@ Q_SIGNALS:
void finishButtonClicked();
void metaJobInfoMessage(const QString &message);
- void setRootComponents(const QList<QInstaller::Component*> &components);
void startAllComponentsReset();
- void finishAllComponentsReset();
+ void finishAllComponentsReset(const QList<QInstaller::Component*> &rootComponents);
void startUpdaterComponentsReset();
- void finishUpdaterComponentsReset();
+ void finishUpdaterComponentsReset(const QList<QInstaller::Component*> &componentsWithUpdates);
void installationStarted();
void installationInterrupted();
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 4f11412d0..40ddf1c3a 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -380,7 +380,7 @@ bool PackageManagerCorePrivate::buildComponentTree(QHash<QString, Component*> &c
std::sort(m_rootComponents.begin(), m_rootComponents.end(), Component::SortingPriorityGreaterThan());
} catch (const Error &error) {
clearAllComponentLists();
- emit m_core->finishAllComponentsReset();
+ emit m_core->finishAllComponentsReset(QList<QInstaller::Component*>());
setStatus(PackageManagerCore::Failure, error.message());
// TODO: make sure we remove all message boxes inside the library at some point.