diff options
author | Martin Smith <msmith@trolltech.com> | 2009-08-17 12:28:45 (GMT) |
---|---|---|
committer | Martin Smith <msmith@trolltech.com> | 2009-08-17 12:30:02 (GMT) |
commit | 1ca6a2f3174fdfbbe080af920ab75558a1a9247e (patch) | |
tree | 706c3a4beb1b3a13be73ee3e28c40226ef150b29 /tools/qdoc3 | |
parent | 38f41726cf3a76a57ca15f7cc82e56a5aa2c5a1c (diff) | |
download | Qt-1ca6a2f3174fdfbbe080af920ab75558a1a9247e.zip Qt-1ca6a2f3174fdfbbe080af920ab75558a1a9247e.tar.gz Qt-1ca6a2f3174fdfbbe080af920ab75558a1a9247e.tar.bz2 |
qdoc: Fixed the bug that made reporting NOTIFY signals not work.
The signal was being associated with a particular property,
but in many classes, the NOTIFY signal applies to multiple
properties. Added a new function to the PropertyNode class
that adds the signal function without associating it with
any property.
Task-number: 259071
Diffstat (limited to 'tools/qdoc3')
-rw-r--r-- | tools/qdoc3/cppcodeparser.cpp | 4 | ||||
-rw-r--r-- | tools/qdoc3/node.h | 6 | ||||
-rw-r--r-- | tools/qdoc3/tree.cpp | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp index ebe5ec9..7519ff1 100644 --- a/tools/qdoc3/cppcodeparser.cpp +++ b/tools/qdoc3/cppcodeparser.cpp @@ -1734,11 +1734,11 @@ bool CppCodeParser::matchProperty(InnerNode *parent) property->setDesignable(value.toLower() == "true"); else if (key == "RESET") tre->addPropertyFunction(property, value, PropertyNode::Resetter); -#if 0 + else if (key == "NOTIFY") { tre->addPropertyFunction(property, value, PropertyNode::Notifier); } -#endif + } match(Tok_RightParen); return true; diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h index 2a1ca05..0cddf51 100644 --- a/tools/qdoc3/node.h +++ b/tools/qdoc3/node.h @@ -598,6 +598,7 @@ class PropertyNode : public LeafNode void setDataType(const QString& dataType) { dt = dataType; } void addFunction(FunctionNode *function, FunctionRole role); + void addSignal(FunctionNode *function, FunctionRole role); void setStored(bool stored) { sto = toTrool(stored); } void setDesignable(bool designable) { des = toTrool(designable); } void setOverriddenFrom(const PropertyNode *baseProperty); @@ -641,6 +642,11 @@ inline void PropertyNode::addFunction(FunctionNode *function, FunctionRole role) function->setAssociatedProperty(this); } +inline void PropertyNode::addSignal(FunctionNode *function, FunctionRole role) +{ + funcs[(int)role].append(function); +} + inline NodeList PropertyNode::functions() const { NodeList list; diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp index b42701f..7d488df 100644 --- a/tools/qdoc3/tree.cpp +++ b/tools/qdoc3/tree.cpp @@ -501,7 +501,7 @@ void Tree::resolveProperties() } else if (function->name() == resetterName) { property->addFunction(function, PropertyNode::Resetter); } else if (function->name() == notifierName) { - property->addFunction(function, PropertyNode::Notifier); + property->addSignal(function, PropertyNode::Notifier); } } } |