1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-04-08 10:02:29 +02:00

* Fixed result sorting order, always prefers local results with equal score now.

This commit is contained in:
Christian Muehlhaeuser 2011-04-04 07:56:56 +02:00
parent 1ac61194cf
commit 5e9ea36228
2 changed files with 18 additions and 5 deletions

View File

@ -63,7 +63,7 @@ Query::addResults( const QList< Tomahawk::result_ptr >& newresults )
{
bool becameSolved = false;
{
// QMutexLocker lock( &m_mut );
QMutexLocker lock( &m_mutex );
m_results.append( newresults );
qStableSort( m_results.begin(), m_results.end(), Query::resultSorter );
@ -101,7 +101,7 @@ void
Query::removeResult( const Tomahawk::result_ptr& result )
{
{
// QMutexLocker lock( &m_mut );
QMutexLocker lock( &m_mutex );
m_results.removeAll( result );
}
@ -121,7 +121,7 @@ Query::onResolvingFinished()
QList< result_ptr >
Query::results() const
{
// QMutexLocker lock( &m_mut );
QMutexLocker lock( &m_mutex );
return m_results;
}
@ -129,7 +129,7 @@ Query::results() const
unsigned int
Query::numResults() const
{
// QMutexLocker lock( &m_mut );
QMutexLocker lock( &m_mutex );
return m_results.length();
}
@ -149,7 +149,18 @@ Query::id() const
bool
Query::resultSorter( const result_ptr& left, const result_ptr& right )
{
return left->score() > right->score();
const float ls = left->score();
const float rs = right->score();
if ( ls == rs )
{
if ( !left->collection().isNull() && left->collection()->source()->isLocal() )
return true;
else
return false;
}
return ls > rs;
}

View File

@ -116,6 +116,8 @@ private:
QString m_track;
int m_duration;
QString m_resultHint;
mutable QMutex m_mutex;
};
}; //ns