┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/contextmenu/contextmenusettingspage.cpp
diff options
context:
space:
mode:
authorNicolas Fella <[email protected]>2023-10-19 00:58:15 +0200
committerNicolas Fella <[email protected]>2023-10-24 20:30:21 +0000
commitef59e42c40df5e873a1a1b6c2173d5b55641a783 (patch)
treecb55fb0880ffa4f914748bcd178887012ba34d27 /src/settings/contextmenu/contextmenusettingspage.cpp
parent8ef3c7bc42bad4397bed0711f4317ebad9c0f8f1 (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/settings/contextmenu/contextmenusettingspage.cpp')
-rw-r--r--src/settings/contextmenu/contextmenusettingspage.cpp20
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);
}
}