┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/servicessettingspage.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-02-26 19:58:22 +0000
committerPeter Penz <[email protected]>2009-02-26 19:58:22 +0000
commit541136328431b2cd60c11e3b222fe5e584b00f5a (patch)
treec4da3d49ad16f81e01fd6c3dd024335d3115533a /src/settings/servicessettingspage.cpp
parent26acdb7c77d0a54ae14f139652fe87d5a92d8589 (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.cpp22
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);
}
}
}