diff -r ef0373b55136 -r 758a864f9613 tools/qdoc3/cppcodemarker.cpp --- a/tools/qdoc3/cppcodemarker.cpp Fri Sep 17 08:34:18 2010 +0300 +++ b/tools/qdoc3/cppcodemarker.cpp Mon Oct 04 01:19:32 2010 +0300 @@ -1127,7 +1127,8 @@ Currently, it only handles QML property groups. */ QList
CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, - SynopsisStyle style) + SynopsisStyle style, + const Tree* tree) { QList
sections; if (qmlClassNode) { @@ -1244,6 +1245,48 @@ append(sections,qmlmethods); append(sections,qmlattachedmethods); } + else { + FastSection all(qmlClassNode,"","","member","members"); + + QStack stack; + stack.push(qmlClassNode); + + while (!stack.isEmpty()) { + const QmlClassNode* ancestorClass = stack.pop(); + + NodeList::ConstIterator c = ancestorClass->childNodes().begin(); + while (c != ancestorClass->childNodes().end()) { + // if ((*c)->access() != Node::Private) + if ((*c)->subType() == Node::QmlPropertyGroup) { + const QmlPropGroupNode* qpgn = static_cast(*c); + NodeList::ConstIterator p = qpgn->childNodes().begin(); + while (p != qpgn->childNodes().end()) { + if ((*p)->type() == Node::QmlProperty) { + insert(all,*p,style,Okay); + } + ++p; + } + } + else + insert(all,*c,style,Okay); + ++c; + } + + if (!ancestorClass->links().empty()) { + if (ancestorClass->links().contains(Node::InheritsLink)) { + QPair linkPair; + linkPair = ancestorClass->links()[Node::InheritsLink]; + QStringList strList(linkPair.first); + const Node* n = tree->findNode(strList,Node::Fake); + if (n && n->subType() == Node::QmlClass) { + const QmlClassNode* qcn = static_cast(n); + stack.prepend(qcn); + } + } + } + } + append(sections, all); + } } return sections;