diff options
Diffstat (limited to 'src/tools/qdoc/qdoctagfiles.cpp')
-rw-r--r-- | src/tools/qdoc/qdoctagfiles.cpp | 38 |
1 files changed, 8 insertions, 30 deletions
diff --git a/src/tools/qdoc/qdoctagfiles.cpp b/src/tools/qdoc/qdoctagfiles.cpp index a0054ea229..cc2bd3f1f0 100644 --- a/src/tools/qdoc/qdoctagfiles.cpp +++ b/src/tools/qdoc/qdoctagfiles.cpp @@ -147,7 +147,7 @@ void QDocTagFiles::generateTagFileCompounds(QXmlStreamWriter& writer, const Inne QString objName = node->name(); // Special case: only the root node should have an empty name. - if (objName.isEmpty() && node != qdb_->treeRoot()) + if (objName.isEmpty() && node != qdb_->primaryTreeRoot()) continue; // *** Write the starting tag for the element here. *** @@ -162,8 +162,9 @@ void QDocTagFiles::generateTagFileCompounds(QXmlStreamWriter& writer, const Inne const ClassNode* classNode = static_cast<const ClassNode*>(node); QList<RelatedClass> bases = classNode->baseClasses(); foreach (const RelatedClass& related, bases) { - ClassNode* baseClassNode = related.node; - writer.writeTextElement("base", baseClassNode->name()); + ClassNode* n = related.node_; + if (n) + writer.writeTextElement("base", n->name()); } // Recurse to write all members. @@ -243,7 +244,7 @@ void QDocTagFiles::generateTagFileMembers(QXmlStreamWriter& writer, const InnerN QString objName = node->name(); // Special case: only the root node should have an empty name. - if (objName.isEmpty() && node != qdb_->treeRoot()) + if (objName.isEmpty() && node != qdb_->primaryTreeRoot()) continue; // *** Write the starting tag for the element here. *** @@ -294,31 +295,8 @@ void QDocTagFiles::generateTagFileMembers(QXmlStreamWriter& writer, const InnerN QStringList pieces = gen_->fullDocumentLocation(node,Generator::useOutputSubdirs()).split(QLatin1Char('#')); writer.writeTextElement("anchorfile", pieces[0]); writer.writeTextElement("anchor", pieces[1]); - - // Write a signature attribute for convenience. - QStringList signatureList; - - foreach (const Parameter& parameter, functionNode->parameters()) { - QString leftType = parameter.leftType(); - const Node* leftNode = qdb_->findNode(parameter.leftType().split("::"), - 0, - SearchBaseClasses|NonFunction); - if (!leftNode || leftNode->type() != Node::Typedef) { - leftNode = qdb_->findNode(parameter.leftType().split("::"), - node->parent(), - SearchBaseClasses|NonFunction); - } - if (leftNode && leftNode->type() == Node::Typedef) { - const TypedefNode* typedefNode = static_cast<const TypedefNode*>(leftNode); - if (typedefNode->associatedEnum()) { - leftType = "QFlags<" + typedefNode->associatedEnum()->fullDocumentName() + - QLatin1Char('>'); - } - } - signatureList.append(leftType + QLatin1Char(' ') + parameter.name()); - } - - QString signature = QLatin1Char('(')+signatureList.join(", ")+QLatin1Char(')'); + QString signature = functionNode->signature(); + signature = signature.mid(signature.indexOf(QChar('('))).trimmed(); if (functionNode->isConst()) signature += " const"; if (functionNode->virtualness() == FunctionNode::PureVirtual) @@ -395,7 +373,7 @@ void QDocTagFiles::generateTagFile(const QString& fileName, Generator* g) writer.setAutoFormatting(true); writer.writeStartDocument(); writer.writeStartElement("tagfile"); - generateTagFileCompounds(writer, qdb_->treeRoot()); + generateTagFileCompounds(writer, qdb_->primaryTreeRoot()); writer.writeEndElement(); // tagfile writer.writeEndDocument(); file.close(); |