diff options
-rw-r--r-- | src/tools/qdoc/generator.cpp | 11 | ||||
-rw-r--r-- | src/tools/qdoc/generator.h | 2 | ||||
-rw-r--r-- | src/tools/qdoc/helpprojectwriter.cpp | 45 | ||||
-rw-r--r-- | src/tools/qdoc/helpprojectwriter.h | 2 |
4 files changed, 19 insertions, 41 deletions
diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index 5bf144f589..75faaf7c6c 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -69,6 +69,7 @@ QStringList Generator::imageFiles; QMap<QString, QStringList> Generator::imgFileExts; QString Generator::outDir_; QString Generator::outSubdir_; +QStringList Generator::outFileNames_; QSet<QString> Generator::outputFormats; QHash<QString, QString> Generator::outputPrefixes; QString Generator::project; @@ -244,8 +245,6 @@ void Generator::appendSortedQmlNames(Text& text, const Node* base, const NodeLis } } -QMultiMap<QString,QString> outFileNames; - /*! For debugging qdoc. */ @@ -255,10 +254,8 @@ void Generator::writeOutFileNames() if (!files.open(QFile::WriteOnly)) return; QTextStream filesout(&files); - QMultiMap<QString,QString>::ConstIterator i = outFileNames.begin(); - while (i != outFileNames.end()) { - filesout << i.key() << "\n"; - ++i; + foreach (const QString &file, outFileNames_) { + filesout << file << "\n"; } } @@ -280,7 +277,7 @@ void Generator::beginSubPage(const InnerNode* node, const QString& fileName) if (!outFile->open(QFile::WriteOnly)) node->location().fatal(tr("Cannot open output file '%1'").arg(outFile->fileName())); Generator::debug("Writing: " + path); - outFileNames.insert(fileName,fileName); + outFileNames_ << fileName; QTextStream* out = new QTextStream(outFile); #ifndef QT_NO_TEXTCODEC diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h index 2b2c77ccc5..2ea2715e80 100644 --- a/src/tools/qdoc/generator.h +++ b/src/tools/qdoc/generator.h @@ -90,6 +90,7 @@ public: static const QString& outputDir() { return outDir_; } static const QString& outputSubdir() { return outSubdir_; } static void terminate(); + static const QStringList& outputFileNames() { return outFileNames_; } static void writeOutFileNames(); static void augmentImageDirs(QSet<QString>& moreImageDirs); static void debug(const QString& message); @@ -208,6 +209,7 @@ private: static QString project; static QString outDir_; static QString outSubdir_; + static QStringList outFileNames_; static QSet<QString> outputFormats; static QHash<QString, QString> outputPrefixes; static QStringList scriptDirs; diff --git a/src/tools/qdoc/helpprojectwriter.cpp b/src/tools/qdoc/helpprojectwriter.cpp index 546642b4c0..41ab918f5c 100644 --- a/src/tools/qdoc/helpprojectwriter.cpp +++ b/src/tools/qdoc/helpprojectwriter.cpp @@ -284,7 +284,6 @@ bool HelpProjectWriter::generateSection(HelpProject &project, case Node::Class: project.keywords.append(keywordDetails(node)); - project.files.insert(gen_->fullDocumentLocation(node,Generator::useOutputSubdirs())); break; case Node::QmlType: case Node::QmlBasicType: @@ -303,12 +302,10 @@ bool HelpProjectWriter::generateSection(HelpProject &project, } } project.keywords.append(keywordDetails(node)); - project.files.insert(gen_->fullDocumentLocation(node,Generator::useOutputSubdirs())); break; case Node::Namespace: project.keywords.append(keywordDetails(node)); - project.files.insert(gen_->fullDocumentLocation(node,Generator::useOutputSubdirs())); break; case Node::Enum: @@ -357,7 +354,6 @@ bool HelpProjectWriter::generateSection(HelpProject &project, } } project.keywords.append(keywordDetails(node)); - project.files.insert(gen_->fullDocumentLocation(node,Generator::useOutputSubdirs())); } } break; @@ -388,7 +384,6 @@ bool HelpProjectWriter::generateSection(HelpProject &project, if (node->relates()) { project.memberStatus[node->relates()].insert(node->status()); - project.files.insert(gen_->fullDocumentLocation(node->relates(),Generator::useOutputSubdirs())); } else if (node->parent()) project.memberStatus[node->parent()].insert(node->status()); } @@ -410,8 +405,6 @@ bool HelpProjectWriter::generateSection(HelpProject &project, case Node::Variable: { - QString location = gen_->fullDocumentLocation(node,Generator::useOutputSubdirs()); - project.files.insert(location.left(location.lastIndexOf(QLatin1Char('#')))); project.keywords.append(keywordDetails(node)); } break; @@ -442,7 +435,6 @@ bool HelpProjectWriter::generateSection(HelpProject &project, } project.keywords.append(keywordDetails(node)); } - project.files.insert(gen_->fullDocumentLocation(node,Generator::useOutputSubdirs())); } break; } @@ -513,8 +505,6 @@ void HelpProjectWriter::generateSections(HelpProject &project, project.memberStatus[node].insert(childNode->status()); if (childNode->relates()) { project.memberStatus[childNode->relates()].insert(childNode->status()); - project.files.insert(gen_->fullDocumentLocation(childNode->relates(), - Generator::useOutputSubdirs())); } if (childNode->type() == Node::Function) { @@ -525,11 +515,6 @@ void HelpProjectWriter::generateSections(HelpProject &project, childMap[childNode->fullDocumentName()] = childNode; } } - // Insert files for all/compatibility/obsolete members - addMembers(project, writer, node, false); - if (node->relates()) - addMembers(project, writer, node->relates(), false); - foreach (const Node *child, childMap) generateSections(project, writer, child); } @@ -564,11 +549,10 @@ void HelpProjectWriter::writeSection(QXmlStreamWriter &writer, const QString &pa } /* - Add files for all members, compatibility members and obsolete members - Also write subsections for these depending on 'writeSections' (default=true). + Write subsections for all members, compatibility members and obsolete members. */ void HelpProjectWriter::addMembers(HelpProject &project, QXmlStreamWriter &writer, - const Node *node, bool writeSections) + const Node *node) { QString href = gen_->fullDocumentLocation(node,Generator::useOutputSubdirs()); href = href.left(href.size()-5); @@ -584,21 +568,15 @@ void HelpProjectWriter::addMembers(HelpProject &project, QXmlStreamWriter &write if (!node->isNamespace() && !node->isHeaderFile() && (derivedClass || node->isQmlType() || !project.memberStatus[node].isEmpty())) { QString membersPath = href + QStringLiteral("-members.html"); - project.files.insert(membersPath); - if (writeSections) - writeSection(writer, membersPath, tr("List of all members")); + writeSection(writer, membersPath, tr("List of all members")); } if (project.memberStatus[node].contains(Node::Compat)) { QString compatPath = href + QStringLiteral("-compat.html"); - project.files.insert(compatPath); - if (writeSections) - writeSection(writer, compatPath, tr("Compatibility members")); + writeSection(writer, compatPath, tr("Compatibility members")); } if (project.memberStatus[node].contains(Node::Obsolete)) { QString obsoletePath = href + QStringLiteral("-obsolete.html"); - project.files.insert(obsoletePath); - if (writeSections) - writeSection(writer, obsoletePath, tr("Obsolete members")); + writeSection(writer, obsoletePath, tr("Obsolete members")); } } @@ -722,7 +700,6 @@ void HelpProjectWriter::generateProject(HelpProject &project) indexPath = "index.html"; writer.writeAttribute("ref", indexPath); writer.writeAttribute("title", project.indexTitle); - project.files.insert(gen_->fullDocumentLocation(rootNode)); generateSections(project, writer, rootNode); @@ -764,7 +741,6 @@ void HelpProjectWriter::generateProject(HelpProject &project) Generator::useOutputSubdirs()); writer.writeAttribute("ref", indexPath); writer.writeAttribute("title", atom->string()); - project.files.insert(indexPath); sectionStack.top() += 1; } @@ -789,7 +765,6 @@ void HelpProjectWriter::generateProject(HelpProject &project) QString indexPath = gen_->fullDocumentLocation(qdb_->findDocNodeByTitle(subproject.indexTitle),Generator::useOutputSubdirs()); writer.writeAttribute("ref", indexPath); writer.writeAttribute("title", subproject.title); - project.files.insert(indexPath); } if (subproject.sortPages) { QStringList titles = subproject.nodes.keys(); @@ -843,12 +818,16 @@ void HelpProjectWriter::generateProject(HelpProject &project) writer.writeEndElement(); // keywords writer.writeStartElement("files"); - foreach (const QString &usedFile, project.files) { + + // The list of files to write is the union of generated files and + // other files (images and extras) included in the project + QSet<QString> files = QSet<QString>::fromList(gen_->outputFileNames()); + files.unite(project.files); + files.unite(project.extraFiles); + foreach (const QString &usedFile, files) { if (!usedFile.isEmpty()) writer.writeTextElement("file", usedFile); } - foreach (const QString &usedFile, project.extraFiles) - writer.writeTextElement("file", usedFile); writer.writeEndElement(); // files writer.writeEndElement(); // filterSection diff --git a/src/tools/qdoc/helpprojectwriter.h b/src/tools/qdoc/helpprojectwriter.h index 5dfa12cf73..7c4e0f6c72 100644 --- a/src/tools/qdoc/helpprojectwriter.h +++ b/src/tools/qdoc/helpprojectwriter.h @@ -106,7 +106,7 @@ private: void writeNode(HelpProject &project, QXmlStreamWriter &writer, const Node *node); void readSelectors(SubProject &subproject, const QStringList &selectors); void addMembers(HelpProject &project, QXmlStreamWriter &writer, - const Node *node, bool writeSections = true); + const Node *node); void writeSection(QXmlStreamWriter &writer, const QString &path, const QString &value); |