diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-08-11 14:08:55 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-08-11 14:34:09 -0300 |
commit | 16e7b284c2c93a18bc181296f7486baf13ab9f1f (patch) | |
tree | 6f1b776c15743afc94598f64f3d258eb854f6f63 | |
parent | 12358699d6ad2e190645936782bf442193de7f72 (diff) |
Take care to remove only the first const and ref when translate types.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>,
Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r-- | generator.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/generator.cpp b/generator.cpp index 3c0b2ec15..0f56b450e 100644 --- a/generator.cpp +++ b/generator.cpp @@ -294,10 +294,16 @@ QString Generator::translateType(const AbstractMetaType *cType, s = cType->cppSignature(); } else { s = cType->cppSignature(); - if (cType->isConstant() && (options & Generator::ExcludeConst)) - s.replace("const", ""); - if (cType->isReference() && (options & Generator::ExcludeReference)) - s.replace("&", ""); + if (cType->isConstant() && (options & Generator::ExcludeConst)) { + // Remove just the first ‘const’, avoiding removal of template attr. + int pos = s.indexOf("const"); + s.remove(pos, 5); //remove strlen(const) + } + if (cType->isReference() && (options & Generator::ExcludeReference)) { + // Remove just the first ‘&’, avoiding removal of template references. + int pos = s.indexOf("&"); + s.remove(pos, 1); //remove strlen(const) + } } return s; |