29 QXmlStreamAttributes fileAttributes;
41 QXmlStreamWriter writer(&outputString);
42 writer.setAutoFormatting(
true);
44 QXmlStreamReader reader(&
file);
45 while (!reader.atEnd()) {
46 switch (reader.readNext()) {
47 case QXmlStreamReader::StartDocument: {
50 writer.writeStartDocument(version.
toString());
52 writer.writeStartDocument();
55 case QXmlStreamReader::EndDocument:
56 writer.writeEndDocument();
58 case QXmlStreamReader::StartElement:
60 if (
state != InitialState) {
61 fprintf(stderr,
"Unexpected RCC tag in line %d\n",
int(reader.lineNumber()));
67 fprintf(stderr,
"Unexpected qresource tag in line %d\n",
int(reader.lineNumber()));
71 QXmlStreamAttributes attributes = reader.attributes();
79 if (
state != InResource) {
80 fprintf(stderr,
"Unexpected file tag in line %d\n",
int(reader.lineNumber()));
84 fileAttributes = reader.attributes();
87 writer.writeStartElement(reader.name().toString());
88 writer.writeAttributes(reader.attributes());
91 case QXmlStreamReader::EndElement:
93 if (
state != InFile) {
94 fprintf(stderr,
"Unexpected end of file tag in line %d\n",
int(reader.lineNumber()));
100 if (
state != InResource) {
101 fprintf(stderr,
"Unexpected end of qresource tag in line %d\n",
int(reader.lineNumber()));
106 if (
state != InRCC) {
107 fprintf(stderr,
"Unexpected end of RCC tag in line %d\n",
int(reader.lineNumber()));
110 state = InitialState;
112 writer.writeEndElement();
115 case QXmlStreamReader::Characters:
116 if (reader.isWhitespace())
120 currentFileName = reader.
text().toString();
129 currentFileName = inputDirectory.absoluteFilePath(currentFileName);
132 writer.writeAttributes(fileAttributes);
133 writer.writeCharacters(currentFileName);
134 writer.writeEndElement();
147 if (
outputFile.write(outputStringUtf8) != outputStringUtf8.size())