[Kde-bindings] Some questions on kalyptus
Richard Dale
rdale at foton.es
Thu Jan 18 18:29:27 UTC 2007
On Thursday 18 January 2007 17:27, Arno Rehn wrote:
> Hi,
>
> I just looked through the code of kalyptus in order to get on
> with ".NET-2.0-ifying" and I have a few questions on the CxxToKimono
> module. First, why are so many Enums converted to int's (e.g.
> 'Qt::ToolBarAreas' => 'int'). We have these enums in C#, as far as I know,
> so why are they int's?
The items in that list are mostly Q_FLAGS, rather than enums. Which are enum
values and'd or or'd together. I don't know how to do that for a C# api, and
so for the moment they are converted to ints. But I think you're right about
Qt::ToolBarAreas, that is an enum, and so I think the code generation is
wrong for that one.
I did make a start on changing ArrayLists to List<>s so I'll check in what
I've done so far. Mainly what needs doing is changing the arraytypeslist hash
to have strings for the names of the List<> types instead of just '1' to mean
true. Then changing the code that uses it so it uses the values
like 'List<foo>' instead of ArrayList.
> Then I think I found a bug in the code generation for QApplication for Qt4.
> In the first constructor it says
>
> string[] args = new string[argv.Length + 1];
> args[0] = System.Reflection.Assembly.GetExecutingAssembly().Location;
> argv.CopyTo(args, 1);
> NewQApplication(args.Length, args);
>
> which is correct, but the others take in the "NewQApplication" line "argv"
> instead of new modified "args". This won't use the executing assembly as
> first argument. In the Qt3 version everything is right.
The methods called 'NewQApplication' aren't called directly by the Qyoto
application code, only by the public constructors. So as long as the
constructors just have an argv parameter the code is correct.
-- Richard
More information about the Kde-bindings
mailing list