[Kde-bindings] Qyoto DBUS

Richard Dale rdale at foton.es
Thu Jan 11 10:36:44 UTC 2007


On Wednesday 10 January 2007 22:38, Arno Rehn wrote:
> Am Mittwoch, 10. Januar 2007 23:14 schrieb Richard Dale:
> > On Wednesday 10 January 2007 21:59, Arno Rehn wrote:
> > > > I'm not sure what can be going wrong.
> > > >
> > > > I've added some more code to print out the reply value of the dbus
> > > > call, and it looks like the code for marshalling QStringLists and
> > > > QLists of QVariants is all working fine:
> > > >
> > > > [cut]
> > >
> > > Uhmm, do you have any code you haven't committed yet? I have also tried
> > > it with a SuSE 10.2 in VMware - no chance, the error is the same.
> > > So with Gentoo and SuSE 10.2 it doesn't work.
> >
> > No I don't think so. Is it something to do with your build of the smoke
> > library - does QtRuby work with the listnames example?
>
> Hmm, the QtRuby example doesn't work, too. I had to change "require 'Qt'"
> to "require 'Qt4'" - but that shouldn't be the problem.
> I get the following error:
> /usr/lib/ruby/site_ruby/1.8/Qt/qtruby4.rb:1925:in `do_method_missing':
> undefined method `name' for nil:NilClass (NoMethodError)
>         from /usr/lib/ruby/site_ruby/1.8/Qt/qtruby4.rb:1928:in
> `do_method_missing'
>         from listnames.rb:56:in `method_missing'
>         from listnames.rb:56
>
> I don't know much about ruby, but to me it seems, as there is something
> returning Nil (or null) - so the same error as with Qyoto.
> Does this work with qt4-qtruby-1.4.7 or are there major changes to smoke in
> SVN?
No, nothing about Smoke has changed for a while. The only thing I can think of 
is to try and hack the generated Smoke sources to see what is going on. Here 
is the code that calls sessionBus(), in x_4.cpp in my version of Smoke:

    static void x_46(Smoke::Stack x) {
	// sessionBus()
	QDBusConnection xret = QDBusConnection::sessionBus();
	x[0].s_class = (void*)new QDBusConnection(xret);
    }

See if you can call 'isConnected()' on 'xret'. Is the problem that 'xret' 
can't be copied via the copy constructor? As x[0].s_class must be NULL (ie 
0), but a value type like 'xret' can't ever be NULL, it should never happen.

-- Richard



More information about the Kde-bindings mailing list