21 QString dirPath = QFileInfo(resourceFile).path();
22 QXmlStreamReader reader(content);
23 bool isFileTag =
false;
24 QStringList tagStack{
"RCC"_L1,
"qresource"_L1,
"file"_L1 };
26 while (!reader.atEnd()) {
27 QXmlStreamReader::TokenType t = reader.readNext();
29 case QXmlStreamReader::StartElement:
30 if (curDepth >= tagStack.size() || reader.name() != tagStack.at(curDepth)) {
31 result.errorString = FMT::tr(
"unexpected <%1> tag\n")
32 .arg(reader.name().toString());
33 result.line = reader.lineNumber();
36 if (++curDepth == tagStack.size())
40 case QXmlStreamReader::EndElement:
42 if (curDepth == 0 || reader.name() != tagStack.at(curDepth - 1)) {
43 result.errorString = FMT::tr(
"unexpected closing <%1> tag\n")
44 .arg(reader.name().toString());
45 result.line = reader.lineNumber();
51 case QXmlStreamReader::Characters:
53 QString fn = reader.text().toString();
54 if (!QFileInfo(fn).isAbsolute())
55 fn = dirPath + u'/' + fn;
57 if (isSupportedExtension(cfi.suffix()))
58 result.files << cfi.filePath();
66 if (reader.error() != QXmlStreamReader::NoError) {
67 result.errorString = reader.errorString();
68 result.line = reader.lineNumber();