summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3/cppcodeparser.cpp
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2009-11-02 01:25:49 (GMT)
committerBea Lam <bea.lam@nokia.com>2009-11-02 01:25:49 (GMT)
commit93b624c74f0486330c1e8f3aa3fe2b24d95f54b5 (patch)
tree1845655a9228da064d7e6e3630f073de37f77a65 /tools/qdoc3/cppcodeparser.cpp
parent837f5d2385e413b89e78cd487f5a3f818c179292 (diff)
parentd01db18696a7729b0d54af76f5224aed6750f3bb (diff)
downloadQt-93b624c74f0486330c1e8f3aa3fe2b24d95f54b5.zip
Qt-93b624c74f0486330c1e8f3aa3fe2b24d95f54b5.tar.gz
Qt-93b624c74f0486330c1e8f3aa3fe2b24d95f54b5.tar.bz2
Merge branch 'kinetic-declarativeui' of scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'tools/qdoc3/cppcodeparser.cpp')
-rw-r--r--tools/qdoc3/cppcodeparser.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp
index 84ec3f4..509613a 100644
--- a/tools/qdoc3/cppcodeparser.cpp
+++ b/tools/qdoc3/cppcodeparser.cpp
@@ -799,14 +799,26 @@ Node *CppCodeParser::processTopicCommandGroup(const Doc& doc,
}
}
if (qmlPropGroup) {
- new QmlPropertyNode(qmlPropGroup,property,type,attached);
+ const ClassNode *correspondingClass = static_cast<const QmlClassNode*>(qmlPropGroup->parent())->classNode();
+ PropertyNode *correspondingProperty = 0;
+ if (correspondingClass)
+ correspondingProperty = static_cast<PropertyNode*>((Node*)correspondingClass->findNode(property, Node::Property));
+ QmlPropertyNode *qmlPropNode = new QmlPropertyNode(qmlPropGroup,property,type,attached);
+ if (correspondingProperty) {
+ bool writableList = type.startsWith("list") && correspondingProperty->dataType().endsWith('*');
+ qmlPropNode->setWritable(writableList || correspondingProperty->isWritable());
+ }
++arg;
while (arg != args.end()) {
if (splitQmlPropertyArg(doc,(*arg),type,element,property)) {
- new QmlPropertyNode(qmlPropGroup,
+ QmlPropertyNode * qmlPropNode = new QmlPropertyNode(qmlPropGroup,
property,
type,
attached);
+ if (correspondingProperty) {
+ bool writableList = type.startsWith("list") && correspondingProperty->dataType().endsWith('*');
+ qmlPropNode->setWritable(writableList || correspondingProperty->isWritable());
+ }
}
++arg;
}
@@ -1751,9 +1763,10 @@ bool CppCodeParser::matchProperty(InnerNode *parent)
if (key == "READ")
tre->addPropertyFunction(property, value, PropertyNode::Getter);
- else if (key == "WRITE")
+ else if (key == "WRITE") {
tre->addPropertyFunction(property, value, PropertyNode::Setter);
- else if (key == "STORED")
+ property->setWritable(true);
+ } else if (key == "STORED")
property->setStored(value.toLower() == "true");
else if (key == "DESIGNABLE")
property->setDesignable(value.toLower() == "true");