Changeset View
Changeset View
Standalone View
Standalone View
src/acbf/AcbfData.cpp
Show All 33 Lines | |||||
34 | 34 | | |||
35 | Data::Data(Document* parent) | 35 | Data::Data(Document* parent) | ||
36 | : QObject(parent) | 36 | : QObject(parent) | ||
37 | , d(new Private) | 37 | , d(new Private) | ||
38 | { | 38 | { | ||
39 | qRegisterMetaType<Data*>("Data*"); | 39 | qRegisterMetaType<Data*>("Data*"); | ||
40 | } | 40 | } | ||
41 | 41 | | |||
42 | Data::~Data() | 42 | Data::~Data() = default; | ||
43 | { | | |||
44 | delete d; | | |||
45 | } | | |||
46 | 43 | | |||
47 | void Data::toXml(QXmlStreamWriter* writer) | 44 | void Data::toXml(QXmlStreamWriter* writer) | ||
48 | { | 45 | { | ||
49 | writer->writeStartElement("data"); | 46 | writer->writeStartElement(QStringLiteral("data")); | ||
50 | 47 | | |||
51 | Q_FOREACH(Binary* binary, d->binaries) { | 48 | Q_FOREACH(Binary* binary, d->binaries) { | ||
52 | binary->toXml(writer); | 49 | binary->toXml(writer); | ||
53 | } | 50 | } | ||
54 | 51 | | |||
55 | writer->writeEndElement(); | 52 | writer->writeEndElement(); | ||
56 | } | 53 | } | ||
57 | 54 | | |||
58 | bool Data::fromXml(QXmlStreamReader* xmlReader) | 55 | bool Data::fromXml(QXmlStreamReader* xmlReader) | ||
59 | { | 56 | { | ||
60 | while(xmlReader->readNextStartElement()) | 57 | while(xmlReader->readNextStartElement()) | ||
61 | { | 58 | { | ||
62 | if(xmlReader->name() == "binary") | 59 | if(xmlReader->name() == QStringLiteral("binary")) | ||
63 | { | 60 | { | ||
64 | Binary* newBinary = new Binary(this); | 61 | Binary* newBinary = new Binary(this); | ||
65 | if(!newBinary->fromXml(xmlReader)) { | 62 | if(!newBinary->fromXml(xmlReader)) { | ||
66 | return false; | 63 | return false; | ||
67 | } | 64 | } | ||
68 | d->binaries.insert(newBinary->id(), newBinary); | 65 | d->binaries.insert(newBinary->id(), newBinary); | ||
69 | } | 66 | } | ||
70 | else | 67 | else | ||
71 | { | 68 | { | ||
72 | qWarning() << Q_FUNC_INFO << "currently unsupported subsection:" << xmlReader->name(); | 69 | qWarning() << Q_FUNC_INFO << "currently unsupported subsection:" << xmlReader->name(); | ||
73 | xmlReader->skipCurrentElement(); | 70 | xmlReader->skipCurrentElement(); | ||
74 | } | 71 | } | ||
75 | } | 72 | } | ||
76 | if (xmlReader->hasError()) { | 73 | if (xmlReader->hasError()) { | ||
77 | qWarning() << Q_FUNC_INFO << "Failed to read ACBF XML document at token" << xmlReader->name() << "(" << xmlReader->lineNumber() << ":" << xmlReader->columnNumber() << ") The reported error was:" << xmlReader->errorString(); | 74 | qWarning() << Q_FUNC_INFO << "Failed to read ACBF XML document at token" << xmlReader->name() << "(" << xmlReader->lineNumber() << ":" << xmlReader->columnNumber() << ") The reported error was:" << xmlReader->errorString(); | ||
78 | } | 75 | } | ||
79 | qDebug() << Q_FUNC_INFO << "Created data with" << d->binaries.count() << "binaries"; | 76 | qDebug() << Q_FUNC_INFO << "Created data with" << d->binaries.count() << "binaries"; | ||
80 | return !xmlReader->hasError(); | 77 | return !xmlReader->hasError(); | ||
81 | } | 78 | } | ||
82 | 79 | | |||
83 | Binary* Data::binary(QString id) | 80 | Binary* Data::binary(const QString& id) const | ||
84 | { | 81 | { | ||
85 | return d->binaries.value(id); | 82 | return d->binaries.value(id); | ||
86 | } | 83 | } |