summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3/cppcodemarker.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@nokia.com>2010-08-24 13:09:04 (GMT)
committerGunnar Sletta <gunnar.sletta@nokia.com>2010-08-24 13:09:04 (GMT)
commitf58296de0d88f1b7f58efbabbb12a9e8afe6828c (patch)
tree436b343e8a749b3fcff47c8cab0ddcecc35cddf8 /tools/qdoc3/cppcodemarker.cpp
parentacf678e57ed088f3e56a551cac6c7c3322005750 (diff)
parent7a5fa8af2d0c3329dd1962d6b053388a960f8305 (diff)
downloadQt-f58296de0d88f1b7f58efbabbb12a9e8afe6828c.zip
Qt-f58296de0d88f1b7f58efbabbb12a9e8afe6828c.tar.gz
Qt-f58296de0d88f1b7f58efbabbb12a9e8afe6828c.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7
Diffstat (limited to 'tools/qdoc3/cppcodemarker.cpp')
-rw-r--r--tools/qdoc3/cppcodemarker.cpp45
1 files changed, 44 insertions, 1 deletions
diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp
index 562e92b..3615a84 100644
--- a/tools/qdoc3/cppcodemarker.cpp
+++ b/tools/qdoc3/cppcodemarker.cpp
@@ -1127,7 +1127,8 @@ QString CppCodeMarker::addMarkUp(const QString& protectedCode,
Currently, it only handles QML property groups.
*/
QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode,
- SynopsisStyle style)
+ SynopsisStyle style,
+ const Tree* tree)
{
QList<Section> sections;
if (qmlClassNode) {
@@ -1244,6 +1245,48 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode,
append(sections,qmlmethods);
append(sections,qmlattachedmethods);
}
+ else {
+ FastSection all(qmlClassNode,"","","member","members");
+
+ QStack<const QmlClassNode*> 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<const QmlPropGroupNode*>(*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<QString,QString> 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<const QmlClassNode*>(n);
+ stack.prepend(qcn);
+ }
+ }
+ }
+ }
+ append(sections, all);
+ }
}
return sections;