diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-07-14 15:25:04 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:17:02 -0300 |
commit | 96bd943d57b1864d1f5e7359b100c67d01934619 (patch) | |
tree | 75798c622ed3aa36ceb77fd6340152a2c60446ef /generator/shibokengenerator.cpp | |
parent | b8611fcb1b7a4a1237c0025e5d57dd364d17ceae (diff) |
Propagate default args modification during the overload data descisor.
Fix bug #919.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Hugo Parente Lima <hugo.pl@gmail.com>
Diffstat (limited to 'generator/shibokengenerator.cpp')
-rw-r--r-- | generator/shibokengenerator.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/generator/shibokengenerator.cpp b/generator/shibokengenerator.cpp index 1f405bbc1..a700b5a27 100644 --- a/generator/shibokengenerator.cpp +++ b/generator/shibokengenerator.cpp @@ -382,11 +382,11 @@ static QString searchForEnumScope(const AbstractMetaClass* metaClass, const QStr */ QString ShibokenGenerator::guessScopeForDefaultValue(const AbstractMetaFunction* func, const AbstractMetaArgument* arg) { - if (arg->defaultValueExpression().isEmpty()) + QString value = getDefaultValue(func, arg); + if (value.isEmpty()) return QString(); static QRegExp enumValueRegEx("^([A-Za-z_]\\w*)?$"); - QString value = arg->defaultValueExpression(); QString prefix; QString suffix; @@ -1790,3 +1790,19 @@ Generator::Options ShibokenGenerator::getConverterOptions(const AbstractMetaType return flags; } +QString ShibokenGenerator::getDefaultValue(const AbstractMetaFunction* func, const AbstractMetaArgument* arg) +{ + if (!arg->defaultValueExpression().isEmpty()) + return arg->defaultValueExpression(); + + //Check modifications + foreach(FunctionModification m, func->modifications()) { + foreach(ArgumentModification am, m.argument_mods) { + if (am.index == (arg->argumentIndex() + 1)) + return am.replacedDefaultExpression; + } + } + return QString(); +} + + |