summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/codemarker.cpp
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@nokia.com>2012-03-13 14:46:28 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-13 18:04:12 +0100
commit0d43b8c617c4bb564e0789994de94f26506ad30b (patch)
tree49beff39362b5814f540a4289da2b92294ab05e0 /src/tools/qdoc/codemarker.cpp
parent8ac05adca706094f0cdeb997e6bb89945f8917b8 (diff)
qdoc3: qdoc now handles overloaded methods for QML
When a C++ class is documented as a QML type, it can have overloaded QML methods. These are now handled correctly by qdoc. The method list for QML types is now output with the full method signature. For signals and handlers too. Task-number: QTBUG-24670 Change-Id: If529d4136f5b480373b6ac25d2dceef15e6ea3db Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Diffstat (limited to 'src/tools/qdoc/codemarker.cpp')
-rw-r--r--src/tools/qdoc/codemarker.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/tools/qdoc/codemarker.cpp b/src/tools/qdoc/codemarker.cpp
index 791e08062b..9f22a287d2 100644
--- a/src/tools/qdoc/codemarker.cpp
+++ b/src/tools/qdoc/codemarker.cpp
@@ -288,12 +288,17 @@ QString CodeMarker::taggedNode(const Node* node)
}
tag = QLatin1String("@property");
break;
+ case Node::QmlMethod:
+ case Node::QmlSignal:
+ case Node::QmlSignalHandler:
+ tag = QLatin1String("@function");
+ break;
default:
tag = QLatin1String("@unknown");
break;
}
- return QLatin1Char('<') + tag + QLatin1Char('>') + protect(name)
- + QLatin1String("</") + tag + QLatin1Char('>');
+ return (QLatin1Char('<') + tag + QLatin1Char('>') + protect(name)
+ + QLatin1String("</") + tag + QLatin1Char('>'));
}
QString CodeMarker::taggedQmlNode(const Node* node)
@@ -373,6 +378,13 @@ QString CodeMarker::sortName(const Node *node, const QString* name)
if (node->type() == Node::Property || node->type() == Node::Variable)
return QLatin1Char('E') + nodeName;
+ if ((node->type() == Node::QmlMethod) ||
+ (node->type() == Node::QmlSignal) ||
+ (node->type() == Node::QmlSignalHandler)) {
+ const FunctionNode* func = static_cast<const FunctionNode *>(node);
+ return QLatin1String("E") + func->signature();
+ }
+
return QLatin1Char('B') + nodeName;
}