summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/node.h
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@digia.com>2015-06-03 14:18:51 +0200
committerMartin Smith <martin.smith@digia.com>2015-06-10 12:47:02 +0000
commitd884420b94abc637b2fcef6585a1fb5c93b69c2c (patch)
treebb229430f4c1ec3b986423994ca4bd04ef6e8fa4 /src/tools/qdoc/node.h
parent9b58fe5c264cabe6912bb4fb7b045c2aecd98cb7 (diff)
qdoc: Improve documentation for properties
This update changes how qdoc handles getter, setter, resetter, and notifier functions for properties. With this update, if you provide documentation for any of these functions associated with a property, links to that function will go to the documentation for that function, instead of to the associated property. Additionally, the documentation for the function will have a note added, e.g. "Note: Notifier signal for property fubar," where the fubar property name is a link to the documentation for property fubar. Change-Id: I1f821fd4a6c2de142da4718ef3bdde314dc59627 Task-number: QTBUG-45620 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Topi Reiniƶ <topi.reinio@digia.com>
Diffstat (limited to 'src/tools/qdoc/node.h')
-rw-r--r--src/tools/qdoc/node.h24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index f78da0e131..f852e480a6 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -59,6 +59,7 @@ class CollectionNode;
class QmlPropertyNode;
typedef QList<Node*> NodeList;
+typedef QList<PropertyNode*> PropNodeList;
typedef QMap<QString, Node*> NodeMap;
typedef QMultiMap<QString, Node*> NodeMultiMap;
typedef QPair<int, int> NodeTypePair;
@@ -202,6 +203,7 @@ public:
virtual bool isJsType() const { return false; }
virtual bool isQmlBasicType() const { return false; }
virtual bool isJsBasicType() const { return false; }
+ virtual bool isEnumType() const { return false; }
virtual bool isExample() const { return false; }
virtual bool isExampleFile() const { return false; }
virtual bool isHeaderFile() const { return false; }
@@ -297,7 +299,7 @@ public:
void clearRelated() { relatesTo_ = 0; }
- QString guid() const;
+ //QString guid() const;
QString extractClassName(const QString &string) const;
virtual QString qmlTypeName() const { return name_; }
virtual QString qmlFullBaseName() const { return QString(); }
@@ -318,7 +320,7 @@ public:
virtual void setOutputSubdirectory(const QString& t) { outSubDir_ = t; }
QString fullDocumentName() const;
static QString cleanId(const QString &str);
- QString idForNode() const;
+ //QString idForNode() const;
static FlagValue toFlagValue(bool b);
static bool fromFlagValue(FlagValue fv, bool defaultValue);
@@ -357,7 +359,7 @@ private:
QString since_;
QString templateStuff_;
QString reconstitutedBrief_;
- mutable QString uuid_;
+ //mutable QString uuid_;
QString outSubDir_;
static QStringMap operators_;
static int propertyGroupCount_;
@@ -776,6 +778,7 @@ public:
void addItem(const EnumItem& item);
void setFlagsType(TypedefNode* typedeff);
bool hasItem(const QString &name) const { return names_.contains(name); }
+ virtual bool isEnumType() const Q_DECL_OVERRIDE { return true; }
const QList<EnumItem>& items() const { return items_; }
Access itemAccess(const QString& name) const;
@@ -908,8 +911,12 @@ public:
QString rawParameters(bool names = false, bool values = false) const;
const FunctionNode* reimplementedFrom() const { return reimplementedFrom_; }
const QList<FunctionNode*> &reimplementedBy() const { return reimplementedBy_; }
- const PropertyNode* associatedProperty() const { return associatedProperty_; }
+ const PropNodeList& associatedProperties() const { return associatedProperties_; }
const QStringList& parentPath() const { return parentPath_; }
+ bool hasAssociatedProperties() const { return !associatedProperties_.isEmpty(); }
+ bool hasOneAssociatedProperty() const { return (associatedProperties_.size() == 1); }
+ PropertyNode* firstAssociatedProperty() const { return associatedProperties_[0]; }
+ bool hasActiveAssociatedProperty() const;
QStringList reconstructParameters(bool values = false) const;
QString signature(bool values = false) const;
@@ -932,7 +939,7 @@ public:
void debug() const;
private:
- void setAssociatedProperty(PropertyNode* property);
+ void addAssociatedProperty(PropertyNode* property);
friend class Aggregate;
friend class PropertyNode;
@@ -950,7 +957,7 @@ private:
unsigned char overloadNumber_;
QList<Parameter> parameters_;
const FunctionNode* reimplementedFrom_;
- const PropertyNode* associatedProperty_;
+ PropNodeList associatedProperties_;
QList<FunctionNode*> reimplementedBy_;
};
@@ -987,6 +994,7 @@ public:
NodeList setters() const { return functions(Setter); }
NodeList resetters() const { return functions(Resetter); }
NodeList notifiers() const { return functions(Notifier); }
+ FunctionRole role(const FunctionNode* fn) const;
bool isStored() const { return fromFlagValue(stored_, storedDefault()); }
bool isDesignable() const { return fromFlagValue(designable_, designableDefault()); }
bool isScriptable() const { return fromFlagValue(scriptable_, scriptableDefault()); }
@@ -1028,13 +1036,13 @@ inline void FunctionNode::setParameters(const QList<Parameter> &p)
inline void PropertyNode::addFunction(FunctionNode* function, FunctionRole role)
{
functions_[(int)role].append(function);
- function->setAssociatedProperty(this);
+ function->addAssociatedProperty(this);
}
inline void PropertyNode::addSignal(FunctionNode* function, FunctionRole role)
{
functions_[(int)role].append(function);
- function->setAssociatedProperty(this);
+ function->addAssociatedProperty(this);
}
inline NodeList PropertyNode::functions() const