LINUX.ORG.RU

QtDbus + PropertiesChanged

 ,


0

2

Сижу тут, приделываю поддержку 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 или переопределить интроспекцию?

★★
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.