diff options
| author | Peter Penz <[email protected]> | 2009-02-26 19:58:22 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2009-02-26 19:58:22 +0000 |
| commit | 541136328431b2cd60c11e3b222fe5e584b00f5a (patch) | |
| tree | c4da3d49ad16f81e01fd6c3dd024335d3115533a /src/settings/servicessettingspage.cpp | |
| parent | 26acdb7c77d0a54ae14f139652fe87d5a92d8589 (diff) | |
remember which service menus should be shown in the context menu
CCMAIL: [email protected]
svn path=/trunk/KDE/kdebase/apps/; revision=932504
Diffstat (limited to 'src/settings/servicessettingspage.cpp')
| -rw-r--r-- | src/settings/servicessettingspage.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
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 <kconfig.h> +#include <kconfiggroup.h> #include <kdesktopfileactions.h> #include <kicon.h> #include <klocale.h> @@ -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<KService>& 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); } } } |
