summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/node.h
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@digia.com>2015-08-06 13:47:44 +0200
committerMartin Smith <martin.smith@digia.com>2015-08-16 14:47:58 +0000
commit8c5ce68fcf09d128072c31d74878fcb0fd9b9c7a (patch)
tree7f548c676454ee99f6220e06f033a2a71f1b3af9 /src/tools/qdoc/node.h
parent6dde874c3203464f76170834234c026e02dc7abc (diff)
qdoc: Allow formal parameters in link targets
This update allows qdoc to handle \l commands for linking to functions, where the formal parameters are included in the link target. For example, \l {QWidget::find(QString name)} will only match a member function of QWidget that has a single parameter of type QString. The parameter name is not used in the search. Change-Id: I8a31c9a7ed632f12a0e6d8a33cbb5cd361098317 Task-number: QTBUG-47286 Reviewed-by: Martin Smith <martin.smith@digia.com>
Diffstat (limited to 'src/tools/qdoc/node.h')
-rw-r--r--src/tools/qdoc/node.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index e9816dad19..596a71b6d5 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -376,7 +376,7 @@ public:
Node* findChildNode(const QString& name, Node::Genus genus) const;
Node* findChildNode(const QString& name, NodeType type);
virtual void findChildren(const QString& name, NodeList& nodes) const Q_DECL_OVERRIDE;
- FunctionNode* findFunctionNode(const QString& name) const;
+ FunctionNode* findFunctionNode(const QString& name, const QString& params) const;
FunctionNode* findFunctionNode(const FunctionNode* clone) const;
void addInclude(const QString &include);
void setIncludes(const QStringList &includes);
@@ -815,12 +815,11 @@ inline void EnumNode::setFlagsType(TypedefNode* t)
t->setAssociatedEnum(this);
}
-
class Parameter
{
public:
Parameter() {}
- Parameter(const QString& leftType,
+ Parameter(const QString& dataType,
const QString& rightType = QString(),
const QString& name = QString(),
const QString& defaultValue = QString());
@@ -830,21 +829,24 @@ public:
void setName(const QString& name) { name_ = name; }
- bool hasType() const { return leftType_.length() + rightType_.length() > 0; }
- const QString& leftType() const { return leftType_; }
+ bool hasType() const { return dataType_.length() + rightType_.length() > 0; }
+ const QString& dataType() const { return dataType_; }
const QString& rightType() const { return rightType_; }
const QString& name() const { return name_; }
const QString& defaultValue() const { return defaultValue_; }
QString reconstruct(bool value = false) const;
-private:
- QString leftType_;
- QString rightType_;
+ public:
+ QString dataType_;
+ QString rightType_; // mws says remove this 04/08/2015
QString name_;
QString defaultValue_;
};
+//friend class QTypeInfo<Parameter>;
+//Q_DECLARE_TYPEINFO(Parameter, Q_MOVABLE_TYPE);
+
class FunctionNode : public LeafNode
{
public:
@@ -874,7 +876,7 @@ public:
void setOverloadNumber(unsigned char n) { overloadNumber_ = n; }
void setReimplemented(bool b);
void addParameter(const Parameter& parameter);
- inline void setParameters(const QList<Parameter>& parameters);
+ inline void setParameters(const QVector<Parameter>& parameters);
void borrowParameterNames(const FunctionNode* source);
void setReimplementedFrom(FunctionNode* from);
@@ -907,7 +909,7 @@ public:
virtual bool isJsMethod() const Q_DECL_OVERRIDE {
return (type() == Node::QmlMethod) && (genus() == Node::JS);
}
- const QList<Parameter>& parameters() const { return parameters_; }
+ const QVector<Parameter>& parameters() const { return parameters_; }
void clearParams() { parameters_.clear(); }
QStringList parameterNames() const;
QString rawParameters(bool names = false, bool values = false) const;
@@ -957,7 +959,7 @@ private:
bool privateSignal_: 1;
bool overload_ : 1;
unsigned char overloadNumber_;
- QList<Parameter> parameters_;
+ QVector<Parameter> parameters_;
const FunctionNode* reimplementedFrom_;
PropNodeList associatedProperties_;
QList<FunctionNode*> reimplementedBy_;
@@ -1030,7 +1032,7 @@ private:
const PropertyNode* overrides_;
};
-inline void FunctionNode::setParameters(const QList<Parameter> &p)
+inline void FunctionNode::setParameters(const QVector<Parameter> &p)
{
parameters_ = p;
}