[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.4/kdebase/workspace/plasma/desktop/shell/scripting
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-01-18 21:12:59
Message-ID: 1263849179.136294.4790.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1076772 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  


--- branches/KDE/4.4/kdebase/workspace/plasma/desktop/shell/scripting/widget.cpp #1076771:1076772
@@ -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
--- branches/KDE/4.4/kdebase/workspace/plasma/desktop/shell/scripting/widget.h #1076771:1076772
@@ -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<Plasma::Applet> m_applet;
     KConfigGroup m_configGroup;
+    QStringList m_configGroupPath;
     bool m_configDirty;
 };
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic