From: Peter Penz Date: Thu, 26 Feb 2009 19:58:22 +0000 (+0000) Subject: remember which service menus should be shown in the context menu X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/541136328431b2cd60c11e3b222fe5e584b00f5a remember which service menus should be shown in the context menu CCMAIL: faure@kde.org svn path=/trunk/KDE/kdebase/apps/; revision=932504 --- diff --git a/src/settings/servicessettingspage.cpp b/src/settings/servicessettingspage.cpp index 1fd66b645..a6d090529 100644 --- a/src/settings/servicessettingspage.cpp +++ b/src/settings/servicessettingspage.cpp @@ -19,6 +19,8 @@ #include "servicessettingspage.h" +#include +#include #include #include #include @@ -45,6 +47,8 @@ ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : m_servicesList = new QListWidget(this); m_servicesList->setSortingEnabled(true); m_servicesList->setSelectionMode(QAbstractItemView::NoSelection); + connect(m_servicesList, SIGNAL(itemClicked(QListWidgetItem*)), + this, SIGNAL(changed())); topLayout->addWidget(label); topLayout->addWidget(m_servicesList); @@ -56,6 +60,16 @@ ServicesSettingsPage::~ServicesSettingsPage() void ServicesSettingsPage::applySettings() { + KConfig config("kservicemenurc", KConfig::NoGlobals); + KConfigGroup hiddenGroup = config.group("Show"); + + const int count = m_servicesList->count(); + for (int i = 0; i < count; ++i) { + QListWidgetItem* item = m_servicesList->item(i); + const bool show = (item->checkState() == Qt::Checked); + const QString service = item->data(Qt::UserRole).toString(); + hiddenGroup.writeEntry(service, show); + } } void ServicesSettingsPage::restoreDefaults() @@ -78,6 +92,9 @@ bool ServicesSettingsPage::event(QEvent* event) void ServicesSettingsPage::loadServices() { + const KConfig config("kservicemenurc", KConfig::NoGlobals); + const KConfigGroup hiddenGroup = config.group("Show"); + const KService::List entries = KServiceTypeTrader::self()->query("KonqPopupMenu/Plugin"); foreach (const KSharedPtr& service, entries) { const QString file = KStandardDirs::locate("services", service->entryPath()); @@ -89,7 +106,10 @@ void ServicesSettingsPage::loadServices() QListWidgetItem* item = new QListWidgetItem(KIcon(action.icon()), action.text(), m_servicesList); - item->setCheckState(Qt::Checked); + const QString service = action.name(); + item->setData(Qt::UserRole, service); + const bool show = hiddenGroup.readEntry(service, true); + item->setCheckState(show ? Qt::Checked : Qt::Unchecked); } } }