diff --git a/src/libtomahawk/playlist/trackview.h b/src/libtomahawk/playlist/trackview.h index b151a251c..d2eec8344 100644 --- a/src/libtomahawk/playlist/trackview.h +++ b/src/libtomahawk/playlist/trackview.h @@ -56,6 +56,7 @@ explicit TrackView( QWidget* parent = 0 ); TrackHeader* header() const { return m_header; } OverlayWidget* overlay() const { return m_overlay; } Tomahawk::ContextMenu* contextMenu() const { return m_contextMenu; } + LoadingSpinner* loadingSpinner() const { return m_loadingSpinner; } QModelIndex hoveredIndex() const { return m_hoveredIndex; } QModelIndex contextMenuIndex() const { return m_contextMenuIndex; } diff --git a/src/libtomahawk/query.cpp b/src/libtomahawk/query.cpp index eda3ae385..cbab0dfb2 100644 --- a/src/libtomahawk/query.cpp +++ b/src/libtomahawk/query.cpp @@ -38,9 +38,12 @@ using namespace Tomahawk; query_ptr Query::get( const QString& artist, const QString& track, const QString& album, const QID& qid, bool autoResolve ) { + if ( qid.isEmpty() ) + autoResolve = false; + query_ptr q = query_ptr( new Query( artist, track, album, qid, autoResolve ) ); - if ( autoResolve && !qid.isEmpty() ) + if ( autoResolve ) Pipeline::instance()->resolve( q ); return q; } diff --git a/src/libtomahawk/widgets/searchwidget.cpp b/src/libtomahawk/widgets/searchwidget.cpp index 58b81a7f9..8373be998 100644 --- a/src/libtomahawk/widgets/searchwidget.cpp +++ b/src/libtomahawk/widgets/searchwidget.cpp @@ -24,6 +24,7 @@ #include "sourcelist.h" #include "viewmanager.h" +#include "dynamic/widgets/LoadingSpinner.h" #include "playlist/playlistmodel.h" #include "widgets/overlaywidget.h" @@ -48,11 +49,13 @@ SearchWidget::SearchWidget( const QString& search, QWidget* parent ) ui->resultsView->setFrameShape( QFrame::NoFrame ); ui->resultsView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); + ui->resultsView->loadingSpinner()->fadeIn(); m_queries << Tomahawk::Query::get( search, uuid() ); foreach ( const Tomahawk::query_ptr& query, m_queries ) { connect( query.data(), SIGNAL( resultsAdded( QList ) ), SLOT( onResultsFound( QList ) ) ); + connect( query.data(), SIGNAL( resolvingFinished( bool ) ), SLOT( onQueryFinished() ) ); } } @@ -97,3 +100,10 @@ SearchWidget::onResultsFound( const QList& results ) m_resultsModel->append( q ); } } + + +void +SearchWidget::onQueryFinished() +{ + ui->resultsView->loadingSpinner()->fadeOut(); +} diff --git a/src/libtomahawk/widgets/searchwidget.h b/src/libtomahawk/widgets/searchwidget.h index f7d7ec021..136be7f11 100644 --- a/src/libtomahawk/widgets/searchwidget.h +++ b/src/libtomahawk/widgets/searchwidget.h @@ -63,6 +63,7 @@ signals: private slots: void onResultsFound( const QList& results ); + void onQueryFinished(); private: Ui::SearchWidget *ui;