From fcb9eb33e48694f940ccde5a5aea5c3b387446fb Mon Sep 17 00:00:00 2001 From: Dominik Schmidt <dev@dominik-schmidt.de> Date: Fri, 6 May 2011 00:25:06 +0200 Subject: [PATCH] Add peersOnline() to SipPlugin --- src/libtomahawk/sip/SipPlugin.cpp | 24 ++++++++++++++++++++++++ src/libtomahawk/sip/SipPlugin.h | 7 +++++++ 2 files changed, 31 insertions(+) diff --git a/src/libtomahawk/sip/SipPlugin.cpp b/src/libtomahawk/sip/SipPlugin.cpp index 57d81588a..7f835a0fe 100644 --- a/src/libtomahawk/sip/SipPlugin.cpp +++ b/src/libtomahawk/sip/SipPlugin.cpp @@ -34,6 +34,8 @@ SipPlugin::SipPlugin( const QString& pluginId, QObject* parent ) { connect( this, SIGNAL( error( int, QString ) ), this, SLOT( onError( int,QString ) ) ); connect( this, SIGNAL( stateChanged( SipPlugin::ConnectionState ) ), this, SLOT( onStateChange( SipPlugin::ConnectionState ) ) ); + connect( this, SIGNAL( peerOnline( QString ) ), this, SLOT( onPeerOnline( QString ) ) ); + connect( this, SIGNAL( peerOffline( QString ) ), this, SLOT( onPeerOffline( QString ) ) ); } QString SipPlugin::pluginId() const @@ -67,6 +69,13 @@ SipPlugin::icon() const return QIcon(); } +const QStringList +SipPlugin::peersOnline() const +{ + return m_peersOnline; +} + + void SipPlugin::setProxy( const QNetworkProxy& proxy ) { @@ -85,3 +94,18 @@ SipPlugin::onStateChange( SipPlugin::ConnectionState state ) m_cachedError.clear(); } +void +SipPlugin::onPeerOnline(const QString& peerId) +{ + if( !m_peersOnline.contains( peerId ) ) + { + m_peersOnline.append( peerId ); + } +} + +void +SipPlugin::onPeerOffline(const QString& peerId) +{ + m_peersOnline.removeAll( peerId ); +} + diff --git a/src/libtomahawk/sip/SipPlugin.h b/src/libtomahawk/sip/SipPlugin.h index 0903d980d..156944e21 100644 --- a/src/libtomahawk/sip/SipPlugin.h +++ b/src/libtomahawk/sip/SipPlugin.h @@ -76,6 +76,9 @@ public: virtual void saveConfig() {} // called when the widget has been edited virtual QIcon icon() const; + // peer infos + virtual const QStringList peersOnline() const; + public slots: virtual bool connectPlugin( bool startup = false ) = 0; virtual void disconnectPlugin() = 0; @@ -108,9 +111,13 @@ private slots: void onError( int, const QString& ); void onStateChange( SipPlugin::ConnectionState state ); + void onPeerOnline( const QString &peerId ); + void onPeerOffline( const QString &peerId ); + private: QString m_pluginId; QString m_cachedError; + QStringList m_peersOnline; }; Q_DECLARE_INTERFACE( SipPluginFactory, "tomahawk.SipFactory/1.0" )