From 8081e2eb5343bbbd864f27df34dd976958a5b143 Mon Sep 17 00:00:00 2001 From: Antonis Tsiapaliokas Date: Wed, 7 Aug 2013 10:09:56 +0300 Subject: [PATCH] Add buttons to the effect config dialog --- kcmkwin/kwincompositing/effectconfig.cpp | 28 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/kcmkwin/kwincompositing/effectconfig.cpp b/kcmkwin/kwincompositing/effectconfig.cpp index 59ae6b9940..d9f2858e13 100644 --- a/kcmkwin/kwincompositing/effectconfig.cpp +++ b/kcmkwin/kwincompositing/effectconfig.cpp @@ -20,6 +20,9 @@ #include "effectconfig.h" +#include +#include +#include #include #include @@ -27,8 +30,6 @@ #include #include - -#include EffectConfig::EffectConfig(QObject *parent) : QObject(parent) { @@ -49,15 +50,34 @@ bool EffectConfig::effectUiConfigExists(const QString &effectName) { } void EffectConfig::openConfig(const QString &effectName) { + //setup the UI + QDialog dialog; + QVBoxLayout layout; + KCModuleProxy *proxy; + QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + + buttons->setCenterButtons(true); + + //Here we connect our buttons with the dialog + connect(buttons, SIGNAL(accepted()), &dialog, SLOT(accept())); + connect(buttons, SIGNAL(rejected()), &dialog, SLOT(reject())); KService::List offers = KServiceTypeTrader::self()->query("KWin/Effect"); for(KService::Ptr service : offers) { KPluginInfo plugin(service); if (plugin.name() == effectName) { QString effectConfig = serviceName(plugin.name() + "_config"); - KCModuleProxy *proxy = new KCModuleProxy(effectConfig); + proxy = new KCModuleProxy(effectConfig); - proxy->show(); + //setup the Layout of our UI + layout.addWidget(proxy); + layout.addWidget(buttons); + dialog.setLayout(&layout); + + //open the dialog + if (dialog.exec() == QDialog::Accepted) { + proxy->save(); + } } } }