aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/mpris
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/mpris')
-rw-r--r--src/plugins/General/mpris/player2object.cpp43
1 files changed, 10 insertions, 33 deletions
diff --git a/src/plugins/General/mpris/player2object.cpp b/src/plugins/General/mpris/player2object.cpp
index b26a2c9d5..666c9511e 100644
--- a/src/plugins/General/mpris/player2object.cpp
+++ b/src/plugins/General/mpris/player2object.cpp
@@ -283,42 +283,19 @@ void Player2Object::Stop()
void Player2Object::emitPropertiesChanged()
{
- QList<QByteArray> changedProps;
- if(m_props["CanGoNext"] != canGoNext())
- changedProps << "CanGoNext";
- if(m_props["CanGoPrevious"] != canGoPrevious())
- changedProps << "CanGoPrevious";
- if(m_props["CanPause"] != canPause())
- changedProps << "CanPause";
- if(m_props["CanPlay"] != canPlay())
- changedProps << "CanPlay";
- if(m_props["CanSeek"] != canSeek())
- changedProps << "CanSeek";
- if(m_props["LoopStatus"] != loopStatus())
- changedProps << "LoopStatus";
- if(m_props["MaximumRate"] != maximumRate())
- changedProps << "MaximumRate";
- if(m_props["MinimumRate"] != minimumRate())
- changedProps << "MinimumRate";
- if(m_props["PlaybackStatus"] != playbackStatus())
- changedProps << "PlaybackStatus";
- if(m_props["Rate"] != rate())
- changedProps << "Rate";
- if(m_props["Shuffle"] != shuffle())
- changedProps << "Shuffle";
- if(m_props["Volume"] != volume())
- changedProps << "Volume";
- if(m_props["Metadata"] != metadata())
- changedProps << "Metadata";
-
- if(changedProps.isEmpty())
- return;
-
+ QMap<QString, QVariant> prevProps = m_props;
syncProperties();
QVariantMap map;
- for(const QByteArray &name : qAsConst(changedProps))
- map.insert(name, m_props.value(name));
+ QMap<QString, QVariant>::const_iterator it;
+ for (it = m_props.constBegin(); it != m_props.constEnd(); ++it)
+ {
+ if(it.value() != prevProps.value(it.key()))
+ map.insert(it.key(), it.value());
+ }
+
+ if(map.isEmpty())
+ return;
QDBusMessage msg = QDBusMessage::createSignal("/org/mpris/MediaPlayer2",
"org.freedesktop.DBus.Properties", "PropertiesChanged");