File indexing completed on 2025-02-09 04:18:53
0001 /* 0002 This file is part of KDE. 0003 0004 SPDX-FileCopyrightText: 2008 Cornelius Schumacher <schumacher@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "personparser.h" 0010 0011 using namespace Attica; 0012 0013 Person Person::Parser::parseXml(QXmlStreamReader &xml) 0014 { 0015 Person person; 0016 bool hasAvatarPic = false; 0017 0018 while (!xml.atEnd()) { 0019 xml.readNext(); 0020 0021 if (xml.isStartElement()) { 0022 if (xml.name() == QLatin1String("personid")) { 0023 person.setId(xml.readElementText()); 0024 } else if (xml.name() == QLatin1String("firstname")) { 0025 person.setFirstName(xml.readElementText()); 0026 } else if (xml.name() == QLatin1String("lastname")) { 0027 person.setLastName(xml.readElementText()); 0028 } else if (xml.name() == QLatin1String("homepage")) { 0029 person.setHomepage(xml.readElementText()); 0030 } else if (xml.name() == QLatin1String("avatarpic")) { 0031 person.setAvatarUrl(QUrl(xml.readElementText())); 0032 } else if (xml.name() == QLatin1String("avatarpicfound")) { 0033 QString value = xml.readElementText(); 0034 if (value.toInt()) { 0035 hasAvatarPic = true; 0036 } 0037 } else if (xml.name() == QLatin1String("birthday")) { 0038 person.setBirthday(QDate::fromString(xml.readElementText(), Qt::ISODate)); 0039 } else if (xml.name() == QLatin1String("city")) { 0040 person.setCity(xml.readElementText()); 0041 } else if (xml.name() == QLatin1String("country")) { 0042 person.setCountry(xml.readElementText()); 0043 } else if (xml.name() == QLatin1String("latitude")) { 0044 person.setLatitude(xml.readElementText().toFloat()); 0045 } else if (xml.name() == QLatin1String("longitude")) { 0046 person.setLongitude(xml.readElementText().toFloat()); 0047 } else { 0048 person.addExtendedAttribute(xml.name().toString(), xml.readElementText()); 0049 } 0050 } else if (xml.isEndElement() && (xml.name() == QLatin1String("person") || xml.name() == QLatin1String("user"))) { 0051 break; 0052 } 0053 } 0054 0055 if (!hasAvatarPic) { 0056 person.setAvatarUrl(QUrl()); 0057 } 0058 0059 return person; 0060 } 0061 0062 QStringList Person::Parser::xmlElement() const 0063 { 0064 return QStringList(QStringLiteral("person")) << QStringLiteral("user"); 0065 }