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

List:       kde-commits
Subject:    [plasmate/terietor/kconfigxt] editors/kconfigxt: Make the reader read the defaults and the labels
From:       Giorgos Tsiapaliwkas <terietor () gmail ! com>
Date:       2012-07-27 17:44:14
Message-ID: 20120727174414.5688AA60A6 () git ! kde ! org
[Download RAW message or body]

Git commit b326e6caf146c5cf7e10eadebd85ad473bd600e2 by Giorgos Tsiapaliwkas.
Committed on 27/07/2012 at 19:43.
Pushed by tsiapaliwkas into branch 'terietor/kconfigxt'.

Make the reader read the defaults and the labels

M  +80   -14   editors/kconfigxt/kconfigxtreader.cpp
M  +16   -0    editors/kconfigxt/kconfigxtreader.h

http://commits.kde.org/plasmate/b326e6caf146c5cf7e10eadebd85ad473bd600e2

diff --git a/editors/kconfigxt/kconfigxtreader.cpp b/editors/kconfigxt/kconfigxtreader.cpp
index bde4e4e..c9db1d7 100644
--- a/editors/kconfigxt/kconfigxtreader.cpp
+++ b/editors/kconfigxt/kconfigxtreader.cpp
@@ -54,6 +54,26 @@ QString KConfigXtReaderItem::entryValue() const
     return m_entryValue;
 }
 
+QString KConfigXtReaderItem::descriptionValue() const
+{
+    return m_descriptionValue;
+}
+
+void KConfigXtReaderItem::setDescriptionValue(const QString& descriptionValue)
+{
+    m_descriptionValue = descriptionValue;
+}
+
+KConfigXtReaderItem::DescriptionType KConfigXtReaderItem::descriptionType() const
+{
+    return m_descriptionType;
+}
+
+void KConfigXtReaderItem::setDescriptionType(const KConfigXtReaderItem::DescriptionType descriptionType)
+{
+    m_descriptionType = descriptionType;
+}
+
 void KConfigXtReaderItem::setGroupName(const QString& groupName)
 {
     m_groupName = groupName;
@@ -153,8 +173,8 @@ bool KConfigXtReader::parse()
             //we have a new group
             if(reader.name() == "group") {
                 parseGroup(reader);
+            } else if (reader.name()=="entry"){
             }
-
         }
     }
 
@@ -178,7 +198,7 @@ void KConfigXtReader::parseGroup(QXmlStreamReader& reader)
 {
     //verify if we really has a group
     if(reader.tokenType() != QXmlStreamReader::StartElement &&
-        reader.name() == "person") {
+        reader.name() == "group") {
         //fail!
         return;
     }
@@ -207,14 +227,15 @@ void KConfigXtReader::parseGroup(QXmlStreamReader& reader)
 
 void KConfigXtReader::parseEntry(QXmlStreamReader& reader)
 {
-    // Check if we are inside an element like <entry name="interval" type="Int">
+    // Check if we are inside in an element like <entry name="interval" type="Int">
     if(reader.tokenType() != QXmlStreamReader::StartElement) {
         return;
     }
 
     //check if there is a type attribute
     //if there isn't fail!
-    if (reader.attributes().hasAttribute("type")) {
+    if (reader.attributes().hasAttribute("type") &&
+        reader.attributes().hasAttribute("name")) {
         //now we can take the entry's name and type
         m_data.setEntryName(reader.attributes().value("name").toString());
         m_data.setEntryType(reader.attributes().value("type").toString());
@@ -236,27 +257,72 @@ void KConfigXtReader::parseEntry(QXmlStreamReader& reader)
         reader.name() == "entry")) {
 
         //we have a default element
-        if (reader.name().toString() == "default") {
+        if (reader.name() == "label") {
+            parseDescription(reader);
+            m_data.setDescriptionType(KConfigXtReaderItem::Label);
+        } else if (reader.name() == "tooltip") {
+            parseDescription(reader);
+            m_data.setDescriptionType(KConfigXtReaderItem::ToolTip);
+        } else if (reader.name() == "whatsthis") {
+            parseDescription(reader);
+            m_data.setDescriptionType(KConfigXtReaderItem::WhatsThis);
+        }
 
-            //go ahead one more!
-            reader.readNext();
+        reader.readNext();
+    }
+    //add the data in our datalist
+    m_dataList.append(m_data);
+}
 
-            //we need the text of default
-            QString defaultText = reader.text().toString();
+void KConfigXtReader::parseDescription(QXmlStreamReader& reader)
+{
+    // Check if we are inside in label/tooltip/whatsthis
+    if(reader.tokenType() != QXmlStreamReader::StartElement) {
+        return;
+    }
 
-            //check if we have characters
-            if(reader.tokenType() != QXmlStreamReader::Characters) {
-                return;
-            }
-            m_data.setEntryValue(reader.text().toString());
+    //go ahead!
+    reader.readNext();
+
+    if (reader.isCharacters()) {
+        m_data.setDescriptionValue(reader.text().toString());
+    } else {
+        return;
+    }
+
+    reader.readNext();
 
+    while(!(reader.tokenType() == QXmlStreamReader::EndElement &&
+        reader.name() == "default")) {
+        if (reader.name() == "default") {
+            parseValue(reader);
         }
         reader.readNext();
     }
+
+    //add the data in our datalist
+    m_dataList.append(m_data);
+}
+
+void KConfigXtReader::parseValue(QXmlStreamReader& reader)
+{
+    // Check if we are inside in default
+    if(reader.tokenType() != QXmlStreamReader::StartElement) {
+        return;
+    }
+
+    reader.readNext();
+
+    if (reader.isCharacters()) {
+        m_data.setEntryValue(reader.text().toString());
+    } else {
+        return;
+    }
     //add the data in our datalist
     m_dataList.append(m_data);
 }
 
+
 QList<KConfigXtReaderItem> KConfigXtReader::dataList() const
 {
     return m_dataList;
diff --git a/editors/kconfigxt/kconfigxtreader.h b/editors/kconfigxt/kconfigxtreader.h
index ff49ccc..8e923e9 100644
--- a/editors/kconfigxt/kconfigxtreader.h
+++ b/editors/kconfigxt/kconfigxtreader.h
@@ -33,6 +33,12 @@ class KConfigXtReaderItem
 public:
     KConfigXtReaderItem(QObject* parent = 0);
 
+    enum DescriptionType {
+        Label = 0,
+        ToolTip,
+        WhatsThis
+    };
+
     QString groupName() const;
     void setGroupName(const QString& groupName);
 
@@ -45,6 +51,12 @@ public:
     QString entryValue() const;
     void setEntryValue(const QString& entryValue);
 
+    DescriptionType descriptionType() const;
+    void setDescriptionType(const KConfigXtReaderItem::DescriptionType descriptionType);
+
+    QString descriptionValue() const;
+    void setDescriptionValue(const QString& descriptionValue);
+
     bool operator==(const KConfigXtReaderItem& item);
 
 private:
@@ -52,6 +64,8 @@ private:
     QString m_entryName;
     QString m_entryType;
     QString m_entryValue;
+    QString m_descriptionValue;
+    DescriptionType m_descriptionType;
 };
 
 
@@ -79,6 +93,8 @@ public:
 private:
     void parseGroup(QXmlStreamReader& reader);
     void parseEntry(QXmlStreamReader& reader);
+    void parseDescription(QXmlStreamReader& reader);
+    void parseValue(QXmlStreamReader& reader);
     bool m_parseResult;
 
     QString m_filename;

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

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