X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Fxmlreader.cpp;h=2140ca7f6dc1d553dc269952cc3d21e29c67773a;hp=393cd417fc2dd1240dc9cf1e86192a344ec1dd8c;hb=74a1541fc05869163401c4885da4445c8940c822;hpb=8d318c3fa452a8f0186425dcd85e217a4a1f3e07 diff --git a/Client/xmlreader.cpp b/Client/xmlreader.cpp index 393cd41..2140ca7 100644 --- a/Client/xmlreader.cpp +++ b/Client/xmlreader.cpp @@ -16,7 +16,7 @@ */ XmlReader::XmlReader() { - xmlShow(); + myCategoryList = new CategoryList(); } /** @@ -26,20 +26,31 @@ XmlReader::~XmlReader() { category = ""; unit = ""; - description = ""; position = ""; user = ""; value = ""; + delete myCategoryList; } /** - *This function is used to parsing xml file. + *This function is used to parse top 10 results of a certain category. */ -void XmlReader::xmlRead(QNetworkReply *device) +void XmlReader::xmlReadTop10Results(QNetworkReply *device) { - qDebug() << "_xmlRead"; + qDebug() << "_xmlReadTop10Results"; - xmlreader.addData(device->readAll()); + int i = 0; + int receivedFlag = 0; + + xmlreader.clear(); + QByteArray array = device->readAll(); + qDebug() << "array: " << array; + xmlreader.addData(array); + //xmlreader.addData(device->readAll()); + + if(!(myCategoryList->top10List.isEmpty())) { + myCategoryList->top10List.clear(); + } //Go trough the xml document while(!xmlreader.atEnd()) @@ -51,56 +62,89 @@ void XmlReader::xmlRead(QNetworkReply *device) { if(xmlreader.name() == "results") { - qDebug() << xmlreader.name(); - attr = xmlreader.attributes(); - - category = attr.value("category").toString(); - unit = attr.value("unit").toString(); - description = attr.value("description").toString(); - - top10List << category; - qDebug() << top10List << unit << description; + //qDebug() << xmlreader.name(); } - if(xmlreader.name() == "result") { - qDebug() << "result"; + //qDebug() << xmlreader.name(); attr = xmlreader.attributes(); + user = attr.value("username").toString(); position = attr.value("position").toString(); - user = attr.value("user").toString(); + date = attr.value("date").toString(); + unit = attr.value("unit").toString(); value = attr.value("value").toString(); - if (category == "acceleration-0-100") - { - top10AccelerationList.append(position + "\t" + + myCategoryList->top10List.append(position + "\t" + user + "\t" + - value + + value + " " + unit + "\t" + - description + "\n"); - } - - if(category == "top10speed") - { - top10SpeedList.append(position + "\t" + - user + "\t" + - value + - unit + "\t" + - description + "\n"); - } - - if(category == "top10gforce") - { - top10GforceList.append(position + "\t" + - user + "\t" + - value + - unit + "\t" + - description + "\n"); - } - qDebug() << position << user << value << unit; + date + "\n"); + + //qDebug() << position << user << value << unit << date; + i++; + receivedFlag = 1; } } } + //Only change labelTopList if a new top10List has been received + if(receivedFlag) + { + qDebug() << "receivedTop10List() emitted"; + emit receivedTop10List(); + } +} + +void XmlReader::xmlReadCategories(QNetworkReply *device) +//void XmlReader::xmlReadCategories(QIODevice *device) +{ + qDebug() << "_xmlReadCategories"; + + int i = 0; + int receivedFlag = 0; + + xmlreader.clear(); + QByteArray array = device->readAll(); + qDebug() << "array: " << array; + xmlreader.addData(array); + //xmlreader.addData(device->readAll()); + + myCategoryList->clearCats(); + + //Go trough the xml document + while(!xmlreader.atEnd()) + { + //Read next node + xmlreader.readNext(); + + //Check if this element is starting element + if(xmlreader.isStartElement()) + { + if(xmlreader.name() == "categories") + { + //qDebug() << xmlreader.name(); + } + if(xmlreader.name() == "category") + { + //qDebug() << xmlreader.name(); + attr = xmlreader.attributes(); + description = attr.value("description").toString(); + unit = attr.value("unit").toString(); + category = xmlreader.readElementText(); + myCategoryList->appendCats(i, description, unit, category); + //qDebug() << "description: " << description << "unit: " << unit << "category: " << category; + i++; + receivedFlag = 1; + } + } + } + //Only change comboBoxTopCategory if a new list has been received + if(receivedFlag) + { + qDebug() << "receivedCategoryList() emitted"; + myCategoryList->realSizeOfCats = i; + emit receivedCategoryList(); + } } /** @@ -109,7 +153,8 @@ void XmlReader::xmlRead(QNetworkReply *device) */ void XmlReader::xmlShow() { - QString filename = "results.xml"; + //QString filename = "results.xml"; + QString filename = "xmlcategoryfile.xml"; QFile file(filename); if (!file.open(QFile::ReadOnly)) @@ -118,7 +163,7 @@ void XmlReader::xmlShow() return; } - //xmlRead(&file); + //xmlReadTop10Results(&file); + //xmlReadCategories(&file); file.close(); } -