void QHelpProjectDataPrivate::readKeywords() { while (!atEnd()) { readNext(); if (isStartElement()) { if (name() == QLatin1String("keyword")) { if (attributes().value(QLatin1String("ref")).toString().isEmpty() || (attributes().value(QLatin1String("name")).toString().isEmpty() && attributes().value(QLatin1String("id")).toString().isEmpty())) { qWarning("Missing attribute in keyword at line %d.", (int)lineNumber()); continue; } filterSectionList.last() .addIndex(QHelpDataIndexItem(attributes(). value(QLatin1String("name")).toString(), attributes().value(QLatin1String("id")).toString(), attributes().value(QLatin1String("ref")).toString())); } else { raiseUnknownTokenError(); } } else if (isEndElement()) { if (name() == QLatin1String("keyword")) continue; else if (name() == QLatin1String("keywords")) break; else raiseUnknownTokenError(); } } }
void QHelpProjectDataPrivate::readTOC() { QStack<QHelpDataContentItem*> contentStack; QHelpDataContentItem *itm = 0; while (!atEnd()) { readNext(); if (isStartElement()) { if (name() == QLatin1String("section")) { QString title = attributes().value(QLatin1String("title")).toString(); QString ref = attributes().value(QLatin1String("ref")).toString(); if (contentStack.isEmpty()) { itm = new QHelpDataContentItem(0, title, ref); filterSectionList.last().addContent(itm); } else { itm = new QHelpDataContentItem(contentStack.top(), title, ref); } contentStack.push(itm); } else { raiseUnknownTokenError(); } } else if (isEndElement()) { if (name() == QLatin1String("section")) { contentStack.pop(); continue; } else if (name() == QLatin1String("toc") && contentStack.isEmpty()) { break; } else { raiseUnknownTokenError(); } } } }
void QHelpProjectDataPrivate::readProject() { while (!atEnd()) { readNext(); if (isStartElement()) { if (name() == QLatin1String("virtualFolder")) { virtualFolder = readElementText(); if (virtualFolder.contains(QLatin1String("/"))) raiseError(QObject::tr("A virtual folder must not contain a \'/\' character!")); } else if (name() == QLatin1String("namespace")) { namespaceName = readElementText(); if (namespaceName.contains(QLatin1String("/"))) raiseError(QObject::tr("A namespace must not contain a \'/\' character!")); } else if (name() == QLatin1String("customFilter")) { readCustomFilter(); } else if (name() == QLatin1String("filterSection")) { readFilterSection(); } else if (name() == QLatin1String("metaData")) { QString n = attributes().value(QLatin1String("name")).toString(); if (!metaData.contains(n)) metaData[n] = attributes().value(QLatin1String("value")).toString(); else metaData.insert(n, attributes().value(QLatin1String("value")).toString()); } else { raiseUnknownTokenError(); } } else if (isEndElement() && name() == QLatin1String("QtHelpProject")) { if (namespaceName.isEmpty()) raiseError(QObject::tr("Missing namespace in QtHelpProject.")); else if (virtualFolder.isEmpty()) raiseError(QObject::tr("Missing virtual folder in QtHelpProject")); break; } } }
void QHelpProjectDataPrivate::readFiles() { while (!atEnd()) { readNext(); if (isStartElement()) { if (name() == QLatin1String("file")) addMatchingFiles(readElementText()); else raiseUnknownTokenError(); } else if (isEndElement()) { if (name() == QLatin1String("file")) continue; else if (name() == QLatin1String("files")) break; else raiseUnknownTokenError(); } } }
void QHelpProjectDataPrivate::readCustomFilter() { QHelpDataCustomFilter filter; filter.name = attributes().value(QLatin1String("name")).toString(); while (!atEnd()) { readNext(); if (isStartElement()) { if (name() == QLatin1String("filterAttribute")) filter.filterAttributes.append(readElementText()); else raiseUnknownTokenError(); } else if (isEndElement() && name() == QLatin1String("customFilter")) { break; } } customFilterList.append(filter); }
void QHelpProjectDataPrivate::readProject() { while (!atEnd()) { readNext(); if (isStartElement()) { if (name() == QLatin1String("virtualFolder")) { virtualFolder = readElementText(); if (!hasValidSyntax(QLatin1String("test"), virtualFolder)) raiseError(QCoreApplication::translate("QHelpProject", "Virtual folder has invalid syntax in file: \"%1\"").arg(fileName)); } else if (name() == QLatin1String("namespace")) { namespaceName = readElementText(); if (!hasValidSyntax(namespaceName, QLatin1String("test"))) raiseError(QCoreApplication::translate("QHelpProject", "Namespace \"%1\" has invalid syntax in file: \"%2\"").arg(namespaceName, fileName)); } else if (name() == QLatin1String("customFilter")) { readCustomFilter(); } else if (name() == QLatin1String("filterSection")) { readFilterSection(); } else if (name() == QLatin1String("metaData")) { QString n = attributes().value(QLatin1String("name")).toString(); if (!metaData.contains(n)) metaData[n] = attributes().value(QLatin1String("value")).toString(); else metaData.insert(n, attributes(). value(QLatin1String("value")).toString()); } else { raiseUnknownTokenError(); } } else if (isEndElement() && name() == QLatin1String("QtHelpProject")) { if (namespaceName.isEmpty()) raiseError(QCoreApplication::translate("QHelpProject", "Missing namespace in QtHelpProject file: \"%1\"").arg(fileName)); else if (virtualFolder.isEmpty()) raiseError(QCoreApplication::translate("QHelpProject", "Missing virtual folder in QtHelpProject file: \"%1\"").arg(fileName)); break; } } }
void QHelpProjectDataPrivate::readFilterSection() { filterSectionList.append(QHelpDataFilterSection()); while (!atEnd()) { readNext(); if (isStartElement()) { if (name() == QLatin1String("filterAttribute")) filterSectionList.last().addFilterAttribute(readElementText()); else if (name() == QLatin1String("toc")) readTOC(); else if (name() == QLatin1String("keywords")) readKeywords(); else if (name() == QLatin1String("files")) readFiles(); else raiseUnknownTokenError(); } else if (isEndElement() && name() == QLatin1String("filterSection")) { break; } } }