Add buttons to the effect config dialog

This commit is contained in:
Antonis Tsiapaliokas 2013-08-07 10:09:56 +03:00 committed by Martin Gräßlin
parent fc662d175d
commit 8081e2eb53

View file

@ -20,6 +20,9 @@
#include "effectconfig.h" #include "effectconfig.h"
#include <QDialog>
#include <QDialogButtonBox>
#include <QVBoxLayout>
#include <QStandardPaths> #include <QStandardPaths>
#include <QString> #include <QString>
@ -27,8 +30,6 @@
#include <KPluginInfo> #include <KPluginInfo>
#include <KServiceTypeTrader> #include <KServiceTypeTrader>
#include <QDebug>
EffectConfig::EffectConfig(QObject *parent) EffectConfig::EffectConfig(QObject *parent)
: QObject(parent) : QObject(parent)
{ {
@ -49,15 +50,34 @@ bool EffectConfig::effectUiConfigExists(const QString &effectName) {
} }
void EffectConfig::openConfig(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"); KService::List offers = KServiceTypeTrader::self()->query("KWin/Effect");
for(KService::Ptr service : offers) { for(KService::Ptr service : offers) {
KPluginInfo plugin(service); KPluginInfo plugin(service);
if (plugin.name() == effectName) { if (plugin.name() == effectName) {
QString effectConfig = serviceName(plugin.name() + "_config"); 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();
}
} }
} }
} }