diff options
| author | Martin Smith <[email protected]> | 2014-07-30 13:44:15 +0200 |
|---|---|---|
| committer | Martin Smith <[email protected]> | 2014-08-22 18:23:39 +0200 |
| commit | a5570bbf9af05fa33cfcc9f167786e8d2ca1e32e (patch) | |
| tree | 40749767c38c88e6a52f66572664df5df61ab908 /src/tools/qdoc/generator.cpp | |
| parent | 701b72c261922a2f96e3433f1f82646b1b339ff0 (diff) | |
qdoc: Remove all collision node stuff from qdoc
Now that the qdoc link command has ability to tell qdoc which module
contains a link target or whether to link to a QML or CPP entity,
collision pages should no longer be necessary. In fact, qdoc hasn't
been generating any collisions for some time. This task removes all
the collision node code from qdoc.
Task-number: QTBUG-40506
Change-Id: I34d1980ca1c0fe4bb5ad27dd4b00e61fa7e6e335
Reviewed-by: Topi Reiniƶ <[email protected]>
Diffstat (limited to 'src/tools/qdoc/generator.cpp')
| -rw-r--r-- | src/tools/qdoc/generator.cpp | 149 |
1 files changed, 45 insertions, 104 deletions
diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index 6fdc2a916c4..5bf144f5893 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -319,9 +319,6 @@ QString Generator::fileBase(const Node *node) const QString base; if (node->isDocNode()) { base = node->name(); - if (node->subType() == Node::Collision) - base.prepend("collision-"); - //Was QDOC2_COMPAT, required for index.html if (base.endsWith(".html")) base.truncate(base.length() - 5); @@ -976,10 +973,6 @@ void Generator::generateInherits(const ClassNode *classe, CodeMarker *marker) \note DitaXmlGenerator overrides this function, but HtmlGenerator does not. - - \note NameCollisionNodes are skipped here and processed - later. See HtmlGenerator::generateCollisionPages() for - more on this. */ void Generator::generateInnerNode(InnerNode* node) { @@ -1010,66 +1003,55 @@ void Generator::generateInnerNode(InnerNode* node) CodeMarker *marker = CodeMarker::markerForFileName(node->location().filePath()); if (node->parent() != 0) { - /* - Skip name collision nodes here and process them - later in generateCollisionPages(). Each one is - appended to a list for later. - */ - if (node->isCollisionNode()) { - NameCollisionNode* ncn = static_cast<NameCollisionNode*>(node); - collisionNodes.append(const_cast<NameCollisionNode*>(ncn)); + if (node->isNamespace() || node->isClass()) { + beginSubPage(node, fileName(node)); + generateClassLikeNode(node, marker); + endSubPage(); } - else { - if (node->isNamespace() || node->isClass()) { - beginSubPage(node, fileName(node)); - generateClassLikeNode(node, marker); - endSubPage(); - } - if (node->isQmlType()) { - beginSubPage(node, fileName(node)); - QmlClassNode* qcn = static_cast<QmlClassNode*>(node); - generateQmlTypePage(qcn, marker); - endSubPage(); - } - else if (node->isDocNode()) { - beginSubPage(node, fileName(node)); - generateDocNode(static_cast<DocNode*>(node), marker); - endSubPage(); - } - else if (node->isQmlBasicType()) { + if (node->isQmlType()) { + beginSubPage(node, fileName(node)); + QmlClassNode* qcn = static_cast<QmlClassNode*>(node); + generateQmlTypePage(qcn, marker); + endSubPage(); + } + else if (node->isDocNode()) { + beginSubPage(node, fileName(node)); + generateDocNode(static_cast<DocNode*>(node), marker); + endSubPage(); + } + else if (node->isQmlBasicType()) { + beginSubPage(node, fileName(node)); + QmlBasicTypeNode* qbtn = static_cast<QmlBasicTypeNode*>(node); + generateQmlBasicTypePage(qbtn, marker); + endSubPage(); + } + else if (node->isCollectionNode()) { + CollectionNode* cn = static_cast<CollectionNode*>(node); + /* + A collection node is one of: group, module, + or QML module. + + Don't output an HTML page for the collection + node unless the \group, \module, or \qmlmodule + command was actually seen by qdoc in the qdoc + comment for the node. + + A key prerequisite in this case is the call to + mergeCollections(cn). We don't know if this + collection (group, module, or QML module) has + members in other modules. We know at this point + that cn's members list contains only members in + the current module. Therefore, before outputting + the page for cn, we must search for members of + cn in the other modules and add them to the + members list. + */ + if (cn->wasSeen()) { + qdb_->mergeCollections(cn); beginSubPage(node, fileName(node)); - QmlBasicTypeNode* qbtn = static_cast<QmlBasicTypeNode*>(node); - generateQmlBasicTypePage(qbtn, marker); + generateCollectionNode(cn, marker); endSubPage(); } - else if (node->isCollectionNode()) { - CollectionNode* cn = static_cast<CollectionNode*>(node); - /* - A collection node is one of: group, module, - or QML module. - - Don't output an HTML page for the collection - node unless the \group, \module, or \qmlmodule - command was actually seen by qdoc in the qdoc - comment for the node. - - A key prerequisite in this case is the call to - mergeCollections(cn). We don't know if this - collection (group, module, or QML module) has - members in other modules. We know at this point - that cn's members list contains only members in - the current module. Therefore, before outputting - the page for cn, we must search for members of - cn in the other modules and add them to the - members list. - */ - if (cn->wasSeen()) { - qdb_->mergeCollections(cn); - beginSubPage(node, fileName(node)); - generateCollectionNode(cn, marker); - endSubPage(); - } - } } } @@ -1446,47 +1428,6 @@ Generator *Generator::generatorForFormat(const QString& format) return 0; } -#if 0 -/*! - This function might be useless now with the addition of - multiple node trees. It is called a few hundred times, - but it never finds a collision node. The single call has - been commented out by mws (19/05/2014). If it is no - longer needed, it will be removed. - - This function can be called if getLink() returns an empty - string. It tests the \a atom string to see if it is a link - of the form <element> :: <name>, where <element> is a QML - element or component without a module qualifier. If so, it - constructs a link to the <name> clause on the disambiguation - page for <element> and returns that link string. It also - adds the <name> as a target in the NameCollisionNode for - <element>. These clauses are then constructed when the - disambiguation page is actually generated. - */ -QString Generator::getCollisionLink(const Atom* atom) -{ - QString link; - if (!atom->string().contains("::")) - return link; - QStringList path = atom->string().split("::"); - NameCollisionNode* ncn = qdb_->findCollisionNode(path[0]); - if (ncn) { - QString label; - if (atom->next() && atom->next()->next()) { - if (atom->next()->type() == Atom::FormattingLeft && - atom->next()->next()->type() == Atom::String) - label = atom->next()->next()->string(); - } - ncn->addLinkTarget(path[1],label); - link = fileName(ncn); - link += QLatin1Char('#'); - link += Doc::canonicalTitle(path[1]); - } - return link; -} -#endif - /*! Looks up the tag \a t in the map of metadata values for the current topic in \a inner. If a value for the tag is found, |
