summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/installer/componentmodel.cpp6
-rw-r--r--src/libs/installer/componentmodel.h2
-rw-r--r--src/libs/installer/packagemanagercore.cpp11
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp1
-rw-r--r--tests/auto/installer/brokeninstaller/tst_brokeninstaller.cpp6
-rw-r--r--tests/auto/installer/componentmodel/tst_componentmodel.cpp24
6 files changed, 27 insertions, 23 deletions
diff --git a/src/libs/installer/componentmodel.cpp b/src/libs/installer/componentmodel.cpp
index dcecf74ce..88e502164 100644
--- a/src/libs/installer/componentmodel.cpp
+++ b/src/libs/installer/componentmodel.cpp
@@ -386,13 +386,13 @@ Component *ComponentModel::componentFromIndex(const QModelIndex &index) const
// -- public slots
/*!
- Sets \a rootComponents to be the list of currently shown components.
+ Resets model and sets \a rootComponents to be the list of currently shown components.
The model is repopulated and the individual component's checked state is used to show the check
mark in front of the visual component representation. The modelAboutToBeReset() and
modelReset() signals are emitted.
*/
-void ComponentModel::setRootComponents(QList<QInstaller::Component*> rootComponents)
+void ComponentModel::reset(QList<Component *> rootComponents)
{
beginResetModel();
@@ -464,7 +464,7 @@ void ComponentModel::setCheckedState(QInstaller::ComponentModel::ModelStateFlag
void ComponentModel::onVirtualStateChanged()
{
// If the virtual state of a component changes, force a reset of the component model.
- setRootComponents(m_core->components(PackageManagerCore::ComponentType::Root));
+ reset(m_core->components(PackageManagerCore::ComponentType::Root));
}
diff --git a/src/libs/installer/componentmodel.h b/src/libs/installer/componentmodel.h
index e5cd2c57d..829c95111 100644
--- a/src/libs/installer/componentmodel.h
+++ b/src/libs/installer/componentmodel.h
@@ -86,7 +86,7 @@ public:
Component* componentFromIndex(const QModelIndex &index) const;
public Q_SLOTS:
- void setRootComponents(QList<QInstaller::Component*> rootComponents);
+ void reset(QList<Component *> rootComponents = QList<Component *>());
void setCheckedState(QInstaller::ComponentModel::ModelStateFlag state);
Q_SIGNALS:
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 5ebe44d6c..010a68d21 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -2250,8 +2250,11 @@ ComponentModel *PackageManagerCore::defaultComponentModel() const
d->m_defaultModel = componentModel(const_cast<PackageManagerCore*> (this),
QLatin1String("AllComponentsModel"));
}
+ connect(this, &PackageManagerCore::startAllComponentsReset, [&] {
+ d->m_defaultModel->reset();
+ });
connect(this, &PackageManagerCore::finishAllComponentsReset, d->m_defaultModel,
- &ComponentModel::setRootComponents);
+ &ComponentModel::reset);
return d->m_defaultModel;
}
@@ -2265,8 +2268,11 @@ ComponentModel *PackageManagerCore::updaterComponentModel() const
d->m_updaterModel = componentModel(const_cast<PackageManagerCore*> (this),
QLatin1String("UpdaterComponentsModel"));
}
+ connect(this, &PackageManagerCore::startUpdaterComponentsReset, [&] {
+ d->m_updaterModel->reset();
+ });
connect(this, &PackageManagerCore::finishUpdaterComponentsReset, d->m_updaterModel,
- &ComponentModel::setRootComponents);
+ &ComponentModel::reset);
return d->m_updaterModel;
}
@@ -4118,7 +4124,6 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
}
} catch (const Error &error) {
d->clearUpdaterComponentLists();
- emit finishUpdaterComponentsReset(QList<QInstaller::Component*>());
d->setStatus(Failure, error.message());
// TODO: make sure we remove all message boxes inside the library at some point.
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 948093ad7..38909b4ea 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -474,7 +474,6 @@ bool PackageManagerCorePrivate::buildComponentTree(QHash<QString, Component*> &c
} catch (const Error &error) {
clearAllComponentLists();
- 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.
diff --git a/tests/auto/installer/brokeninstaller/tst_brokeninstaller.cpp b/tests/auto/installer/brokeninstaller/tst_brokeninstaller.cpp
index 95f4ac77d..43bd15288 100644
--- a/tests/auto/installer/brokeninstaller/tst_brokeninstaller.cpp
+++ b/tests/auto/installer/brokeninstaller/tst_brokeninstaller.cpp
@@ -100,7 +100,7 @@ private slots:
QList<Component*> rootComponents = loadComponents(core);
ComponentModel *model = new ComponentModel(1, &core);
- model->setRootComponents(rootComponents);
+ model->reset(rootComponents);
// all names should be resolvable
QStringList all;
all << m_checkedComponentsWithBrokenScript << m_uncheckedComponentsWithBrokenScript << m_partiallyCheckedComponentsWithBrokenScript;
@@ -127,7 +127,7 @@ private slots:
QTest::ignoreMessage(QtWarningMsg, re);
invalidScriptComponent->loadComponentScript(":///data/broken_script.qs");
- model->setRootComponents(components);
+ model->reset(components);
testModelState(model, m_checkedComponentsWithBrokenScript, m_partiallyCheckedComponentsWithBrokenScript, m_uncheckedComponentsWithBrokenScript);
}
@@ -146,7 +146,7 @@ private slots:
componentDependingOnMissingDependency->addDependency("componentmissingdependency");
core.componentsToInstallNeedsRecalculation();
- model->setRootComponents(components);
+ model->reset(components);
testModelState(model, m_checkedComponentsWithMissingDependency, m_partiallyCheckedComponentsWithBrokenScript, m_uncheckedComponentsWithMissingDependency);
}
diff --git a/tests/auto/installer/componentmodel/tst_componentmodel.cpp b/tests/auto/installer/componentmodel/tst_componentmodel.cpp
index 3aef34fe4..463485d96 100644
--- a/tests/auto/installer/componentmodel/tst_componentmodel.cpp
+++ b/tests/auto/installer/componentmodel/tst_componentmodel.cpp
@@ -92,7 +92,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
// all names should be resolvable, virtual components are not indexed if they are not visible
QStringList all;
@@ -116,7 +116,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
// all names should be resolvable, including virtual components
QStringList all;
@@ -141,7 +141,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
QCOMPARE(model.core(), &m_core);
@@ -162,7 +162,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
QCOMPARE(model.checkedState(), ComponentModel::DefaultChecked);
@@ -184,7 +184,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
QCOMPARE(model.checkedState(), ComponentModel::DefaultChecked);
@@ -204,7 +204,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
QCOMPARE(model.checkedState(), ComponentModel::DefaultChecked);
@@ -226,7 +226,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
// select all possible components.
@@ -262,7 +262,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
// select all possible components.
@@ -300,7 +300,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
// select all possible components.
@@ -335,7 +335,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
// select all possible components.
@@ -379,7 +379,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
const QModelIndex root = model.indexFromComponentName(vendorProduct);
QCOMPARE(model.data(root, Qt::DisplayRole).toString(), expectedName);
@@ -397,7 +397,7 @@ private slots:
// setup the model with 1 column
ComponentModel model(1, &m_core);
- model.setRootComponents(rootComponents);
+ model.reset(rootComponents);
testDefaultInheritedModelBehavior(&model, 1);
model.setCheckedState(ComponentModel::DefaultChecked);