Сижу тут, приделываю поддержку MPRIS2 к tvoeradio-desktop. Возникла такая проблема: всякие отображатели, типа плазмоида NowPlaying, обновляют данные по получению сигнала org.freedesktop.DBus.Properties.PropertiesChanged. Qt эту штуку автоматом не создает, и в org.freedesktop.DBus.Properties по-умолчанию сидят только Get, Set и SetAll. Можно отправить сигнал, например, вот так:
QDBusMessage msg;
msg= QDBusMessage::createSignal("/org/mpris/MediaPlayer2",
"org.freedesktop.DBus.Properties", "PropertiesChanged");
QVariantList args = QVariantList()
<< "org.mpris.MediaPlayer2.Player"
<< map
<< QStringList();
msg.setArguments(args);
QDBusConnection::sessionBus().send(msg);
но толку от этого нет, потому что в интроспекции этого сигнала не существует, и никто на него не подписывается.
Так что вопрос такой - есть ли какой-нибудь способ добавить сигнал в существующий интерфейс в QtDBus или переопределить интроспекцию?