From 1839b9a8810adcb902614b21577a95feec67878c Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Thu, 17 Jul 2014 00:58:50 +0100 Subject: [PATCH] Disallow re-resolving of DatabaseCollection Tracks --- src/libtomahawk/Query.cpp | 18 +++++++++++++++++- src/libtomahawk/Query.h | 12 ++++++++++++ src/libtomahawk/Query_p.h | 3 +++ .../database/DatabaseCommand_AllTracks.cpp | 2 ++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/libtomahawk/Query.cpp b/src/libtomahawk/Query.cpp index 7d166ce4c..d1bdef934 100644 --- a/src/libtomahawk/Query.cpp +++ b/src/libtomahawk/Query.cpp @@ -212,7 +212,7 @@ void Query::refreshResults() { Q_D( Query ); - if ( d->resolveFinished ) + if ( d->resolveFinished && d->allowReresolve ) { d->resolveFinished = false; query_ptr q = d->ownRef.toStrongRef(); @@ -420,6 +420,22 @@ Query::setResolveFinished( bool resolved ) } +void +Query::allowReresolve() +{ + Q_D( Query ); + d->allowReresolve = true; +} + + +void +Query::disallowReresolve() +{ + Q_D( Query ); + d->allowReresolve = false; +} + + void Query::clearResults() { diff --git a/src/libtomahawk/Query.h b/src/libtomahawk/Query.h index 8fd4b64b6..7a65b9116 100644 --- a/src/libtomahawk/Query.h +++ b/src/libtomahawk/Query.h @@ -82,6 +82,18 @@ public: void setResolveFinished( bool resolved ); + /** + * Allow contacting the Pipeline if the state of this Query changes to + * not solved. + */ + void allowReresolve(); + + /** + * Disallow contacting the Pipeline if the state of this Query changes to + * not solved. + */ + void disallowReresolve(); + void setSaveHTTPResultHint( bool saveResultHint ); bool saveHTTPResultHint() const; diff --git a/src/libtomahawk/Query_p.h b/src/libtomahawk/Query_p.h index 82c25dbce..ef00b9efd 100644 --- a/src/libtomahawk/Query_p.h +++ b/src/libtomahawk/Query_p.h @@ -18,6 +18,7 @@ public: QueryPrivate( Query* q, const track_ptr& track, const QID& _qid ) : q_ptr( q ) + , allowReresolve( true ) , qid( _qid ) , queryTrack( track ) { @@ -25,6 +26,7 @@ public: QueryPrivate( Query* q, const QString& query, const QID& _qid ) : q_ptr( q ) + , allowReresolve( true ) , qid( _qid ) , fullTextQuery( query ) { @@ -40,6 +42,7 @@ private: bool solved; bool playable; bool resolveFinished; + bool allowReresolve; mutable QID qid; QString fullTextQuery; diff --git a/src/libtomahawk/database/DatabaseCommand_AllTracks.cpp b/src/libtomahawk/database/DatabaseCommand_AllTracks.cpp index 5fa1f0d48..7b0edc53c 100644 --- a/src/libtomahawk/database/DatabaseCommand_AllTracks.cpp +++ b/src/libtomahawk/database/DatabaseCommand_AllTracks.cpp @@ -161,6 +161,8 @@ DatabaseCommand_AllTracks::exec( DatabaseImpl* dbi ) results << result; qry->addResults( results ); qry->setResolveFinished( true ); + // These tracks are fixed to the Source. Do not re-resolve. + qry->disallowReresolve(); ql << qry; }