[Kde-bindings] KDE/kdebindings
Richard Dale
rdale at foton.es
Wed Nov 25 19:15:12 UTC 2009
On Wednesday 25 November 2009 07:10:32 pm Arno Rehn wrote:
> SVN commit 1054240 by arnorehn:
>
> Add mf_virtual and mf_purevirtual method flags to SMOKE and make generator
> flag the methods accordingly.
>
> CCMAIL: kde-bindings at kde.org
>
>
>
> M +10 -0 generator/generators/smoke/writeSmokeDataFile.cpp
> M +3 -1 smoke/smoke.h
>
>
> --- trunk/KDE/kdebindings/generator/generators/smoke/writeSmokeDataFile.cpp
> #1054239:1054240 @@ -451,6 +451,8 @@
> if (isExternal && !declaredVirtualMethods.contains(klass))
> continue;
>
> + QList<const Method*> virtualMethods =
> Util::virtualMethodsForClass(klass); +
> int xcall_index = 1;
> foreach (const Method& meth, klass->methods()) {
> if (isExternal &&
> !declaredVirtualMethods[klass].contains(&meth)) @@ -486,6 +488,14 @@
> flags += "|Smoke::mf_attribute";
> if (meth.isQPropertyAccessor())
> flags += "|Smoke::mf_property";
> +
> + // Simply checking for flags() & Method::Virtual won't be
> enough, because methods can override virtuals without being +
> // declared 'virtual' themselves (and they're still virtual, then). +
> if (virtualMethods.contains(&meth))
> + flags += "|Smoke::mf_virtual";
> + if (meth.flags() & Method::PureVirtual)
> + flags += "|Smoke::mf_purevirtual";
> +
> flags.replace("0|", "");
> out << flags;
> if (meth.type() == Type::Void) {
> --- trunk/KDE/kdebindings/smoke/smoke.h #1054239:1054240
> @@ -131,7 +131,9 @@
> mf_dtor = 0x40,
> mf_protected = 0x80,
> mf_attribute = 0x100,
> - mf_property = 0x200
> + mf_property = 0x200,
> + mf_virtual = 0x400,
> + mf_purevirtual = 0x800
> };
> /**
> * Describe one method of one class.
Looks good. Would it be possible to have an mf_signal attribute too? That
would be useful for the QtScript bindings which need to do something different
for calls on signal methods.
-- Richard
More information about the Kde-bindings
mailing list