by default, applet scripts get the generic config dialog
svn path=/trunk/KDE/kdelibs/; revision=913900
This commit is contained in:
parent
e5d42d17b7
commit
65268e77d4
49
applet.cpp
49
applet.cpp
@ -1394,7 +1394,7 @@ void Applet::showConfigurationInterface()
|
|||||||
}
|
}
|
||||||
|
|
||||||
const QString dialogId = QString("%1settings%2").arg(id()).arg(name());
|
const QString dialogId = QString("%1settings%2").arg(id()).arg(name());
|
||||||
KConfigDialog * dlg = KConfigDialog::exists(dialogId);
|
KConfigDialog *dlg = KConfigDialog::exists(d->configDialogId());
|
||||||
|
|
||||||
if (dlg) {
|
if (dlg) {
|
||||||
KWindowSystem::setOnDesktop(dlg->winId(), KWindowSystem::currentDesktop());
|
KWindowSystem::setOnDesktop(dlg->winId(), KWindowSystem::currentDesktop());
|
||||||
@ -1403,7 +1403,6 @@ void Applet::showConfigurationInterface()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString windowTitle = i18nc("@title:window", "%1 Settings", name());
|
|
||||||
if (d->package && d->configLoader) {
|
if (d->package && d->configLoader) {
|
||||||
QString uiFile = d->package->filePath("mainconfigui");
|
QString uiFile = d->package->filePath("mainconfigui");
|
||||||
if (uiFile.isEmpty()) {
|
if (uiFile.isEmpty()) {
|
||||||
@ -1411,7 +1410,7 @@ void Applet::showConfigurationInterface()
|
|||||||
}
|
}
|
||||||
|
|
||||||
KConfigDialog *dialog = new KConfigDialog(0, dialogId, d->configLoader);
|
KConfigDialog *dialog = new KConfigDialog(0, dialogId, d->configLoader);
|
||||||
dialog->setWindowTitle(windowTitle);
|
dialog->setWindowTitle(d->configWindowTitle());
|
||||||
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
|
|
||||||
QUiLoader loader;
|
QUiLoader loader;
|
||||||
@ -1436,28 +1435,42 @@ void Applet::showConfigurationInterface()
|
|||||||
connect(dialog, SIGNAL(finished()), this, SLOT(configDialogFinished()));
|
connect(dialog, SIGNAL(finished()), this, SLOT(configDialogFinished()));
|
||||||
dialog->show();
|
dialog->show();
|
||||||
} else if (d->script) {
|
} else if (d->script) {
|
||||||
//FIXME: global shorcuts?
|
|
||||||
d->script->showConfigurationInterface();
|
d->script->showConfigurationInterface();
|
||||||
} else {
|
} else {
|
||||||
KConfigSkeleton *nullManager = new KConfigSkeleton(0);
|
d->generateGenericConfigDialog();
|
||||||
KConfigDialog *dialog = new KConfigDialog(0, dialogId, nullManager);
|
|
||||||
dialog->setFaceType(KPageDialog::Auto);
|
|
||||||
dialog->setWindowTitle(windowTitle);
|
|
||||||
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
|
||||||
createConfigurationInterface(dialog);
|
|
||||||
d->addGlobalShortcutsPage(dialog);
|
|
||||||
connect(dialog, SIGNAL(finished()), nullManager, SLOT(deleteLater()));
|
|
||||||
//TODO: Apply button does not correctly work for now, so do not show it
|
|
||||||
dialog->showButton(KDialog::Apply, false);
|
|
||||||
connect(dialog, SIGNAL(applyClicked()), this, SLOT(configDialogFinished()));
|
|
||||||
connect(dialog, SIGNAL(okClicked()), this, SLOT(configDialogFinished()));
|
|
||||||
connect(dialog, SIGNAL(finished()), this, SLOT(configDialogFinished()));
|
|
||||||
dialog->show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
emit releaseVisualFocus();
|
emit releaseVisualFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString AppletPrivate::configDialogId() const
|
||||||
|
{
|
||||||
|
return QString("%1settings%2").arg(appletId).arg(q->name());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString AppletPrivate::configWindowTitle() const
|
||||||
|
{
|
||||||
|
return i18nc("@title:window", "%1 Settings", q->name());
|
||||||
|
}
|
||||||
|
|
||||||
|
void AppletPrivate::generateGenericConfigDialog()
|
||||||
|
{
|
||||||
|
KConfigSkeleton *nullManager = new KConfigSkeleton(0);
|
||||||
|
KConfigDialog *dialog = new KConfigDialog(0, configDialogId(), nullManager);
|
||||||
|
dialog->setFaceType(KPageDialog::Auto);
|
||||||
|
dialog->setWindowTitle(configWindowTitle());
|
||||||
|
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
|
q->createConfigurationInterface(dialog);
|
||||||
|
addGlobalShortcutsPage(dialog);
|
||||||
|
//TODO: Apply button does not correctly work for now, so do not show it
|
||||||
|
dialog->showButton(KDialog::Apply, false);
|
||||||
|
QObject::connect(dialog, SIGNAL(applyClicked()), q, SLOT(configDialogFinished()));
|
||||||
|
QObject::connect(dialog, SIGNAL(okClicked()), q, SLOT(configDialogFinished()));
|
||||||
|
QObject::connect(dialog, SIGNAL(finished()), q, SLOT(configDialogFinished()));
|
||||||
|
QObject::connect(dialog, SIGNAL(finished()), nullManager, SLOT(deleteLater()));
|
||||||
|
dialog->show();
|
||||||
|
}
|
||||||
|
|
||||||
void AppletPrivate::addGlobalShortcutsPage(KConfigDialog *dialog)
|
void AppletPrivate::addGlobalShortcutsPage(KConfigDialog *dialog)
|
||||||
{
|
{
|
||||||
if (isContainment) {
|
if (isContainment) {
|
||||||
|
@ -79,6 +79,9 @@ public:
|
|||||||
void addGlobalShortcutsPage(KConfigDialog *dialog);
|
void addGlobalShortcutsPage(KConfigDialog *dialog);
|
||||||
void clearShortcutEditorPtr();
|
void clearShortcutEditorPtr();
|
||||||
void configDialogFinished();
|
void configDialogFinished();
|
||||||
|
void generateGenericConfigDialog();
|
||||||
|
QString configDialogId() const;
|
||||||
|
QString configWindowTitle() const;
|
||||||
|
|
||||||
static uint s_maxAppletId;
|
static uint s_maxAppletId;
|
||||||
static uint s_maxZValue;
|
static uint s_maxZValue;
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include "applet.h"
|
#include "applet.h"
|
||||||
#include "package.h"
|
#include "package.h"
|
||||||
|
#include "private/applet_p.h"
|
||||||
|
|
||||||
namespace Plasma
|
namespace Plasma
|
||||||
{
|
{
|
||||||
@ -123,6 +124,9 @@ void AppletScript::configNeedsSaving() const
|
|||||||
|
|
||||||
void AppletScript::showConfigurationInterface()
|
void AppletScript::showConfigurationInterface()
|
||||||
{
|
{
|
||||||
|
if (applet()) {
|
||||||
|
applet()->d->generateGenericConfigDialog();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AppletScript::configChanged()
|
void AppletScript::configChanged()
|
||||||
|
Loading…
Reference in New Issue
Block a user