Issue #64: Don't given count mismatch warning when the attribute doesn't exist.

This commit is contained in:
Debao Zhang
2014-11-18 09:35:21 +08:00
parent 4d2db25073
commit 9563a0463e
+4 -2
View File
@@ -370,19 +370,21 @@ bool SharedStrings::loadFromXmlFile(QIODevice *device)
{ {
QXmlStreamReader reader(device); QXmlStreamReader reader(device);
int count = 0; int count = 0;
bool hasUniqueCountAttr=true;
while (!reader.atEnd()) { while (!reader.atEnd()) {
QXmlStreamReader::TokenType token = reader.readNext(); QXmlStreamReader::TokenType token = reader.readNext();
if (token == QXmlStreamReader::StartElement) { if (token == QXmlStreamReader::StartElement) {
if (reader.name() == QLatin1String("sst")) { if (reader.name() == QLatin1String("sst")) {
QXmlStreamAttributes attributes = reader.attributes(); QXmlStreamAttributes attributes = reader.attributes();
count = attributes.value(QLatin1String("uniqueCount")).toString().toInt(); if ((hasUniqueCountAttr = attributes.hasAttribute(QLatin1String("uniqueCount"))))
count = attributes.value(QLatin1String("uniqueCount")).toString().toInt();
} else if (reader.name() == QLatin1String("si")) { } else if (reader.name() == QLatin1String("si")) {
readString(reader); readString(reader);
} }
} }
} }
if (m_stringList.size() != count) { if (hasUniqueCountAttr && m_stringList.size() != count) {
qDebug("Error: Shared string count"); qDebug("Error: Shared string count");
return false; return false;
} }