From 4e9dc8b49d97f1955875c727dbcdbcbb20999428 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 9 May 2012 15:23:30 +0200 Subject: qdoc: Fixed a qdoc error problem When an example was missing, qdoc printed an error message without specifying the location of the error. Now it includes the file path and line number of the \example command where the error can be fixed. Change-Id: Ib75ffc467c0f266ed3939b8aa4b24800ec5eb92e Reviewed-by: Casper van Donderen --- src/tools/qdoc/cppcodeparser.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/tools/qdoc/cppcodeparser.cpp') diff --git a/src/tools/qdoc/cppcodeparser.cpp b/src/tools/qdoc/cppcodeparser.cpp index 6f117734d56..3518881a876 100644 --- a/src/tools/qdoc/cppcodeparser.cpp +++ b/src/tools/qdoc/cppcodeparser.cpp @@ -617,7 +617,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, else if (QRegExp("[A-Za-z_][A-Za-z0-9_]+").exactMatch(arg.first)) { func = new FunctionNode(tree_->root(), arg.first); func->setAccess(Node::Public); - func->setLocation(doc.location()); + func->setLocation(arg.second); func->setMetaness(FunctionNode::MacroWithoutParams); } else { @@ -689,6 +689,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, else if (command == COMMAND_EXAMPLE) { if (Config::generateExamples) { ExampleNode* en = new ExampleNode(tree_->root(), arg.first); + en->setLocation(arg.second); createExampleFileNodes(en); return en; } @@ -749,6 +750,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, fn = new DitaMapNode(tree_->root(), args[0]); else fn = new FakeNode(tree_->root(), args[0], Node::Page, ptype); + fn->setLocation(arg.second); if (ncn) { ncn->addCollision(fn); } @@ -777,7 +779,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, */ NameCollisionNode* ncn = tree_->checkForCollision(names[0]); QmlClassNode* qcn = new QmlClassNode(tree_->root(), names[0], classNode); - qcn->setLocation(location()); + qcn->setLocation(arg.second); if (ncn) ncn->addCollision(qcn); return qcn; @@ -2491,8 +2493,8 @@ void CppCodeParser::createExampleFileNodes(FakeNode *fake) proFileName, userFriendlyFilePath); if (fullPath.isEmpty()) { - fake->doc().location().warning(tr("Cannot find file '%1' or '%2'").arg(tmp).arg(proFileName)); - fake->doc().location().warning(tr("EXAMPLE PATH DOES NOT EXIST: %1").arg(examplePath)); + fake->location().warning(tr("Cannot find file '%1' or '%2'").arg(tmp).arg(proFileName)); + fake->location().warning(tr(" EXAMPLE PATH DOES NOT EXIST: %1").arg(examplePath)); return; } } -- cgit v1.2.3