aboutsummaryrefslogtreecommitdiffstats
path: root/generator/shibokengenerator.cpp
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2011-07-14 15:25:04 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:17:02 -0300
commit96bd943d57b1864d1f5e7359b100c67d01934619 (patch)
tree75798c622ed3aa36ceb77fd6340152a2c60446ef /generator/shibokengenerator.cpp
parentb8611fcb1b7a4a1237c0025e5d57dd364d17ceae (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.cpp20
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();
+}
+
+