diff options
| author | Nicolas Fella <[email protected]> | 2023-10-19 00:58:15 +0200 |
|---|---|---|
| committer | Nicolas Fella <[email protected]> | 2023-10-24 20:30:21 +0000 |
| commit | ef59e42c40df5e873a1a1b6c2173d5b55641a783 (patch) | |
| tree | cb55fb0880ffa4f914748bcd178887012ba34d27 /src | |
| parent | 8ef3c7bc42bad4397bed0711f4317ebad9c0f8f1 (diff) | |
Process correct model when applying service menu changes
The listview's model is a filter model, we must iterate through the source,
otherwise we get incorrect results
BUG: 475547
Diffstat (limited to 'src')
| -rw-r--r-- | src/settings/contextmenu/contextmenusettingspage.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/settings/contextmenu/contextmenusettingspage.cpp b/src/settings/contextmenu/contextmenusettingspage.cpp index 23ddfba31..c81078095 100644 --- a/src/settings/contextmenu/contextmenusettingspage.cpp +++ b/src/settings/contextmenu/contextmenusettingspage.cpp @@ -176,15 +176,14 @@ void ContextMenuSettingsPage::applySettings() QStringList enabledPlugins; - const QAbstractItemModel *model = m_listView->model(); - for (int i = 0; i < model->rowCount(); ++i) { - const QModelIndex index = model->index(i, 0); - const QString service = model->data(index, ServiceModel::DesktopEntryNameRole).toString(); - const bool checked = model->data(index, Qt::CheckStateRole).toBool(); + for (int i = 0; i < m_serviceModel->rowCount(); ++i) { + const QModelIndex index = m_serviceModel->index(i, 0); + const QString service = m_serviceModel->data(index, ServiceModel::DesktopEntryNameRole).toString(); + const bool checked = m_serviceModel->data(index, Qt::CheckStateRole).toBool(); if (service.startsWith(VersionControlServicePrefix)) { if (checked) { - enabledPlugins.append(model->data(index, Qt::DisplayRole).toString()); + enabledPlugins.append(m_serviceModel->data(index, Qt::DisplayRole).toString()); } } else if (service == QLatin1String(DeleteService)) { KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig(QStringLiteral("kdeglobals"), KConfig::NoGlobals); @@ -229,14 +228,13 @@ void ContextMenuSettingsPage::applySettings() void ContextMenuSettingsPage::restoreDefaults() { - QAbstractItemModel *model = m_listView->model(); - for (int i = 0; i < model->rowCount(); ++i) { - const QModelIndex index = model->index(i, 0); - const QString service = model->data(index, ServiceModel::DesktopEntryNameRole).toString(); + for (int i = 0; i < m_serviceModel->rowCount(); ++i) { + const QModelIndex index = m_serviceModel->index(i, 0); + const QString service = m_serviceModel->data(index, ServiceModel::DesktopEntryNameRole).toString(); const bool checked = !service.startsWith(VersionControlServicePrefix) && service != QLatin1String(DeleteService) && service != QLatin1String(CopyToMoveToService); - model->setData(index, checked, Qt::CheckStateRole); + m_serviceModel->setData(index, checked, Qt::CheckStateRole); } } |
