diff --git a/src/libtomahawk/infosystem/infoplugins/adiumplugin.cpp b/src/libtomahawk/infosystem/infoplugins/adiumplugin.cpp index 44bdaeb10..618df95f1 100644 --- a/src/libtomahawk/infosystem/infoplugins/adiumplugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/adiumplugin.cpp @@ -18,6 +18,8 @@ #include +#include + #include "infosystem/infosystemworker.h" #include "artist.h" #include "result.h" @@ -65,6 +67,10 @@ AdiumPlugin::AdiumPlugin() connect( TomahawkSettings::instance(), SIGNAL( changed() ), SLOT( settingsChanged() ), Qt::QueuedConnection ); + + m_pauseTimer = new QTimer( this ); + connect( m_pauseTimer, SIGNAL( timeout() ), + this, SLOT( clearStatus() ) ); } AdiumPlugin::~AdiumPlugin() @@ -73,6 +79,13 @@ AdiumPlugin::~AdiumPlugin() setStatus( "" ); } +void +AdiumPlugin::clearStatus() +{ + qDebug() << Q_FUNC_INFO; + setStatus( "" ); +} + void AdiumPlugin::settingsChanged() { @@ -107,9 +120,9 @@ AdiumPlugin::pushInfo( const QString caller, const Tomahawk::InfoSystem::InfoTyp case InfoNowPlaying: audioStarted( input ); break; - // case InfoNowPaused: - // audioPaused(); - // break; + case InfoNowPaused: + audioPaused(); + return; case InfoNowResumed: audioResumed( input ); break; @@ -120,6 +133,9 @@ AdiumPlugin::pushInfo( const QString caller, const Tomahawk::InfoSystem::InfoTyp default: return; } + + // Stop the pause timer always, unless pausing of course + m_pauseTimer->stop(); } /** Audio state slots */ @@ -177,14 +193,12 @@ void AdiumPlugin::audioPaused() { qDebug() << Q_FUNC_INFO; - - //setStatus( "Paused" ); + m_pauseTimer->start( 60 * 1000 ); } void AdiumPlugin::audioResumed( const QVariant &input ) { qDebug() << Q_FUNC_INFO; - // TODO: audio resumed, so push update status to Adium with playing track audioStarted( input ); } diff --git a/src/libtomahawk/infosystem/infoplugins/adiumplugin.h b/src/libtomahawk/infosystem/infoplugins/adiumplugin.h index 724c97ca3..e4a7f85c9 100644 --- a/src/libtomahawk/infosystem/infoplugins/adiumplugin.h +++ b/src/libtomahawk/infosystem/infoplugins/adiumplugin.h @@ -24,6 +24,8 @@ #include #include +class QTimer; + namespace Tomahawk { namespace InfoSystem { @@ -44,6 +46,9 @@ public slots: void namChangedSlot( QNetworkAccessManager *nam ) {} // unused void notInCacheSlot( const Tomahawk::InfoSystem::InfoCriteriaHash criteria, const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ) {} // unused +private slots: + void clearStatus(); + private: void settingsChanged(); @@ -59,6 +64,8 @@ private: QString m_beforeStatus; QString m_afterStatus; + QTimer* m_pauseTimer; + };