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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user