[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