thanks,

i declared a new Metatype GPSSatellite with << and >> operators. 

struct GPSSatellite
{
                int ID;
                bool InUse;
                unsigned int Elevation;
                unsigned int Azimuth;
                unsigned int SNR;
};

Q_DECLARE_METATYPE(GPSSatellite);
Q_DECLARE_METATYPE(QList<GPSSatellite>);


They work fine with the dBus method GetSatellites().


QDBusMessage SatelliteReply;
        SatelliteReply = GPSInterface->call("GetSatellites");
        QList<GPSSatellite> satList = qdbus_cast<QList<GPSSatellite> 
>(SatelliteReply.arguments()[0]);



my problem is that i can not connect to the SatellitesChanged signal like:

connect(GPSInterface, SIGNAL( SatellitesChanged(QDBusMessage) ) ,this, SLOT( 
handleSatellitesChanged(QDBusMessage) ) );

I have tried many Types and every time there's the error like:

Object::connect: No such signal local::Merged::SatellitesChanged(QDBusMessage)

which Type / Metatype shoud i use here?? 
(



On Sunday 23 November 2008 22:41:39 Michael 'Mickey' Lauer wrote:
> Am Sunday 23 November 2008 22:24:18 schrieb macebre:
> > Does somebody know which type I have to use there or where I could find
> > more information about this?
> > Is there a command to find out which Qt type  is send by a signal?
>
> Please consult the Qt DBus documentation, e.g.
> http://doc.trolltech.com/4.2/qdbusargument.html
>
> IIRC it says there that you have to use the >> operator to extract
> arguments out of arrays and structs.

*******************************************************************
for Interested the my GPSSatellite operators:


 QDBusArgument &operator<<(QDBusArgument &argument, const GPSSatellite &sat)
 {
     argument.beginStructure();
     argument << sat.ID << sat.InUse << sat.Elevation << sat.Azimuth << 
sat.SNR;
     argument.endStructure();
     return argument;
 }


 const QDBusArgument &operator>>(const QDBusArgument &argument, GPSSatellite 
&sat)
 {
     argument.beginStructure();
     argument >> sat.ID >> sat.InUse >> sat.Elevation >> sat.Azimuth >> 
sat.SNR;
     argument.endStructure();
     return argument;
 }



and somewhere in code:

        qDBusRegisterMetaType<GPSSatellite>();
        qDBusRegisterMetaType<QList<GPSSatellite> >();



_______________________________________________
Openmoko community mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to