1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
|
/*
Copyright (c) 2010 KDAB
Author: Tobias Koenig <tokoe@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef QPROPERTYDECLARATION_H
#define QPROPERTYDECLARATION_H
#include <language/duchain/classmemberdeclaration.h>
#include <language/duchain/classmemberdeclarationdata.h>
#include "cppduchainexport.h"
namespace Cpp {
class KDEVCPPDUCHAIN_EXPORT QPropertyDeclarationData : public KDevelop::ClassMemberDeclarationData
{
public:
QPropertyDeclarationData() {}
QPropertyDeclarationData(const QPropertyDeclarationData& rhs)
: ClassMemberDeclarationData(rhs),
m_readMethod(rhs.m_readMethod),
m_writeMethod(rhs.m_writeMethod),
m_resetMethod(rhs.m_resetMethod),
m_notifyMethod(rhs.m_notifyMethod),
m_designableMethod(rhs.m_designableMethod),
m_scriptableMethod(rhs.m_scriptableMethod),
m_isDesignable(rhs.m_isDesignable),
m_isScriptable(rhs.m_isScriptable),
m_isStored(rhs.m_isStored),
m_isUser(rhs.m_isUser),
m_isConstant(rhs.m_isConstant),
m_isFinal(rhs.m_isFinal)
{
}
KDevelop::IndexedDeclaration m_readMethod;
KDevelop::IndexedDeclaration m_writeMethod;
KDevelop::IndexedDeclaration m_resetMethod;
KDevelop::IndexedDeclaration m_notifyMethod;
KDevelop::IndexedDeclaration m_designableMethod;
KDevelop::IndexedDeclaration m_scriptableMethod;
bool m_isDesignable : 1;
bool m_isScriptable : 1;
bool m_isStored : 1;
bool m_isUser : 1;
bool m_isConstant : 1;
bool m_isFinal : 1;
};
/**
* @short Represents a Q_PROPERTY macro declaration.
*/
class KDEVCPPDUCHAIN_EXPORT QPropertyDeclaration : public KDevelop::ClassMemberDeclaration
{
public:
QPropertyDeclaration(const QPropertyDeclaration& rhs);
QPropertyDeclaration(QPropertyDeclarationData& data);
QPropertyDeclaration(const KDevelop::RangeInRevision& range, KDevelop::DUContext* context);
/**
* Sets the @p declaration of the READ method of the property.
*/
void setReadMethod(const KDevelop::IndexedDeclaration &declaration);
/**
* Returns the declaration of the READ method of the property.
*/
KDevelop::IndexedDeclaration readMethod() const;
/**
* Sets the @p declaration of the WRITE method of the property.
*/
void setWriteMethod(const KDevelop::IndexedDeclaration &declaration);
/**
* Returns the declaration of the WRITE method of the property.
*/
KDevelop::IndexedDeclaration writeMethod() const;
/**
* Sets the @p declaration of the RESET method of the property.
*/
void setResetMethod(const KDevelop::IndexedDeclaration &declaration);
/**
* Returns the declaration of the RESET method of the property.
*/
KDevelop::IndexedDeclaration resetMethod() const;
/**
* Sets the @p declaration of the NOTIFY signal method of the property.
*/
void setNotifyMethod(const KDevelop::IndexedDeclaration &declaration);
/**
* Returns the declaration of the NOTIFY signal method of the property.
*/
KDevelop::IndexedDeclaration notifyMethod() const;
/**
* Sets the @p declaration of the DESIGNABLE method of the property.
*/
void setDesignableMethod(const KDevelop::IndexedDeclaration &declaration);
/**
* Returns the declaration of the DESIGNABLE method of the property.
*/
KDevelop::IndexedDeclaration designableMethod() const;
/**
* Sets the @p declaration of the SCRIPTABLE method of the property.
*/
void setScriptableMethod(const KDevelop::IndexedDeclaration &declaration);
/**
* Returns the declaration of the SCRIPTABLE method of the property.
*/
KDevelop::IndexedDeclaration scriptableMethod() const;
/**
* Sets whether the property is @p designable.
*/
void setIsDesignable(bool designable);
/**
* Returns whether the property is designable.
*/
bool isDesignable() const;
/**
* Sets whether the property is @p scriptable.
*/
void setIsScriptable(bool scriptable);
/**
* Returns whether the property is scriptable.
*/
bool isScriptable() const;
/**
* Sets whether the property value is @p stored.
*/
void setIsStored(bool stored);
/**
* Returns whether the property value is stored.
*/
bool isStored() const;
/**
* Sets whether the property can be changed by the @p user.
*/
void setIsUser(bool user);
/**
* Returns whether the property can be changed by the user.
*/
bool isUser() const;
/**
* Sets whether the property is @p constant.
*/
void setIsConstant(bool constant);
/**
* Returns whether the property is constant.
*/
bool isConstant() const;
/**
* Sets whether the property is @p final.
*/
void setIsFinal(bool final);
/**
* Returns whether the property is final.
*/
bool isFinal() const;
enum {
Identity = 75
};
private:
virtual KDevelop::Declaration* clonePrivate () const;
DUCHAIN_DECLARE_DATA(QPropertyDeclaration)
};
}
#endif // QPROPERTYDECLARATION_H
|