Использую QDBusAbstractAdaptor, объявлен сигнал started():
class IControl: public QDBusAbstractAdaptor {
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.ude.application")
// <...>
signals:
void started();
}
Регистрирую интерфейс в main():
QDBusConnection::sessionBus().registerObject("/", &interfaceControl, QDBusConnection::ExportAllContents);
После этого qdbus видит сигнал, но при попытке вызвать из методов класса IControl «emit started();» сигнал на D-Bus не попадает. Если к нему подключить Qt-слот, то он вызывается, т.е. механизм сигналов и слотов Qt работает. Но ни dbus-monitor, ни qdbusviewer, ни другое приложение не видят вызов этого сигнала, значит, почему-то он не попадает на D-Bus. При этом правильно работает такая конструкция, посылая сигнал на D-Bus:
QDBusConnection::sessionBus().send(QDBusMessage::createSignal("/", "org.ude.application", "started"));
Собственно, ЧЯДНТ и как сделать, чтобы emit посылал сигнал и на D-Bus? Судя по документации на сайте, он это таки должен делать.