summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3/node.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qdoc3/node.h')
-rw-r--r--tools/qdoc3/node.h53
1 files changed, 31 insertions, 22 deletions
diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h
index f933270..dbdc174 100644
--- a/tools/qdoc3/node.h
+++ b/tools/qdoc3/node.h
@@ -151,6 +151,7 @@ class Node
virtual bool isInnerNode() const = 0;
virtual bool isReimp() const { return false; }
+ virtual bool isFunction() const { return false; }
Type type() const { return typ; }
virtual SubType subType() const { return NoSubType; }
InnerNode *parent() const { return par; }
@@ -239,6 +240,9 @@ class InnerNode : public Node
NodeList overloads(const QString &funcName) const;
const QStringList& includes() const { return inc; }
+ QStringList primaryKeys();
+ QStringList secondaryKeys();
+
protected:
InnerNode(Type type, InnerNode *parent, const QString& name);
@@ -362,6 +366,8 @@ class QmlClassNode : public FakeNode
const ClassNode* classNode() const { return cnode; }
virtual QString fileBase() const;
+ static bool qmlOnly;
+
private:
const ClassNode* cnode;
};
@@ -369,15 +375,19 @@ class QmlClassNode : public FakeNode
class QmlPropGroupNode : public FakeNode
{
public:
- QmlPropGroupNode(QmlClassNode* parent, const QString& name);
+ QmlPropGroupNode(QmlClassNode* parent,
+ const QString& name,
+ bool attached);
virtual ~QmlPropGroupNode() { }
- const QString& element() const { return name(); }
+ const QString& element() const { return parent()->name(); }
void setDefault() { isdefault = true; }
bool isDefault() const { return isdefault; }
+ bool isAttached() const { return att; }
private:
bool isdefault;
+ bool att;
};
class QmlPropertyNode : public LeafNode
@@ -385,19 +395,23 @@ class QmlPropertyNode : public LeafNode
public:
QmlPropertyNode(QmlPropGroupNode* parent,
const QString& name,
- const QString& type);
+ const QString& type,
+ bool attached);
virtual ~QmlPropertyNode() { }
void setDataType(const QString& dataType) { dt = dataType; }
void setStored(bool stored) { sto = toTrool(stored); }
void setDesignable(bool designable) { des = toTrool(designable); }
+ void setWritable(bool writable) { wri = toTrool(writable); }
const QString &dataType() const { return dt; }
QString qualifiedDataType() const { return dt; }
bool isStored() const { return fromTrool(sto,true); }
bool isDesignable() const { return fromTrool(des,false); }
+ bool isWritable() const { return fromTrool(wri,true); }
+ bool isAttached() const { return att; }
- const QString& element() const { return parent()->name(); }
+ const QString& element() const { return static_cast<QmlPropGroupNode*>(parent())->element(); }
private:
enum Trool { Trool_True, Trool_False, Trool_Default };
@@ -408,24 +422,8 @@ class QmlPropertyNode : public LeafNode
QString dt;
Trool sto;
Trool des;
-};
-
-class QmlSignalNode : public LeafNode
-{
- public:
- QmlSignalNode(QmlClassNode* parent, const QString& name);
- virtual ~QmlSignalNode() { }
-
- const QString& element() const { return parent()->name(); }
-};
-
-class QmlMethodNode : public LeafNode
-{
- public:
- QmlMethodNode(QmlClassNode* parent, const QString& name);
- virtual ~QmlMethodNode() { }
-
- const QString& element() const { return parent()->name(); }
+ Trool wri;
+ bool att;
};
#endif
@@ -540,6 +538,7 @@ class FunctionNode : public LeafNode
enum Virtualness { NonVirtual, ImpureVirtual, PureVirtual };
FunctionNode(InnerNode *parent, const QString &name);
+ FunctionNode(Type type, InnerNode *parent, const QString &name, bool attached);
virtual ~FunctionNode() { }
void setReturnType(const QString& returnType) { rt = returnType; }
@@ -565,6 +564,7 @@ class FunctionNode : public LeafNode
bool isStatic() const { return sta; }
bool isOverload() const { return ove; }
bool isReimp() const { return reimp; }
+ bool isFunction() const { return true; }
int overloadNumber() const;
int numOverloads() const;
const QList<Parameter>& parameters() const { return params; }
@@ -576,6 +576,10 @@ class FunctionNode : public LeafNode
QStringList reconstructParams(bool values = false) const;
QString signature(bool values = false) const;
+ const QString& element() const { return parent()->name(); }
+ bool isAttached() const { return att; }
+
+ void debug() const;
private:
void setAssociatedProperty(PropertyNode *property);
@@ -596,6 +600,7 @@ class FunctionNode : public LeafNode
bool sta : 1;
bool ove : 1;
bool reimp: 1;
+ bool att: 1;
QList<Parameter> params;
const FunctionNode *rf;
const PropertyNode *ap;
@@ -616,6 +621,7 @@ class PropertyNode : public LeafNode
void addSignal(FunctionNode *function, FunctionRole role);
void setStored(bool stored) { sto = toTrool(stored); }
void setDesignable(bool designable) { des = toTrool(designable); }
+ void setWritable(bool writable) { wri = toTrool(writable); }
void setOverriddenFrom(const PropertyNode *baseProperty);
const QString &dataType() const { return dt; }
@@ -628,6 +634,7 @@ class PropertyNode : public LeafNode
NodeList notifiers() const { return functions(Notifier); }
bool isStored() const { return fromTrool(sto, storedDefault()); }
bool isDesignable() const { return fromTrool(des, designableDefault()); }
+ bool isWritable() const { return fromTrool(wri, writableDefault()); }
const PropertyNode *overriddenFrom() const { return overrides; }
private:
@@ -638,11 +645,13 @@ class PropertyNode : public LeafNode
bool storedDefault() const { return true; }
bool designableDefault() const { return !setters().isEmpty(); }
+ bool writableDefault() const { return !setters().isEmpty(); }
QString dt;
NodeList funcs[NumFunctionRoles];
Trool sto;
Trool des;
+ Trool wri;
const PropertyNode *overrides;
};