diff options
Diffstat (limited to 'src/tools/qdoc/tree.cpp')
-rw-r--r-- | src/tools/qdoc/tree.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp index 3dfcfea48b..ac55cb7318 100644 --- a/src/tools/qdoc/tree.cpp +++ b/src/tools/qdoc/tree.cpp @@ -967,7 +967,18 @@ void Tree::readIndexFile(const QString& path) file.close(); QDomElement indexElement = document.documentElement(); - QString indexUrl = indexElement.attribute("url", ""); + + // Generate a relative URL between the install dir and the index file + // when the -installdir command line option is set. + QString indexUrl; + if (Config::installDir.isEmpty()) { + indexUrl = indexElement.attribute("url", ""); + } + else { + QDir installDir(Config::installDir); + indexUrl = installDir.relativeFilePath(path).section('/', 0, -2); + } + priv->basesList.clear(); priv->relatedList.clear(); @@ -1513,7 +1524,7 @@ bool Tree::generateIndexSection(QXmlStreamWriter& writer, QString href = node->outputSubdirectory(); if (!href.isEmpty()) href.append(QLatin1Char('/')); - href.append(HtmlGenerator::fullDocumentLocation(node)); + href.append(Generator::fullDocumentLocation(node)); writer.writeAttribute("href", href); if ((node->type() != Node::Fake) && (!node->isQmlNode())) writer.writeAttribute("location", node->location().fileName()); @@ -2026,7 +2037,7 @@ void Tree::generateTagFileCompounds(QXmlStreamWriter& writer, const InnerNode* i if (node->type() == Node::Class) { writer.writeTextElement("name", node->fullDocumentName()); - writer.writeTextElement("filename", HtmlGenerator::fullDocumentLocation(node,true)); + writer.writeTextElement("filename", Generator::fullDocumentLocation(node,true)); // Classes contain information about their base classes. const ClassNode* classNode = static_cast<const ClassNode*>(node); @@ -2044,7 +2055,7 @@ void Tree::generateTagFileCompounds(QXmlStreamWriter& writer, const InnerNode* i generateTagFileCompounds(writer, static_cast<const InnerNode*>(node)); } else { writer.writeTextElement("name", node->fullDocumentName()); - writer.writeTextElement("filename", HtmlGenerator::fullDocumentLocation(node,true)); + writer.writeTextElement("filename", Generator::fullDocumentLocation(node,true)); // Recurse to write all members. generateTagFileMembers(writer, static_cast<const InnerNode*>(node)); @@ -2163,7 +2174,7 @@ void Tree::generateTagFileMembers(QXmlStreamWriter& writer, const InnerNode* inn "virtual " + functionNode->returnType()); writer.writeTextElement("name", objName); - QStringList pieces = HtmlGenerator::fullDocumentLocation(node,true).split(QLatin1Char('#')); + QStringList pieces = Generator::fullDocumentLocation(node,true).split(QLatin1Char('#')); writer.writeTextElement("anchorfile", pieces[0]); writer.writeTextElement("anchor", pieces[1]); @@ -2202,7 +2213,7 @@ void Tree::generateTagFileMembers(QXmlStreamWriter& writer, const InnerNode* inn const PropertyNode* propertyNode = static_cast<const PropertyNode*>(node); writer.writeAttribute("type", propertyNode->dataType()); writer.writeTextElement("name", objName); - QStringList pieces = HtmlGenerator::fullDocumentLocation(node,true).split(QLatin1Char('#')); + QStringList pieces = Generator::fullDocumentLocation(node,true).split(QLatin1Char('#')); writer.writeTextElement("anchorfile", pieces[0]); writer.writeTextElement("anchor", pieces[1]); writer.writeTextElement("arglist", ""); @@ -2214,7 +2225,7 @@ void Tree::generateTagFileMembers(QXmlStreamWriter& writer, const InnerNode* inn { const EnumNode* enumNode = static_cast<const EnumNode*>(node); writer.writeTextElement("name", objName); - QStringList pieces = HtmlGenerator::fullDocumentLocation(node).split(QLatin1Char('#')); + QStringList pieces = Generator::fullDocumentLocation(node).split(QLatin1Char('#')); writer.writeTextElement("anchor", pieces[1]); writer.writeTextElement("arglist", ""); writer.writeEndElement(); // member @@ -2238,7 +2249,7 @@ void Tree::generateTagFileMembers(QXmlStreamWriter& writer, const InnerNode* inn else writer.writeAttribute("type", ""); writer.writeTextElement("name", objName); - QStringList pieces = HtmlGenerator::fullDocumentLocation(node,true).split(QLatin1Char('#')); + QStringList pieces = Generator::fullDocumentLocation(node,true).split(QLatin1Char('#')); writer.writeTextElement("anchorfile", pieces[0]); writer.writeTextElement("anchor", pieces[1]); writer.writeTextElement("arglist", ""); @@ -2382,9 +2393,7 @@ Node* Tree::findNodeRecursive(const QStringList& path, else if (n->isCollisionNode()) { if (acceptCollision) return n; - return n = findNodeRecursive(path, pathIndex, n, type, subtype); - if (n) - return n; + return findNodeRecursive(path, pathIndex, n, type, subtype); } else return 0; |