From 232e7eaad76cc027341a6d927ebb905312c4ff4c Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Mon, 9 Nov 2009 18:13:36 +0000 Subject: move the "Download New Services..." entry from the Settings menu to the service configuration dialog svn path=/trunk/KDE/kdebase/apps/; revision=1046788 --- src/settings/servicessettingspage.cpp | 16 ++++++++++++++++ src/settings/servicessettingspage.h | 9 +++++++++ 2 files changed, 25 insertions(+) (limited to 'src/settings') diff --git a/src/settings/servicessettingspage.cpp b/src/settings/servicessettingspage.cpp index a58df2096..9088366a8 100644 --- a/src/settings/servicessettingspage.cpp +++ b/src/settings/servicessettingspage.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -31,6 +32,7 @@ #include #include #include +#include #include ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : @@ -43,6 +45,7 @@ ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : QLabel* label = new QLabel(i18nc("@label:textbox", "Configure which services should " "be shown in the context menu."), this); + label->setWordWrap(true); m_servicesList = new QListWidget(this); m_servicesList->setSortingEnabled(true); @@ -50,8 +53,13 @@ ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : connect(m_servicesList, SIGNAL(itemClicked(QListWidgetItem*)), this, SIGNAL(changed())); + QPushButton* downloadButton = new QPushButton(i18nc("@action:button", "Download New Services...")); + downloadButton->setIcon(KIcon("get-hot-new-stuff")); + connect(downloadButton, SIGNAL(clicked()), this, SLOT(downloadNewServices())); + topLayout->addWidget(label); topLayout->addWidget(m_servicesList); + topLayout->addWidget(downloadButton); } ServicesSettingsPage::~ServicesSettingsPage() @@ -121,6 +129,14 @@ void ServicesSettingsPage::loadServices() } } +void ServicesSettingsPage::downloadNewServices() +{ + KNS::Engine khns(this); + khns.init("servicemenu.knsrc"); + khns.downloadDialogModal(this); + loadServices(); +} + bool ServicesSettingsPage::isInServicesList(const QString& service) const { const int count = m_servicesList->count(); diff --git a/src/settings/servicessettingspage.h b/src/settings/servicessettingspage.h index 2e8a6b9e0..359cc77ad 100644 --- a/src/settings/servicessettingspage.h +++ b/src/settings/servicessettingspage.h @@ -44,7 +44,16 @@ protected: virtual bool event(QEvent* event); private slots: + /** + * Loads locally installed services. + */ void loadServices(); + + /** + * Opens KHotNewStuff to download new services. + */ + void downloadNewServices(); + bool isInServicesList(const QString& service) const; private: -- cgit v1.3