File indexing completed on 2025-02-09 04:18:49
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 "activityparser.h" 0010 0011 #include <QDateTime> 0012 #include <QRegularExpression> 0013 0014 using namespace Attica; 0015 0016 Activity Activity::Parser::parseXml(QXmlStreamReader &xml) 0017 { 0018 Activity activity; 0019 Person person; 0020 0021 while (!xml.atEnd()) { 0022 xml.readNext(); 0023 0024 if (xml.isStartElement()) { 0025 if (xml.name() == QLatin1String("id")) { 0026 activity.setId(xml.readElementText()); 0027 } else if (xml.name() == QLatin1String("personid")) { 0028 person.setId(xml.readElementText()); 0029 } else if (xml.name() == QLatin1String("avatarpic")) { 0030 person.setAvatarUrl(QUrl(xml.readElementText())); 0031 } else if (xml.name() == QLatin1String("firstname")) { 0032 person.setFirstName(xml.readElementText()); 0033 } else if (xml.name() == QLatin1String("lastname")) { 0034 person.setLastName(xml.readElementText()); 0035 } else if (xml.name() == QLatin1String("timestamp")) { 0036 QString timestampString = xml.readElementText(); 0037 timestampString.remove(QRegularExpression(QStringLiteral("\\+.*$"))); 0038 QDateTime timestamp = QDateTime::fromString(timestampString, Qt::ISODate); 0039 activity.setTimestamp(timestamp); 0040 } else if (xml.name() == QLatin1String("message")) { 0041 activity.setMessage(xml.readElementText()); 0042 } else if (xml.name() == QLatin1String("link")) { 0043 activity.setLink(QUrl(xml.readElementText())); 0044 } 0045 } else if (xml.isEndElement() && xml.name() == QLatin1String("activity")) { 0046 break; 0047 } 0048 } 0049 0050 activity.setAssociatedPerson(person); 0051 return activity; 0052 } 0053 0054 QStringList Activity::Parser::xmlElement() const 0055 { 0056 return QStringList(QStringLiteral("activity")); 0057 }