From 0535d09f089456abebca66a3b51f3565c8df2a32 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 19 Jan 2016 11:10:18 -0800 Subject: [PATCH 1/3] Sort equal results by resolver's weight --- src/libtomahawk/Query.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libtomahawk/Query.cpp b/src/libtomahawk/Query.cpp index 5c5ccc1e1..1f8d000e4 100644 --- a/src/libtomahawk/Query.cpp +++ b/src/libtomahawk/Query.cpp @@ -408,7 +408,7 @@ Query::resultSorter( const result_ptr& left, const result_ptr& right ) return false; } - return true; + return right->resolvedBy()->weight() > left->resolvedBy()->weight(); } if ( left->isPreview() != right->isPreview() ) From 1e6b8b3747a69cc31aef5d2fded37f2c25097747 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 19 Jan 2016 16:35:38 -0800 Subject: [PATCH 2/3] Fix sorting order --- src/libtomahawk/Query.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libtomahawk/Query.cpp b/src/libtomahawk/Query.cpp index 1f8d000e4..65b0aff7f 100644 --- a/src/libtomahawk/Query.cpp +++ b/src/libtomahawk/Query.cpp @@ -403,12 +403,12 @@ Query::resultSorter( const result_ptr& left, const result_ptr& right ) { return false; } - if ( !right->isPreview() ) + if ( left->isPreview() != right->isPreview() ) { - return false; + return !left->isPreview(); } - return right->resolvedBy()->weight() > left->resolvedBy()->weight(); + return right->resolvedBy()->weight() < left->resolvedBy()->weight(); } if ( left->isPreview() != right->isPreview() ) From c068d8c9e3028e7fb0395dce8be11f0a14e0eee5 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Wed, 20 Jan 2016 12:45:55 -0800 Subject: [PATCH 3/3] Left goes to the left, right to the right --- src/libtomahawk/Query.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libtomahawk/Query.cpp b/src/libtomahawk/Query.cpp index 65b0aff7f..bfa4a2f3d 100644 --- a/src/libtomahawk/Query.cpp +++ b/src/libtomahawk/Query.cpp @@ -408,7 +408,7 @@ Query::resultSorter( const result_ptr& left, const result_ptr& right ) return !left->isPreview(); } - return right->resolvedBy()->weight() < left->resolvedBy()->weight(); + return left->resolvedBy()->weight() > right->resolvedBy()->weight(); } if ( left->isPreview() != right->isPreview() )