1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-11 00:24:12 +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; bool becameSolved = false;
{ {
// QMutexLocker lock( &m_mut ); QMutexLocker lock( &m_mutex );
m_results.append( newresults ); m_results.append( newresults );
qStableSort( m_results.begin(), m_results.end(), Query::resultSorter ); qStableSort( m_results.begin(), m_results.end(), Query::resultSorter );
@@ -101,7 +101,7 @@ void
Query::removeResult( const Tomahawk::result_ptr& result ) Query::removeResult( const Tomahawk::result_ptr& result )
{ {
{ {
// QMutexLocker lock( &m_mut ); QMutexLocker lock( &m_mutex );
m_results.removeAll( result ); m_results.removeAll( result );
} }
@@ -121,7 +121,7 @@ Query::onResolvingFinished()
QList< result_ptr > QList< result_ptr >
Query::results() const Query::results() const
{ {
// QMutexLocker lock( &m_mut ); QMutexLocker lock( &m_mutex );
return m_results; return m_results;
} }
@@ -129,7 +129,7 @@ Query::results() const
unsigned int unsigned int
Query::numResults() const Query::numResults() const
{ {
// QMutexLocker lock( &m_mut ); QMutexLocker lock( &m_mutex );
return m_results.length(); return m_results.length();
} }
@@ -149,7 +149,18 @@ Query::id() const
bool bool
Query::resultSorter( const result_ptr& left, const result_ptr& right ) 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; QString m_track;
int m_duration; int m_duration;
QString m_resultHint; QString m_resultHint;
mutable QMutex m_mutex;
}; };
}; //ns }; //ns