diff --git a/src/libtomahawk/pipeline.cpp b/src/libtomahawk/pipeline.cpp index 7a80f8f64..188a257b4 100644 --- a/src/libtomahawk/pipeline.cpp +++ b/src/libtomahawk/pipeline.cpp @@ -116,11 +116,13 @@ Pipeline::resolve( const QList& qlist, bool prioritized, bool tempora int i = 0; foreach( const query_ptr& q, qlist ) { - if ( !m_qids.contains( q->id() ) ) - m_qids.insert( q->id(), q ); - if ( m_queries_pending.contains( q ) ) continue; + if ( m_qidsState.contains( q->id() ) ) + continue; + + if ( !m_qids.contains( q->id() ) ) + m_qids.insert( q->id(), q ); if ( prioritized ) m_queries_pending.insert( i++, q ); diff --git a/src/libtomahawk/query.cpp b/src/libtomahawk/query.cpp index 6215d7286..ad0f7ad7d 100644 --- a/src/libtomahawk/query.cpp +++ b/src/libtomahawk/query.cpp @@ -176,6 +176,8 @@ Query::onResolvingFinished() if ( !m_resolveFinished ) { m_resolveFinished = true; + m_resolvers.clear(); + emit resolvingFinished( m_solved ); } }