diff --git a/src/libtomahawk/jobview/IndexingJobItem.cpp b/src/libtomahawk/jobview/IndexingJobItem.cpp index 984198e53..bf25a7ba4 100644 --- a/src/libtomahawk/jobview/IndexingJobItem.cpp +++ b/src/libtomahawk/jobview/IndexingJobItem.cpp @@ -18,7 +18,11 @@ #include "IndexingJobItem.h" +#include "JobStatusModel.h" +#include "JobStatusView.h" +#include "database/Database.h" #include "utils/TomahawkUtilsGui.h" +#include "utils/Logger.h" #include @@ -29,16 +33,40 @@ IndexingJobItem::mainText() const return tr( "Indexing Music Library" ); } + QPixmap IndexingJobItem::icon() const { return TomahawkUtils::defaultPixmap( TomahawkUtils::ViewRefresh, TomahawkUtils::Original, QSize( 128, 128 ) ); - } -void IndexingJobItem::done() +void +IndexingJobItem::done() { emit finished(); } + +IndexStatusManager::IndexStatusManager( QObject* parent ) +: QObject( parent ) +{ + connect( Tomahawk::Database::instance(), SIGNAL( indexStarted() ), SLOT( started() ) ); + connect( Tomahawk::Database::instance(), SIGNAL( indexReady() ), SLOT( finished() ) ); +} + + +void +IndexStatusManager::started() +{ + m_curItem = new IndexingJobItem; + JobStatusView::instance()->model()->addJob( m_curItem.data() ); +} + + +void +IndexStatusManager::finished() +{ + if ( m_curItem ) + m_curItem->done(); +} diff --git a/src/libtomahawk/jobview/IndexingJobItem.h b/src/libtomahawk/jobview/IndexingJobItem.h index cda9e673f..112d03f7f 100644 --- a/src/libtomahawk/jobview/IndexingJobItem.h +++ b/src/libtomahawk/jobview/IndexingJobItem.h @@ -19,8 +19,9 @@ #ifndef INDEXINGJOBITEM_H #define INDEXINGJOBITEM_H -#include +#include "JobStatusItem.h" +#include class IndexingJobItem : public JobStatusItem { @@ -37,4 +38,19 @@ public: virtual QString type() const { return "indexerjob"; } }; +class IndexStatusManager : public QObject +{ + Q_OBJECT +public: + explicit IndexStatusManager( QObject* parent = 0 ); + virtual ~IndexStatusManager() {} + +private slots: + void started(); + void finished(); + +private: + QPointer m_curItem; +}; + #endif // INDEXINGJOBITEM_H