diff --git a/clients/aurorae/src/CMakeLists.txt b/clients/aurorae/src/CMakeLists.txt index eb4adf27ab..a9d8a1fdfb 100644 --- a/clients/aurorae/src/CMakeLists.txt +++ b/clients/aurorae/src/CMakeLists.txt @@ -11,6 +11,7 @@ install(TARGETS kwin3_aurorae DESTINATION ${PLUGIN_INSTALL_DIR} ) ########### install files ############### install( FILES aurorae.desktop DESTINATION ${DATA_INSTALL_DIR}/kwin ) +install( FILES aurorae.knsrc DESTINATION ${CONFIG_INSTALL_DIR} ) ########### config ############### set(kwin_aurorae_config_PART_SRCS config/config.cpp themeconfig.cpp ) @@ -19,6 +20,6 @@ kde4_add_ui_files(kwin_aurorae_config_PART_SRCS config/config.ui) kde4_add_plugin(kwin_aurorae_config ${kwin_aurorae_config_PART_SRCS}) -target_link_libraries(kwin_aurorae_config ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${KDE4_PLASMA_LIBS} ${QT_QTGUI_LIBRARY}) +target_link_libraries(kwin_aurorae_config ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${KDE4_PLASMA_LIBS} ${QT_QTGUI_LIBRARY} ${KDE4_KNEWSTUFF2_LIBS}) install(TARGETS kwin_aurorae_config DESTINATION ${PLUGIN_INSTALL_DIR} ) diff --git a/clients/aurorae/src/aurorae.knsrc b/clients/aurorae/src/aurorae.knsrc new file mode 100644 index 0000000000..dcaaf9afaa --- /dev/null +++ b/clients/aurorae/src/aurorae.knsrc @@ -0,0 +1,4 @@ +[KNewStuff2] +ProvidersUrl=http://download.kde.org/khotnewstuff/aurorae-providers.xml +Uncompress=archive +TargetDir=aurorae/themes diff --git a/clients/aurorae/src/config/config.cpp b/clients/aurorae/src/config/config.cpp index b5cdc1540d..9b26712fe4 100644 --- a/clients/aurorae/src/config/config.cpp +++ b/clients/aurorae/src/config/config.cpp @@ -32,6 +32,7 @@ along with this program. If not, see . #include #include #include +#include #include #include @@ -495,6 +496,7 @@ AuroraeConfig::AuroraeConfig(KConfig* conf, QWidget* parent) Q_UNUSED(conf) m_ui = new AuroraeConfigUI(parent); m_ui->aboutPushButton->setIcon(KIcon("dialog-information")); + m_ui->ghnsButton->setIcon(KIcon("get-hot-new-stuff")); m_themeModel = new ThemeModel(this); m_ui->theme->setModel(m_themeModel); @@ -508,6 +510,7 @@ AuroraeConfig::AuroraeConfig(KConfig* conf, QWidget* parent) connect(m_ui->theme, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed())); connect(m_ui->installNewThemeButton, SIGNAL(clicked(bool)), this, SLOT(slotInstallNewTheme())); connect(m_ui->aboutPushButton, SIGNAL(clicked(bool)), this, SLOT(slotAboutClicked())); + connect(m_ui->ghnsButton, SIGNAL(clicked(bool)), this, SLOT(slotGHNSClicked())); m_ui->show(); } @@ -613,6 +616,21 @@ void AuroraeConfig::slotInstallNewTheme() m_ui->theme->setCurrentIndex(m_themeModel->indexOf(themeName)); } +void AuroraeConfig::slotGHNSClicked() +{ + KNS::Engine engine(NULL); + if (engine.init("aurorae.knsrc")) { + KNS::Entry::List entries = engine.downloadDialogModal(m_ui); + + if (entries.size() > 0) { + int index = m_ui->theme->currentIndex(); + const QString themeName = m_ui->theme->itemData(index, ThemeModel::PackageNameRole).toString(); + m_themeModel->reload(); + m_ui->theme->setCurrentIndex(m_themeModel->indexOf(themeName)); + } + } +} + } // namespace #include "config.moc" diff --git a/clients/aurorae/src/config/config.h b/clients/aurorae/src/config/config.h index e1e3002903..df27ea26ac 100644 --- a/clients/aurorae/src/config/config.h +++ b/clients/aurorae/src/config/config.h @@ -119,6 +119,7 @@ public slots: private slots: void slotAboutClicked(); void slotInstallNewTheme(); + void slotGHNSClicked(); private: QWidget *m_parent; diff --git a/clients/aurorae/src/config/config.ui b/clients/aurorae/src/config/config.ui index a50b020e42..8b19d0e341 100644 --- a/clients/aurorae/src/config/config.ui +++ b/clients/aurorae/src/config/config.ui @@ -59,10 +59,17 @@ + + + + Get New Themes... + + + - Install New Theme + Install New Theme...