diff options
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(); +} + + |