diff --git a/kcmkwin/kwincompositing/CMakeLists.txt b/kcmkwin/kwincompositing/CMakeLists.txt index 17fcbb4976..c3cfa68bc3 100644 --- a/kcmkwin/kwincompositing/CMakeLists.txt +++ b/kcmkwin/kwincompositing/CMakeLists.txt @@ -11,12 +11,13 @@ set(kwin_xml ${KDEBASE_WORKSPACE_SOURCE_DIR}/kwin/org.kde.KWin.xml) set_source_files_properties(${kwin_xml} PROPERTIES INCLUDE "interface_util.h") QT4_ADD_DBUS_INTERFACE(kcm_kwincompositing_PART_SRCS ${kwin_xml} kwin_interface) kde4_add_plugin(kcm_kwincompositing ${kcm_kwincompositing_PART_SRCS}) -target_link_libraries(kcm_kwincompositing ${KDE4_KCMUTILS_LIBS} ${KDE4_KDEUI_LIBS} ${X11_LIBRARIES}) +target_link_libraries(kcm_kwincompositing ${KDE4_KNEWSTUFF3_LIBS} ${KDE4_KCMUTILS_LIBS} ${KDE4_KDEUI_LIBS} ${X11_LIBRARIES}) install(TARGETS kcm_kwincompositing DESTINATION ${PLUGIN_INSTALL_DIR} ) ########### install files ############### install( FILES kwincompositing.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) +install( FILES kwineffect.knsrc DESTINATION ${CONFIG_INSTALL_DIR} ) diff --git a/kcmkwin/kwincompositing/kwineffect.knsrc b/kcmkwin/kwincompositing/kwineffect.knsrc new file mode 100644 index 0000000000..e2d65eed5c --- /dev/null +++ b/kcmkwin/kwincompositing/kwineffect.knsrc @@ -0,0 +1,5 @@ +[KNewStuff3] +Categories=KWin Effects +StandardResource=tmp +InstallationCommand=plasmapkg -t kwineffect -i %f +UninstallCommand=plasmapkg -t kwineffect -r %f diff --git a/kcmkwin/kwincompositing/main.cpp b/kcmkwin/kwincompositing/main.cpp index 7a89db49fa..fdf934b273 100644 --- a/kcmkwin/kwincompositing/main.cpp +++ b/kcmkwin/kwincompositing/main.cpp @@ -37,6 +37,7 @@ along with this program. If not, see . #include #include #include +#include #include #include @@ -91,6 +92,7 @@ KWinCompositingConfig::KWinCompositingConfig(QWidget *parent, const QVariantList ui.messageBox->setVisible(false); ui.messageBox->addAction(m_showDetailedErrors); ui.messageBox->setMessageType(KMessageWidget::Warning); + ui.ghns->setIcon(KIcon("get-hot-new-stuff")); // For future use (void) I18N_NOOP("Use GLSL shaders"); @@ -129,6 +131,7 @@ KWinCompositingConfig::KWinCompositingConfig(QWidget *parent, const QVariantList connect(ui.glVSync, SIGNAL(toggled(bool)), this, SLOT(changed())); connect(ui.glShaders, SIGNAL(toggled(bool)), this, SLOT(changed())); connect(m_showDetailedErrors, SIGNAL(triggered(bool)), SLOT(showDetailedEffectLoadingInformation())); + connect(ui.ghns, SIGNAL(clicked(bool)), SLOT(slotGHNS())); // Open the temporary config file // Temporary conf file is used to synchronize effect checkboxes with effect @@ -759,6 +762,17 @@ QString KWinCompositingConfig::quickHelp() const return i18n("

Desktop Effects

"); } +void KWinCompositingConfig::slotGHNS() +{ + QPointer downloadDialog = new KNS3::DownloadDialog("kwineffect.knsrc", this); + if (downloadDialog->exec() == KDialog::Accepted) { + if (!downloadDialog->changedEntries().isEmpty()) { + initEffectSelector(); + } + } + delete downloadDialog; +} + } // namespace #include "main.moc" diff --git a/kcmkwin/kwincompositing/main.h b/kcmkwin/kwincompositing/main.h index 706e6e34d2..35079c39a4 100644 --- a/kcmkwin/kwincompositing/main.h +++ b/kcmkwin/kwincompositing/main.h @@ -82,6 +82,7 @@ private slots: void toggleEffectShortcutChanged(const QKeySequence &seq); void updateStatusUI(bool compositingIsPossible); void showDetailedEffectLoadingInformation(); + void slotGHNS(); private: bool effectEnabled(const QString& effect, const KConfigGroup& cfg) const; diff --git a/kcmkwin/kwincompositing/main.ui b/kcmkwin/kwincompositing/main.ui index cff0f63b16..339efde78e 100644 --- a/kcmkwin/kwincompositing/main.ui +++ b/kcmkwin/kwincompositing/main.ui @@ -6,7 +6,7 @@ 0 0 - 557 + 583 530 @@ -451,17 +451,45 @@ - - - - 0 - 0 - - - - Qt::WheelFocus - - + + + + + + 0 + 0 + + + + Qt::WheelFocus + + + + + + + + + Get New Effect + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + +