QT and dbus - no such signal
Christian Rüb
christian.rueb at gmx.net
Sun Jan 10 15:52:15 CET 2010
> [...]
> > Thanks for this. Where exactly did you change it? I grepped 'Os' and 'O2' in openembedded/recipes/qt4/* but found neither.
> > -O seems no to be set in CFLAGS under qt4/
>
> I do not know if this is the right way, just digged in bitbake sources
> and added to local.conf the line:
>
> FULL_OPTIMIZATION_pn-qt4-x11-free = "-fexpensive-optimizations
> -fomit-frame-pointer -frename-registers -O2"
>
> Niko
Hi Niko!
Thanks a lot, that did it! I wonder why it is not integrated by default though.
...definition and registration of FSOResourceStatus struct ...
I also try to connect to the ResourceChanged signal from ousaged which has a more complex signature and it reports that signal would not exist.
I use the following code to display all signals/methods on ousaged interface:
usageInterface = new QDBusInterface("org.freesmartphone.ousaged", "/org/freesmartphone/Usage", "org.freesmartphone.Usage", QDBusConnection::systemBus(), this);
if(usageInterface->isValid()) {
const QMetaObject* metaObject = usageInterface->metaObject();
qDebug() << "\norg.freesmartphone.Usage methods:";
for(int i = metaObject->methodOffset(); i < metaObject->methodCount(); ++i)
qDebug() << QString::fromLatin1(metaObject->method(i).signature()) << "[" << (metaObject->method(i).methodType()==1?"signal":"method") << "]";
connect(usageInterface, SIGNAL(ResourceChanged(FSOResourceStatus)), this, SLOT(handleStatusChange(FSOResourceStatus)));
}
output is:
org.freesmartphone.Usage methods:
"GetResourcePolicy(QString)" [ method ]
"GetResourceState(QString)" [ method ]
"GetResourceUsers(QString)" [ method ]
"ListResources()" [ method ]
"Reboot()" [ method ]
"RegisterResource(QString,QDBusObjectPath)" [ method ]
"ReleaseResource(QString)" [ method ]
"RequestResource(QString)" [ method ]
"ResourceAvailable(QString,bool)" [ signal ]
"SetResourcePolicy(QString,QString)" [ method ]
"Shutdown()" [ method ]
"Suspend()" [ method ]
"SystemAction(QString)" [ signal ]
"UnregisterResource(QString)" [ method ]
"initResources()" [ method ]
Object::connect: No such signal org::freesmartphone::Usage::ResourceChanged(FSOResourceStatus)
As you can see, the ResourceChanged signal is not listed (neither on my FR nor on my PC), but with qdbusviewer I can connect to it and receive the signal:
Received signal from :1.17, path /org/freesmartphone/Usage, interface org.freesmartphone.Usage, member ResourceChanged
Arguments: "GPS", true, [Argument: a{sv} {"policy" = [Variant(QString): "auto"], "refcount" = [Variant(int): 1]}]
Any ideas how I can investigate further?
Thanks.
Christian
More information about the community
mailing list