mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-06 14:16:32 +02:00
Add constructor for a fixed Query<->Result relation
This commit is contained in:
@@ -87,6 +87,16 @@ Query::get( const QString& query, const QID& qid )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
query_ptr
|
||||||
|
Query::getFixed( const track_ptr& track, const result_ptr& result )
|
||||||
|
{
|
||||||
|
query_ptr q = query_ptr( new Query( track, result ), &QObject::deleteLater );
|
||||||
|
q->setWeakRef( q.toWeakRef() );
|
||||||
|
|
||||||
|
return q;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Query::Query( const track_ptr& track, const QID& qid, bool autoResolve )
|
Query::Query( const track_ptr& track, const QID& qid, bool autoResolve )
|
||||||
: d_ptr( new QueryPrivate( this, track, qid ) )
|
: d_ptr( new QueryPrivate( this, track, qid ) )
|
||||||
{
|
{
|
||||||
@@ -101,6 +111,21 @@ Query::Query( const track_ptr& track, const QID& qid, bool autoResolve )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Query::Query( const track_ptr& track, const result_ptr& result )
|
||||||
|
: d_ptr( new QueryPrivate( this, track, QString() ) )
|
||||||
|
{
|
||||||
|
Q_D( Query );
|
||||||
|
|
||||||
|
init();
|
||||||
|
d->allowReresolve = false;
|
||||||
|
d->resolveFinished = true;
|
||||||
|
d->results << result;
|
||||||
|
d->playable = result->playable();
|
||||||
|
d->solved = true;
|
||||||
|
connect( result.data(), SIGNAL( statusChanged() ), SLOT( onResultStatusChanged() ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Query::Query( const QString& query, const QID& qid )
|
Query::Query( const QString& query, const QID& qid )
|
||||||
: d_ptr( new QueryPrivate( this, query, qid ) )
|
: d_ptr( new QueryPrivate( this, query, qid ) )
|
||||||
{
|
{
|
||||||
|
@@ -49,6 +49,11 @@ public:
|
|||||||
static query_ptr get( const Tomahawk::track_ptr& track, const QID& qid = QString() );
|
static query_ptr get( const Tomahawk::track_ptr& track, const QID& qid = QString() );
|
||||||
static query_ptr get( const QString& query, const QID& qid );
|
static query_ptr get( const QString& query, const QID& qid );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a Query object with a fixed Result reference which is not re-resolved.
|
||||||
|
*/
|
||||||
|
static query_ptr getFixed( const Tomahawk::track_ptr& track, const Tomahawk::result_ptr& result );
|
||||||
|
|
||||||
virtual ~Query();
|
virtual ~Query();
|
||||||
|
|
||||||
bool equals( const Tomahawk::query_ptr& other, bool ignoreCase = false, bool ignoreAlbum = false ) const;
|
bool equals( const Tomahawk::query_ptr& other, bool ignoreCase = false, bool ignoreAlbum = false ) const;
|
||||||
@@ -139,6 +144,10 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
Query();
|
Query();
|
||||||
explicit Query( const track_ptr& track, const QID& qid, bool autoResolve );
|
explicit Query( const track_ptr& track, const QID& qid, bool autoResolve );
|
||||||
|
/**
|
||||||
|
* Respective constructor for getFixed
|
||||||
|
*/
|
||||||
|
explicit Query( const track_ptr& track, const result_ptr& result );
|
||||||
explicit Query( const QString& query, const QID& qid );
|
explicit Query( const QString& query, const QID& qid );
|
||||||
|
|
||||||
Q_DECLARE_PRIVATE( Query )
|
Q_DECLARE_PRIVATE( Query )
|
||||||
|
@@ -143,8 +143,6 @@ DatabaseCommand_AllTracks::exec( DatabaseImpl* dbi )
|
|||||||
artist, track, album,
|
artist, track, album,
|
||||||
duration, composer,
|
duration, composer,
|
||||||
albumpos, discnumber );
|
albumpos, discnumber );
|
||||||
Tomahawk::query_ptr qry = Tomahawk::Query::get( t );
|
|
||||||
|
|
||||||
if ( m_album || m_artist ) {
|
if ( m_album || m_artist ) {
|
||||||
t->loadAttributes();
|
t->loadAttributes();
|
||||||
}
|
}
|
||||||
@@ -154,17 +152,10 @@ DatabaseCommand_AllTracks::exec( DatabaseImpl* dbi )
|
|||||||
result->setBitrate( bitrate );
|
result->setBitrate( bitrate );
|
||||||
result->setModificationTime( modificationTime );
|
result->setModificationTime( modificationTime );
|
||||||
result->setMimetype( mimetype );
|
result->setMimetype( mimetype );
|
||||||
result->setScore( 1.0 );
|
result->setScore( 1.0f );
|
||||||
result->setCollection( s->dbCollection(), false );
|
result->setCollection( s->dbCollection(), false );
|
||||||
|
|
||||||
QList<Tomahawk::result_ptr> results;
|
ql << Tomahawk::Query::getFixed( t, result );
|
||||||
results << result;
|
|
||||||
qry->addResults( results );
|
|
||||||
qry->setResolveFinished( true );
|
|
||||||
// These tracks are fixed to the Source. Do not re-resolve.
|
|
||||||
qry->disallowReresolve();
|
|
||||||
|
|
||||||
ql << qry;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
emit tracks( ql, data() );
|
emit tracks( ql, data() );
|
||||||
|
Reference in New Issue
Block a user