63 QDBusConnection c(conn);
65 c.connect(service(), path, interface(), QStringLiteral(
"TrackAdded"),
66 this, SLOT(onTrackAdded(QString)));
67 c.connect(service(), path, interface(), QStringLiteral(
"TracksAdded"),
68 this, SLOT(onTracksAdded(QStringList)));
69 c.connect(service(), path, interface(), QStringLiteral(
"TrackRemoved"),
70 this, SLOT(onTrackRemoved(QString)));
71 c.connect(service(), path, interface(), QStringLiteral(
"TrackMoved"),
72 this, SLOT(onTrackMoved(QString,QString)));
73 c.connect(service(), path, interface(), QStringLiteral(
"TrackListReset"),
74 this, SLOT(onTrackListReset()));
76 c.connect(service(), path, interface(), QStringLiteral(
"TrackChanged"),
77 this, SLOT(onTrackChanged(QString)));
80 QDBusMessage msg = QDBusMessage::createMethodCall(
84 QStringLiteral(
"GetAll"));
86 QDBusMessage reply = c.call(msg);
87 if (Q_UNLIKELY(reply.type()) == QDBusMessage::ErrorMessage) {
88 qWarning() <<
"Cannot get tracklist properties:" <<
91 QDBusArgument arg = reply.arguments().first().value<QDBusArgument>();
207 if (ids.count() != m_urisForNextAddition.count()) {
208 qWarning() <<
"Mismatching counters for TrackAdded signal";
211 if (m_indexForNextAddition < 0 || m_indexForNextAddition > m_trackIds.count()) {
212 m_indexForNextAddition = m_trackIds.count();
214 for (
int i = 0; i < m_urisForNextAddition.count(); i++) {
215 const QUrl &uri = m_urisForNextAddition[i];
216 m_tracks.insert(m_indexForNextAddition + i,
Track(uri));
217 m_trackIds.insert(m_indexForNextAddition + i, ids[i]);
220 Q_EMIT q->tracksAdded(m_indexForNextAddition,
221 m_indexForNextAddition + ids.count() - 1);
227 int idIndex = m_trackIds.indexOf(
id);
228 int toIndex = m_trackIds.indexOf(to);
229 m_trackIds.move(idIndex, toIndex);
230 m_tracks.move(idIndex, toIndex);
231 Q_EMIT q->trackMoved(idIndex, toIndex);