aboutsummaryrefslogtreecommitdiffstats
path: root/headergenerator.cpp
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-05-18 11:40:04 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-05-18 15:52:23 -0300
commitb71a7511d8b76922b738c0f8102a85d27b673b8e (patch)
tree11063d50c70aaf87486e8ad5a50309dfb2d94a38 /headergenerator.cpp
parent960774e63afe0a9386383c71c4831fab7c42e790 (diff)
API fixes.
* Export enums without macro * Declare virtual destructor on all classes with virtual functions * Fix extern "C" declaration scope Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>, Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'headergenerator.cpp')
-rw-r--r--headergenerator.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/headergenerator.cpp b/headergenerator.cpp
index 27086bc99..3310227f3 100644
--- a/headergenerator.cpp
+++ b/headergenerator.cpp
@@ -83,11 +83,15 @@ void HeaderGenerator::generateClass(QTextStream& s, const AbstractMetaClass* met
if (isCopyable(metaClass))
writeCopyCtor(s, metaClass);
- foreach (AbstractMetaFunction *func, filterFunctions(metaClass))
+ bool hasVirtualFunction = false;
+ foreach (AbstractMetaFunction *func, filterFunctions(metaClass)) {
+ if (func->isVirtual())
+ hasVirtualFunction = true;
writeFunction(s, func);
+ }
//destructor
- s << INDENT << (metaClass->hasVirtualDestructor() ? "virtual " : "") << "~" << wrapperName << "();" << endl;
+ s << INDENT << (metaClass->hasVirtualDestructor() || hasVirtualFunction ? "virtual " : "") << "~" << wrapperName << "();" << endl;
writeCodeSnips(s, metaClass->typeEntry()->codeSnips(), CodeSnip::Declaration, TypeSystem::NativeCode);