diff options
-rw-r--r-- | src/tools/qdoc/cppcodeparser.cpp | 18 | ||||
-rw-r--r-- | src/tools/qdoc/qdocdatabase.h | 3 | ||||
-rw-r--r-- | src/tools/qdoc/tree.cpp | 9 | ||||
-rw-r--r-- | src/tools/qdoc/tree.h | 1 |
4 files changed, 31 insertions, 0 deletions
diff --git a/src/tools/qdoc/cppcodeparser.cpp b/src/tools/qdoc/cppcodeparser.cpp index be061dbd62..b6de29e57c 100644 --- a/src/tools/qdoc/cppcodeparser.cpp +++ b/src/tools/qdoc/cppcodeparser.cpp @@ -497,6 +497,15 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, ptype = Node::DitaMapPage; } +#if 0 + const Node* n = qdb_->checkForCollision(args[0]); + if (n) { + QString other = n->doc().location().fileName(); + doc.location().warning(tr("Name/title collision detected: '%1' in '\\%2'") + .arg(args[0]).arg(command), + tr("Also used here: %1").arg(other)); + } +#endif DocNode* dn = 0; if (ptype == Node::DitaMapPage) dn = new DitaMapNode(qdb_->primaryTreeRoot(), args[0]); @@ -534,6 +543,15 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, classNode = qdb_->findClassNode(names[1].split("::")); } +#if 0 + const Node* n = qdb_->checkForCollision(names[0]); + if (n) { + QString other = n->doc().location().fileName(); + doc.location().warning(tr("Name/title collision detected: '%1' in '\\%2'") + .arg(names[0]).arg(command), + tr("Also used here: %1").arg(other)); + } +#endif QmlClassNode* qcn = new QmlClassNode(qdb_->primaryTreeRoot(), names[0]); qcn->setClassNode(classNode); qcn->setLocation(doc.startLocation()); diff --git a/src/tools/qdoc/qdocdatabase.h b/src/tools/qdoc/qdocdatabase.h index eebce90822..495db11511 100644 --- a/src/tools/qdoc/qdocdatabase.h +++ b/src/tools/qdoc/qdocdatabase.h @@ -304,6 +304,9 @@ class QDocDatabase } FunctionNode* findNodeInOpenNamespace(const QStringList& parentPath, const FunctionNode* clone); Node* findNodeInOpenNamespace(QStringList& path, Node::Type type); + const Node* checkForCollision(const QString& name) { + return primaryTree()->checkForCollision(name); + } /*******************************************************************/ /******************************************************************* diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp index 07c7803a7c..6bd6a649fd 100644 --- a/src/tools/qdoc/tree.cpp +++ b/src/tools/qdoc/tree.cpp @@ -1393,4 +1393,13 @@ const Node* Tree::findFunctionNode(const QString& target, const Node* relative, return 0; } +/*! + Search for a node that is identified by \a name. + Return a pointer to a matching node, or 0. +*/ +const Node* Tree::checkForCollision(const QString& name) +{ + return findNode(QStringList(name), 0, 0, Node::DontCare); +} + QT_END_NAMESPACE diff --git a/src/tools/qdoc/tree.h b/src/tools/qdoc/tree.h index c225b48505..c6d6e1f4bb 100644 --- a/src/tools/qdoc/tree.h +++ b/src/tools/qdoc/tree.h @@ -194,6 +194,7 @@ class Tree void insertQmlType(const QString& key, QmlClassNode* n); void addExampleNode(ExampleNode* n) { exampleNodeMap_.insert(n->title(), n); } ExampleNodeMap& exampleNodeMap() { return exampleNodeMap_; } + const Node* checkForCollision(const QString& name); public: const QString& moduleName() const { return module_; } |