diff --git a/kcmkwin/kwinscripts/CMakeLists.txt b/kcmkwin/kwinscripts/CMakeLists.txt index 4ad6a9ce07..eba62148e4 100644 --- a/kcmkwin/kwinscripts/CMakeLists.txt +++ b/kcmkwin/kwinscripts/CMakeLists.txt @@ -12,6 +12,7 @@ kde4_add_plugin(kcm_kwin_scripts ${kcm_SRCS}) target_link_libraries(kcm_kwin_scripts ${KDE4_KDEUI_LIBRARY} + ${KDE4_KNEWSTUFF3_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KCMUTILS_LIBS} ${KDE4_PLASMA_LIBS} @@ -19,3 +20,4 @@ target_link_libraries(kcm_kwin_scripts install(TARGETS kcm_kwin_scripts DESTINATION ${PLUGIN_INSTALL_DIR}) install(FILES kwinscripts.desktop DESTINATION ${SERVICES_INSTALL_DIR}) +install(FILES kwinscripts.knsrc DESTINATION ${CONFIG_INSTALL_DIR}) diff --git a/kcmkwin/kwinscripts/kwinscripts.knsrc b/kcmkwin/kwinscripts/kwinscripts.knsrc new file mode 100644 index 0000000000..a223955ef4 --- /dev/null +++ b/kcmkwin/kwinscripts/kwinscripts.knsrc @@ -0,0 +1,5 @@ +[KNewStuff3] +Categories=KWin Scripts +StandardResource=tmp +InstallationCommand=plasmapkg -t kwinscript -i %f +UninstallCommand=plasmapkg -t kwinscript -r %f diff --git a/kcmkwin/kwinscripts/module.cpp b/kcmkwin/kwinscripts/module.cpp index 585f8d57ac..3f4f87b7e4 100644 --- a/kcmkwin/kwinscripts/module.cpp +++ b/kcmkwin/kwinscripts/module.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include "version.h" @@ -51,9 +52,14 @@ Module::Module(QWidget *parent, const QVariantList &args) : setAboutData(about); ui->setupUi(this); + ui->ghnsButton->setIcon(KIcon("get-hot-new-stuff")); + + // TODO: remove once the category has been created. + ui->ghnsButton->setVisible(false); connect(ui->scriptSelector, SIGNAL(changed(bool)), this, SLOT(changed())); connect(ui->importScriptButton, SIGNAL(clicked()), SLOT(importScript())); + connect(ui->ghnsButton, SIGNAL(clicked(bool)), SLOT(slotGHNSClicked())); // We have no help and defaults and apply buttons. setButtons(buttons() ^ KCModule::Help ^ KCModule::Default ^ KCModule::Apply); @@ -110,3 +116,14 @@ void Module::save() emit changed(false); } + +void Module::slotGHNSClicked() +{ + QPointer downloadDialog = new KNS3::DownloadDialog("kwinscripts.knsrc", this); + if (downloadDialog->exec() == KDialog::Accepted) { + if (!downloadDialog->changedEntries().isEmpty()) { + updateListViewContents(); + } + } + delete downloadDialog; +} diff --git a/kcmkwin/kwinscripts/module.h b/kcmkwin/kwinscripts/module.h index e3ee5bd4fb..f2e195cd98 100644 --- a/kcmkwin/kwinscripts/module.h +++ b/kcmkwin/kwinscripts/module.h @@ -53,6 +53,7 @@ protected slots: * Called when the import script button is clicked. */ void importScript(); + void slotGHNSClicked(); private: /** diff --git a/kcmkwin/kwinscripts/module.ui b/kcmkwin/kwinscripts/module.ui index e83cc699cd..1dc0592ed4 100644 --- a/kcmkwin/kwinscripts/module.ui +++ b/kcmkwin/kwinscripts/module.ui @@ -38,7 +38,14 @@ - Import KWin script + Import KWin script... + + + + + + + Get New Script... @@ -62,6 +69,11 @@ + + KPushButton + QPushButton +
kpushbutton.h
+
KPluginSelector QWidget