Web lists-archives.com

Re: D-Bus signal parameter and incorrect xml generation




El dimarts, 16 d’agost de 2016, a les 10:55:46 CEST, Aditya Sharma va 
escriure:
> On Tue, Aug 16, 2016 at 2:53 AM, Albert Astals Cid <aacid@xxxxxxx> wrote:
> > El dimecres, 10 d’agost de 2016, a les 23:00:19 CEST, Aditya Sharma va
> > 
> > escriure:
> > > Hey !
> > > 
> > > I'm trying to pass a QVariantMap as a D-Bus signal parameter so that the
> > > intended application gets the updated data every time that signal is
> > > emitted.
> > 
> > Do you have a branch/repository or sample code where this happens? Much
> > easier
> > to debug if the code is ready for tetsing than if we have to re-create the
> > problem scenario you have from scratch.
> 
> Yes. Just try to make/compile the "devel" branch of this repository:
> https://github.com/g33kyaditya/KDE-Now
> That should give you the error I am talking about.

You seem to have stumbled upon 
https://bugreports.qt.io/browse/QTBUG-21577

Seems you'll either have to refactor your code or fix Qt.

Cheers,
  Albert

> 
> 
> Thanks
> Aditya
> 
> > Cheers,
> > 
> >   Albert
> >   
> > > I have a class A, in which I have a Q_SIGNAL, as:
> > > 
> > > void update(QVariantMap map)
> > > 
> > > Inside CMakeLists.txt, I call qt5_generate_dbus_interface with OPTIONS
> > 
> > -M -S
> > 
> > > The generated XML snippet is something like this :-
> > > 
> > >     <signal name="update">
> > >     
> > >       <arg name="map" type="a{sv}" direction="out"/>
> > >       <annotation name="org.qtproject.QtDBus.QtTypeName.Out0"
> > > 
> > > value="QVariantMap"/>
> > > 
> > > 
> > > Further in CMake, I do a qt5_add_dbus_adaptor on the generated xml file.
> > 
> > On
> > 
> > > compilation, I get the following error although (and make fails):
> > > 
> > > " You should add <annotation name="org.qtproject.QtDBus.QtTypeName.In0"
> > > value="<type>"/> to the XML description "
> > > 
> > > 
> > > (Notice the In0 and Out0 in the two annotations)
> > > 
> > > 
> > > Now, I proceeded and did what the compilation error said, and changed
> > > the
> > > annotation accordingly in the signal. And everything worked.
> > > 
> > > Does anyone have an idea, what's happening ? And why it's happening ?
> > > Should I just use this xml file as such, instead of generating it during
> > > make ?
> > > 
> > > 
> > > Thanks
> > > Aditya