aboutsummaryrefslogtreecommitdiffstats
path: root/abstractmetabuilder.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-07-27 18:04:59 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:17 -0300
commitb3644ccd1f52073ed70ce8b6e0ed4f58a07632d7 (patch)
tree9b444413f35daa050994b9133c29ad5410c5a0e0 /abstractmetabuilder.cpp
parent1a989347e029e9f90b5c2c727243a02d1c1aa496 (diff)
Copied AbstractMetaBuilder::decideUsagePattern() method to AbstractMetaType.
The decideUsagePattern on AbstractMetaBuilder now calls the new AbstractMetaType's method.
Diffstat (limited to 'abstractmetabuilder.cpp')
-rw-r--r--abstractmetabuilder.cpp85
1 files changed, 1 insertions, 84 deletions
diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp
index f4a469f89..41e4abe9e 100644
--- a/abstractmetabuilder.cpp
+++ b/abstractmetabuilder.cpp
@@ -2233,90 +2233,7 @@ int AbstractMetaBuilder::findOutValueFromString(const QString& stringValue, bool
void AbstractMetaBuilder::decideUsagePattern(AbstractMetaType *metaType)
{
- const TypeEntry* type = metaType->typeEntry();
-
- if (type->isPrimitive() && (!metaType->actualIndirections()
- || (metaType->isConstant() && metaType->isReference() && !metaType->indirections()))) {
- metaType->setTypeUsagePattern(AbstractMetaType::PrimitivePattern);
-
- } else if (type->isVoid()) {
- metaType->setTypeUsagePattern(AbstractMetaType::NativePointerPattern);
-
- } else if (type->isVarargs()) {
- metaType->setTypeUsagePattern(AbstractMetaType::VarargsPattern);
-
- } else if (type->isString()
- && metaType->indirections() == 0
- && (metaType->isConstant() == metaType->isReference()
- || metaType->isConstant())) {
- metaType->setTypeUsagePattern(AbstractMetaType::StringPattern);
-
- } else if (type->isChar()
- && !metaType->indirections()
- && metaType->isConstant() == metaType->isReference()) {
- metaType->setTypeUsagePattern(AbstractMetaType::CharPattern);
-
- } else if (type->isJObjectWrapper()
- && !metaType->indirections()
- && metaType->isConstant() == metaType->isReference()) {
- metaType->setTypeUsagePattern(AbstractMetaType::JObjectWrapperPattern);
-
- } else if (type->isVariant()
- && !metaType->indirections()
- && metaType->isConstant() == metaType->isReference()) {
- metaType->setTypeUsagePattern(AbstractMetaType::VariantPattern);
-
- } else if (type->isEnum() && !metaType->actualIndirections()) {
- metaType->setTypeUsagePattern(AbstractMetaType::EnumPattern);
-
- } else if (type->isObject()
- && metaType->indirections() == 0
- && metaType->isReference()) {
- if (((ComplexTypeEntry*) type)->isQObject())
- metaType->setTypeUsagePattern(AbstractMetaType::QObjectPattern);
- else
- metaType->setTypeUsagePattern(AbstractMetaType::ObjectPattern);
-
- } else if (type->isObject()
- && metaType->indirections() == 1) {
- if (((ComplexTypeEntry*) type)->isQObject())
- metaType->setTypeUsagePattern(AbstractMetaType::QObjectPattern);
- else
- metaType->setTypeUsagePattern(AbstractMetaType::ObjectPattern);
-
- // const-references to pointers can be passed as pointers
- if (metaType->isReference() && metaType->isConstant()) {
- metaType->setReference(false);
- metaType->setConstant(false);
- }
-
- } else if (type->isContainer() && !metaType->indirections()) {
- metaType->setTypeUsagePattern(AbstractMetaType::ContainerPattern);
-
- } else if (type->isTemplateArgument()) {
-
- } else if (type->isFlags()
- && !metaType->indirections()
- && (metaType->isConstant() == metaType->isReference())) {
- metaType->setTypeUsagePattern(AbstractMetaType::FlagsPattern);
-
- } else if (type->isArray()) {
- metaType->setTypeUsagePattern(AbstractMetaType::ArrayPattern);
-
- } else if (type->isThread()) {
- Q_ASSERT(metaType->indirections() == 1);
- metaType->setTypeUsagePattern(AbstractMetaType::ThreadPattern);
- } else if (type->isValue()) {
- if (metaType->indirections() == 1) {
- metaType->setTypeUsagePattern(AbstractMetaType::ValuePointerPattern);
- } else {
- metaType->setTypeUsagePattern(AbstractMetaType::ValuePattern);
- }
- } else {
- metaType->setTypeUsagePattern(AbstractMetaType::NativePointerPattern);
- ReportHandler::debugFull(QString("native pointer pattern for '%1'")
- .arg(metaType->cppSignature()));
- }
+ metaType->decideUsagePattern();
}
QString AbstractMetaBuilder::fixDefaultValue(ArgumentModelItem item, AbstractMetaType* type,