qdoc: Documentation for QMetaObject::Connection now appears

qdoc's faux C++ parser did not recognize class declarations
of the form:

class Name1::Name2 {
...
};

...where class Name2 is nested in class Name1. Now it does,
but this fix doesn't handle deeper nestings. doc needs a
proper C++ parser.

Task-number: QTBUG-28664
Change-Id: I5adf88cc1b2ce03f5565250734416bf9592914b5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This commit is contained in:
Martin Smith 2013-05-07 09:46:35 +02:00 committed by The Qt Project
parent 843b7f1a17
commit 0317763781

View File

@ -1598,7 +1598,11 @@ bool CppCodeParser::matchBaseList(ClassNode *classe, bool isClass)
}
/*!
Parse a C++ class, union, or struct declarion.
Parse a C++ class, union, or struct declaration.
This function only handles one level of class nesting, but that is
sufficient for Qt because there are no cases of class nesting more
than one level deep.
*/
bool CppCodeParser::matchClassDecl(InnerNode *parent,
const QString &templateStuff)
@ -1612,6 +1616,18 @@ bool CppCodeParser::matchClassDecl(InnerNode *parent,
return false;
while (tok == Tok_Ident)
readToken();
if (tok == Tok_Gulbrandsen) {
Node* n = parent->findChildNodeByNameAndType(previousLexeme(),Node::Class);
if (n) {
parent = static_cast<InnerNode*>(n);
if (parent) {
readToken();
if (tok != Tok_Ident)
return false;
readToken();
}
}
}
if (tok != Tok_Colon && tok != Tok_LeftBrace)
return false;