diff --git a/src/libtomahawk/DownloadManager.cpp b/src/libtomahawk/DownloadManager.cpp index 1a9c6a0ca..d366d8836 100644 --- a/src/libtomahawk/DownloadManager.cpp +++ b/src/libtomahawk/DownloadManager.cpp @@ -21,6 +21,7 @@ #include #include "TomahawkSettings.h" +#include "infosystem/InfoSystem.h" #include "utils/Logger.h" DownloadManager* DownloadManager::s_instance = 0; @@ -158,6 +159,7 @@ DownloadManager::addJob( const downloadjob_ptr& job ) m_jobs << job; emit jobAdded( job ); + connect( job.data(), SIGNAL( finished() ), SLOT( onJobFinished() ) ); connect( job.data(), SIGNAL( finished() ), SLOT( checkJobs() ) ); connect( job.data(), SIGNAL( stateChanged( DownloadJob::TrackState, DownloadJob::TrackState ) ), SLOT( checkJobs() ) ) ; // connect( job.data(), SIGNAL( stateChanged( DownloadJob::TrackState, DownloadJob::TrackState ) ), SIGNAL( stateChanged( DownloadJob::TrackState, DownloadJob::TrackState ) ) ); @@ -248,6 +250,18 @@ DownloadManager::checkJobs() } +void +DownloadManager::onJobFinished() +{ + DownloadJob* job = qobject_cast( sender() ); + + Tomahawk::InfoSystem::InfoPushData pushData( "DownloadManager", Tomahawk::InfoSystem::InfoNotifyUser, + tr( "Tomahawk finished downloading %1 by %2." ).arg( job->track()->track() ).arg( job->track()->artist() ), + Tomahawk::InfoSystem::PushNoFlag ); + Tomahawk::InfoSystem::InfoSystem::instance()->pushInfo( pushData ); +} + + void DownloadManager::pause() { diff --git a/src/libtomahawk/DownloadManager.h b/src/libtomahawk/DownloadManager.h index f4ca5287d..00a5ad000 100644 --- a/src/libtomahawk/DownloadManager.h +++ b/src/libtomahawk/DownloadManager.h @@ -63,6 +63,7 @@ signals: void stateChanged( DownloadManagerState newState, DownloadManagerState oldState ); private slots: + void onJobFinished(); private: QList< downloadjob_ptr > m_jobs;