Commit 8e2f0a1d authored by Alexander Lohnau's avatar Alexander Lohnau 💬 Committed by Elvis Angelaccio

Clear services model after KNS entries changed

We can not know if a service got deleted, so we clear
the model and reload the services. The issue that the entries are
not uninstalled has already been solved, this is just a patch to
fix the state of the UI.

CCBUG: 420312
parent a1d5d75b
......@@ -92,3 +92,10 @@ int ServiceModel::rowCount(const QModelIndex& parent) const
return m_items.count();
}
void ServiceModel::clear()
{
beginRemoveRows(QModelIndex(), 0, m_items.count());
m_items.clear();
endRemoveRows();
}
......@@ -38,6 +38,7 @@ public:
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
void clear();
private:
struct ServiceItem
......
......@@ -73,7 +73,13 @@ ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) :
auto *downloadButton = new KNS3::Button(i18nc("@action:button", "Download New Services..."),
QStringLiteral("servicemenu.knsrc"),
this);
connect(downloadButton, &KNS3::Button::dialogFinished, this, &ServicesSettingsPage::loadServices);
connect(downloadButton, &KNS3::Button::dialogFinished, this, [this](const KNS3::Entry::List &changedEntries) {
if (!changedEntries.isEmpty()) {
m_serviceModel->clear();
loadServices();
}
});
#endif
topLayout->addWidget(label);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment