<br><div class="gmail_quote">Hi richard,<br><br>Do you think this is corrected now and if it is in which release will it be available ?<br><br>Thanks<br>Cedric<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div></div><div class="h5"><br><br><div class="gmail_quote">On Tue, Aug 18, 2009 at 2:59 PM, Richard Dale <span dir="ltr">&lt;<a href="mailto:richard.j.dale@gmail.com" target="_blank">richard.j.dale@gmail.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>On Tue, Aug 18, 2009 at 1:45 PM, Cédric&lt;<a href="mailto:kde@xfou.com" target="_blank">kde@xfou.com</a>&gt; wrote:<br>




&gt; Thanks Richard,<br>
&gt;<br>
&gt; That seems to be the problem.<br>
&gt; What I was telling in my earlier mail is that the javascript binding seems<br>
&gt; to have a similar problem with plasmoid.dataEngine(&quot;engine<br>
&gt; name&quot;).serviceForSource(&quot;source name&quot;) and maybe they solved it by<br>
&gt; implementing the service function: plasmoid.service(&quot;engine name&quot;, &quot;source<br>
&gt; name&quot;) (and method Plasma::Applet#service is not implemented in ruby ) .<br>
&gt;<br>
</div>I found the problem. It is a bug in how the smoke library works with<br>
overriden virtual methods in classes that are don&#39;t have bindings<br>
generated for them. In this case the &#39;TasksEngine&#39; class isn&#39;t part of<br>
the bindings, and when the serviceForSource() method is called on the<br>
DataEngine, the code to invoke it looks like this:<br>
<br>
    void x_10(Smoke::Stack x) {<br>
        // serviceForSource(const QString&amp;)<br>
        Plasma::Service* xret =<br>
this-&gt;Plasma::DataEngine::serviceForSource(*(const QString<br>
*)x[1].s_voidp);<br>
        x[0].s_class = (void*)xret;<br>
    }<br>
<br>
When it should probably look like this, and invoke the method in the<br>
TasksEngine class:<br>
<br>
    void x_10(Smoke::Stack x) {<br>
        // serviceForSource(const QString&amp;)<br>
        Plasma::Service* xret = this-&gt;serviceForSource(*(const QString<br>
*)x[1].s_voidp);<br>
        x[0].s_class = (void*)xret;<br>
    }<br>
<br>
Arno Rehn has just written a new smoke library bindings generator, and<br>
I think we need to discuss this issue and see if we can fix it in that<br>
tool.<br>
<div><div></div><div><br>
-- Richard<br>
_______________________________________________<br>
Plasma-devel mailing list<br>
<a href="mailto:Plasma-devel@kde.org" target="_blank">Plasma-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/plasma-devel" target="_blank">https://mail.kde.org/mailman/listinfo/plasma-devel</a><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>