diff --git a/shell/scripting/applet.h b/shell/scripting/applet.h --- a/shell/scripting/applet.h +++ b/shell/scripting/applet.h @@ -21,6 +21,7 @@ #define APPLET #include +#include #include #include @@ -66,10 +67,10 @@ void reloadConfigIfNeeded(); public Q_SLOTS: - virtual QVariant readConfig(const QString &key, const QVariant &def = QString()) const; - virtual void writeConfig(const QString &key, const QVariant &value); - virtual QVariant readGlobalConfig(const QString &key, const QVariant &def = QString()) const; - virtual void writeGlobalConfig(const QString &key, const QVariant &value); + virtual QVariant readConfig(const QString &key, const QJSValue &def = QString()) const; + virtual void writeConfig(const QString &key, const QJSValue &value); + virtual QVariant readGlobalConfig(const QString &key, const QJSValue &def = QString()) const; + virtual void writeGlobalConfig(const QString &key, const QJSValue &value); virtual void reloadConfig(); private: diff --git a/shell/scripting/applet.cpp b/shell/scripting/applet.cpp --- a/shell/scripting/applet.cpp +++ b/shell/scripting/applet.cpp @@ -102,30 +102,30 @@ return QStringList(); } -QVariant Applet::readConfig(const QString &key, const QVariant &def) const +QVariant Applet::readConfig(const QString &key, const QJSValue &def) const { if (d->configGroup.isValid()) { - return d->configGroup.readEntry(key, def); + return d->configGroup.readEntry(key, def.toVariant()); } else { return QVariant(); } } -void Applet::writeConfig(const QString &key, const QVariant &value) +void Applet::writeConfig(const QString &key, const QJSValue &value) { if (d->configGroup.isValid()) { if (d->inWallpaperConfig) { //hacky, but only way to make the wallpaper react immediately QObject *wallpaperGraphicsObject = applet()->property("wallpaperGraphicsObject").value(); if (wallpaperGraphicsObject) { KDeclarative::ConfigPropertyMap *config = static_cast(wallpaperGraphicsObject->property("configuration").value()); - config->setProperty(key.toLatin1(), value); + config->setProperty(key.toLatin1(), value.toVariant()); } } else if (applet()->configScheme()) { //check if it can be written in the applets' configScheme KConfigSkeletonItem *item = applet()->configScheme()->findItemByName(key); if (item) { - item->setProperty(value); + item->setProperty(value.toVariant()); applet()->configScheme()->blockSignals(true); applet()->configScheme()->save(); //why read? read will update KConfigSkeletonItem::mLoadedValue, @@ -136,7 +136,7 @@ } } - d->configGroup.writeEntry(key, value); + d->configGroup.writeEntry(key, value.toVariant()); d->configDirty = true; } } @@ -181,19 +181,19 @@ return QStringList(); } -QVariant Applet::readGlobalConfig(const QString &key, const QVariant &def) const +QVariant Applet::readGlobalConfig(const QString &key, const QJSValue &def) const { if (d->globalConfigGroup.isValid()) { - return d->globalConfigGroup.readEntry(key, def); + return d->globalConfigGroup.readEntry(key, def.toVariant()); } else { return QVariant(); } } -void Applet::writeGlobalConfig(const QString &key, const QVariant &value) +void Applet::writeGlobalConfig(const QString &key, const QJSValue &value) { if (d->globalConfigGroup.isValid()) { - d->globalConfigGroup.writeEntry(key, value); + d->globalConfigGroup.writeEntry(key, value.toVariant()); d->configDirty = true; } } diff --git a/shell/scripting/configgroup.h b/shell/scripting/configgroup.h --- a/shell/scripting/configgroup.h +++ b/shell/scripting/configgroup.h @@ -22,6 +22,7 @@ #include #include +#include #include @@ -52,7 +53,7 @@ QStringList groupList() const; Q_INVOKABLE QVariant readEntry(const QString &key); - Q_INVOKABLE bool writeEntry(const QString &key, const QVariant &value); + Q_INVOKABLE bool writeEntry(const QString &key, const QJSValue &value); Q_INVOKABLE void deleteEntry(const QString& key); Q_SIGNALS: diff --git a/shell/scripting/configgroup.cpp b/shell/scripting/configgroup.cpp --- a/shell/scripting/configgroup.cpp +++ b/shell/scripting/configgroup.cpp @@ -181,13 +181,13 @@ // Bound methods and slots -bool ConfigGroup::writeEntry(const QString& key, const QVariant& value) +bool ConfigGroup::writeEntry(const QString& key, const QJSValue& value) { if (!d->configGroup) { return false; } - d->configGroup->writeEntry(key, value); + d->configGroup->writeEntry(key, value.toVariant()); d->synchTimer->start(); return true; } diff --git a/shell/scripting/scriptengine_v1.cpp b/shell/scripting/scriptengine_v1.cpp --- a/shell/scripting/scriptengine_v1.cpp +++ b/shell/scripting/scriptengine_v1.cpp @@ -323,7 +323,7 @@ // Read other properties and set the configuration SCRIPT_OBJECT_FOREACH(key, value, config) { - object->writeConfig(key, value.toVariant()); + object->writeConfig(key, value); }; }; }