aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/cplusplus/Symbols.h
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2010-12-06 12:16:45 +0100
committerChristian Kamm <christian.d.kamm@nokia.com>2011-01-04 15:58:22 +0100
commit0edd253b615b485913d2bbb504a146f6aaa89c04 (patch)
tree9c003a537c7bf3ee9b0b5982b52423a8ea79830c /src/shared/cplusplus/Symbols.h
parent633c254986477e1bf4259d7b316a47eb0d1fa806 (diff)
C++: Add QtPropertyDeclaration symbol.
Reviewed-by: Roberto Raggi
Diffstat (limited to 'src/shared/cplusplus/Symbols.h')
-rw-r--r--src/shared/cplusplus/Symbols.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Symbols.h b/src/shared/cplusplus/Symbols.h
index e7a2dec704..7de9b2249e 100644
--- a/src/shared/cplusplus/Symbols.h
+++ b/src/shared/cplusplus/Symbols.h
@@ -520,6 +520,52 @@ private:
std::vector<BaseClass *> _baseClasses;
};
+class CPLUSPLUS_EXPORT QtPropertyDeclaration: public Symbol
+{
+public:
+ enum Flag {
+ ReadFunction = 1 << 0,
+ WriteFunction = 1 << 1,
+ ResetFunction = 1 << 2,
+ NotifyFunction = 1 << 3,
+ DesignableFlag = 1 << 4,
+ DesignableFunction = 1 << 5,
+ ScriptableFlag = 1 << 6,
+ ScriptableFunction = 1 << 7,
+ StoredFlag = 1 << 8,
+ StoredFunction = 1 << 9,
+ UserFlag = 1 << 10,
+ UserFunction = 1 << 11,
+ ConstantFlag = 1 << 12,
+ FinalFlag = 1 << 13,
+ };
+
+public:
+ QtPropertyDeclaration(TranslationUnit *translationUnit, unsigned sourceLocation, const Name *name);
+ virtual ~QtPropertyDeclaration();
+
+ void setType(const FullySpecifiedType &type);
+
+ void setFlags(int flags);
+ int flags() const;
+
+ // Symbol's interface
+ virtual FullySpecifiedType type() const;
+
+ virtual const QtPropertyDeclaration *asQtPropertyDeclaration() const
+ { return this; }
+
+ virtual QtPropertyDeclaration *asQtPropertyDeclaration()
+ { return this; }
+
+protected:
+ virtual void visitSymbol0(SymbolVisitor *visitor);
+
+private:
+ FullySpecifiedType _type;
+ int _flags;
+};
+
class CPLUSPLUS_EXPORT ObjCBaseClass: public Symbol
{
public: