summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/tree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/qdoc/tree.cpp')
-rw-r--r--src/tools/qdoc/tree.cpp31
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;