Due to async nature of QDBusPendingReply, services could be already
registered by QDBusServiceWatcher when the pending reply takes a long
time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered
signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished,
which will make the same service added twice and crash plasmashell.
We need to check if a service is already added in m_sniServices before
processing registered items in QDBusReply.
BUG: 443961
All autogenerated qtdbus property fetches are synchronous and not ideal
for Plasma to call.
1) Don't bother checking the protocol version.
If the signals are the same, we may as well try and use the old signals,
if it's not - the signals won't match anything anyway so it won't do
anything anyway.
2) Replace the blocking RegisteredStatusNotifierItem request with an
async variant.
CCBUG: 359611
REVIEW: 127199
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
techbase wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:
http://community.kde.org/Frameworks/GitOldHistory
If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.
Branched from the monolithic repo kde-workspace, frameworks branch, at commit
049113e719dd2fc4446d054fa1a3aada330094f0