summaryrefslogtreecommitdiff
path: root/src/qdoc/cppcodeparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/cppcodeparser.cpp')
-rw-r--r--src/qdoc/cppcodeparser.cpp43
1 files changed, 26 insertions, 17 deletions
diff --git a/src/qdoc/cppcodeparser.cpp b/src/qdoc/cppcodeparser.cpp
index 29f6a07d4..8e5d279e1 100644
--- a/src/qdoc/cppcodeparser.cpp
+++ b/src/qdoc/cppcodeparser.cpp
@@ -375,7 +375,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc,
func = 0;
}
else {
- func->setMetaness(FunctionNode::MacroWithParams);
+ func->setMetaness(Node::MacroWithParams);
QVector<Parameter> params = func->parameters();
for (int i = 0; i < params.size(); ++i) {
Parameter &param = params[i];
@@ -391,7 +391,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc,
func = new FunctionNode(qdb_->primaryTreeRoot(), arg.first);
func->setAccess(Node::Public);
func->setLocation(doc.startLocation());
- func->setMetaness(FunctionNode::MacroWithoutParams);
+ func->setMetaness(Node::MacroWithoutParams);
}
else {
doc.location().warning(tr("Invalid syntax in '\\%1'").arg(COMMAND_MACRO));
@@ -1050,7 +1050,7 @@ void CppCodeParser::reset()
tokenizer = 0;
tok = 0;
access = Node::Public;
- metaness_ = FunctionNode::Plain;
+ metaness_ = Node::Plain;
lastPath_.clear();
physicalModuleName.clear();
}
@@ -1647,12 +1647,24 @@ bool CppCodeParser::matchFunctionDecl(Aggregate *parent,
if (matched_QT_DEPRECATED)
func->setStatus(Node::Deprecated);
if (matched_explicit) { /* What can be done? */ }
+ if (!pvect.isEmpty()) {
+ func->setParameters(pvect);
+ }
func->setMetaness(metaness_);
if (parent) {
- if (name == parent->name())
- func->setMetaness(FunctionNode::Ctor);
+ if (name == parent->name()) {
+ Node::Metaness m = Node::Ctor;
+ if (!pvect.isEmpty()) {
+ for (int i=0; i<pvect.size(); i++) {
+ m = pvect.at(i).metaness(name);
+ if (m != Node::Ctor)
+ break;
+ }
+ }
+ func->setMetaness(m);
+ }
else if (name.startsWith(QLatin1Char('~')))
- func->setMetaness(FunctionNode::Dtor);
+ func->setMetaness(Node::Dtor);
}
func->setStatic(matched_static);
func->setConst(matchedConst);
@@ -1662,9 +1674,6 @@ bool CppCodeParser::matchFunctionDecl(Aggregate *parent,
func->setFinal(matchFinal);
if (isQPrivateSignal)
func->setPrivateSignal();
- if (!pvect.isEmpty()) {
- func->setParameters(pvect);
- }
}
if (parentPathPtr != 0)
*parentPathPtr = parentPath;
@@ -1774,8 +1783,8 @@ bool CppCodeParser::matchClassDecl(Aggregate *parent,
Node::Access outerAccess = access;
access = isClass ? Node::Private : Node::Public;
- FunctionNode::Metaness outerMetaness = metaness_;
- metaness_ = FunctionNode::Plain;
+ Node::Metaness outerMetaness = metaness_;
+ metaness_ = Node::Plain;
bool matches = (matchDeclList(classe) && match(Tok_RightBrace) &&
match(Tok_Semicolon));
@@ -2156,28 +2165,28 @@ bool CppCodeParser::matchDeclList(Aggregate *parent)
case Tok_private:
readToken();
access = Node::Private;
- metaness_ = FunctionNode::Plain;
+ metaness_ = Node::Plain;
break;
case Tok_protected:
readToken();
access = Node::Protected;
- metaness_ = FunctionNode::Plain;
+ metaness_ = Node::Plain;
break;
case Tok_public:
readToken();
access = Node::Public;
- metaness_ = FunctionNode::Plain;
+ metaness_ = Node::Plain;
break;
case Tok_signals:
case Tok_Q_SIGNALS:
readToken();
access = Node::Public;
- metaness_ = FunctionNode::Signal;
+ metaness_ = Node::Signal;
break;
case Tok_slots:
case Tok_Q_SLOTS:
readToken();
- metaness_ = FunctionNode::Slot;
+ metaness_ = Node::Slot;
break;
case Tok_Q_OBJECT:
readToken();
@@ -2411,7 +2420,7 @@ bool CppCodeParser::matchDocsAndStuff()
generated by moc.
*/
node = qdb_->findFunctionNode(parentPath, clone);
- if (node != 0 && node->metaness() != FunctionNode::Signal)
+ if (node != 0 && node->metaness() != Node::Signal)
node->setLocation(clone->location());
delete clone;
}