From 04ce45368724e1b835094808bf474c85a54c4ce0 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Sun, 27 May 2012 20:26:46 +0200 Subject: [PATCH] * Fixed TWK-910: Make sure search results are sorted properly. --- .../playlist/PlayableProxyModel.cpp | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/libtomahawk/playlist/PlayableProxyModel.cpp b/src/libtomahawk/playlist/PlayableProxyModel.cpp index efee2a979..aec3abf87 100644 --- a/src/libtomahawk/playlist/PlayableProxyModel.cpp +++ b/src/libtomahawk/playlist/PlayableProxyModel.cpp @@ -161,19 +161,20 @@ PlayableProxyModel::lessThan( const QModelIndex& left, const QModelIndex& right const Tomahawk::query_ptr& q1 = p1->query()->displayQuery(); const Tomahawk::query_ptr& q2 = p2->query()->displayQuery(); - QString artist1 = q1->artistSortname(); - QString artist2 = q2->artistSortname(); - QString album1 = q1->albumSortname(); - QString album2 = q2->albumSortname(); - QString track1 = q1->trackSortname(); - QString track2 = q2->trackSortname(); - unsigned int albumpos1 = q1->albumpos(); - unsigned int albumpos2 = q2->albumpos(); - unsigned int discnumber1 = q1->discnumber(); - unsigned int discnumber2 = q2->discnumber(); + const QString artist1 = q1->artistSortname(); + const QString artist2 = q2->artistSortname(); + const QString album1 = q1->albumSortname(); + const QString album2 = q2->albumSortname(); + const QString track1 = q1->trackSortname(); + const QString track2 = q2->trackSortname(); + const unsigned int albumpos1 = q1->albumpos(); + const unsigned int albumpos2 = q2->albumpos(); + const unsigned int discnumber1 = q1->discnumber(); + const unsigned int discnumber2 = q2->discnumber(); unsigned int bitrate1 = 0, bitrate2 = 0; unsigned int mtime1 = 0, mtime2 = 0; unsigned int size1 = 0, size2 = 0; + float score1 = 0, score2 = 0; qint64 id1 = 0, id2 = 0; if ( q1->numResults() ) @@ -181,16 +182,18 @@ PlayableProxyModel::lessThan( const QModelIndex& left, const QModelIndex& right const Tomahawk::result_ptr& r = q1->results().at( 0 ); bitrate1 = r->bitrate(); mtime1 = r->modificationTime(); - id1 = r->trackId(); size1 = r->size(); + score1 = r->score(); + id1 = (qint64)&r; } if ( q2->numResults() ) { const Tomahawk::result_ptr& r = q2->results().at( 0 ); bitrate2 = r->bitrate(); mtime2 = r->modificationTime(); - id2 = r->trackId(); size2 = r->size(); + score2 = r->score(); + id2 = (qint64)&r; } // This makes it a stable sorter and prevents items from randomly jumping about.