From kde-commits Mon Jan 18 21:10:20 2010 From: =?utf-8?q?Aaron=20J=2E=20Seigo?= Date: Mon, 18 Jan 2010 21:10:20 +0000 To: kde-commits Subject: KDE/kdebase/workspace/plasma/desktop/shell/scripting Message-Id: <1263849020.014481.4439.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=126384902715033 SVN commit 1076770 by aseigo: * ensure we have a valid KConfigGroup before using it * allow accessing sub groups * turn setConfigGroup into a property, which is more in line with the js api style M +32 -9 widget.cpp M +5 -1 widget.h --- trunk/KDE/kdebase/workspace/plasma/desktop/shell/scripting/widget.cpp #1076769:1076770 @@ -28,7 +28,7 @@ Widget::Widget(Plasma::Applet *applet, QObject *parent) : QObject(parent), m_applet(applet), - m_configGroup(applet->config()), + m_configGroup(applet ? applet->config() : KConfigGroup()), m_configDirty(false) { @@ -68,37 +68,60 @@ } } -void Widget::setConfigGroup(const QString &config) +void Widget::setCurrentConfigGroup(const QStringList &groupNames) { if (!m_applet) { + m_configGroup = KConfigGroup(); + m_configGroupPath.clear(); return; } m_configGroup = m_applet.data()->config(); - if (!config.isEmpty()) { - m_configGroup = KConfigGroup(&m_configGroup, config); + m_configGroupPath = groupNames; + + foreach (const QString &groupName, groupNames) { + m_configGroup = KConfigGroup(&m_configGroup, groupName); } } +QStringList Widget::currentConfigGroup() const +{ + return m_configGroupPath; +} + QStringList Widget::configKeys() const { - return m_configGroup.keyList(); + if (m_configGroup.isValid()) { + return m_configGroup.keyList(); + } + + return QStringList(); } QStringList Widget::configGroups() const { - return m_configGroup.groupList(); + if (m_configGroup.isValid()) { + return m_configGroup.groupList(); + } + + return QStringList(); } QVariant Widget::readConfig(const QString &key, const QVariant &def) const { - return m_configGroup.readEntry(key, def); + if (m_configGroup.isValid()) { + return m_configGroup.readEntry(key, def); + } else { + return QVariant(); + } } void Widget::writeConfig(const QString &key, const QVariant &value) { - m_configGroup.writeEntry(key, value); - m_configDirty = true; + if (m_configGroup.isValid()) { + m_configGroup.writeEntry(key, value); + m_configDirty = true; + } } Plasma::Applet *Widget::applet() const --- trunk/KDE/kdebase/workspace/plasma/desktop/shell/scripting/widget.h #1076769:1076770 @@ -39,6 +39,7 @@ Q_PROPERTY(QStringList configGroups READ configGroups) Q_PROPERTY(int index WRITE setIndex READ index) Q_PROPERTY(QRectF geometry WRITE setGeometry READ geometry) + Q_PROPERTY(QStringList currentConfigGroup WRITE setCurrentConfigGroup READ currentConfigGroup) public: @@ -59,9 +60,11 @@ QRectF geometry() const; void setGeometry(const QRectF &geometry); + void setCurrentConfigGroup(const QStringList &groupNames); + QStringList currentConfigGroup() const; + public Q_SLOTS: void remove(); - void setConfigGroup(const QString &config); QVariant readConfig(const QString &key, const QVariant &def = QString()) const; void writeConfig(const QString &key, const QVariant &value); void showConfigurationInterface(); @@ -69,6 +72,7 @@ private: QWeakPointer m_applet; KConfigGroup m_configGroup; + QStringList m_configGroupPath; bool m_configDirty; };