Bug 138292 - Smart Playlist Option - Sort by - Random - RATING weighted
Summary: Smart Playlist Option - Sort by - Random - RATING weighted
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Applications
Component: Playlists/Saved Playlists (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-12-03 13:42 UTC by HairMetalAddict
Modified: 2007-01-03 09:35 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description HairMetalAddict 2006-12-03 13:42:59 UTC
Version:           SVN061203 (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

Ratings have been around long enough for this...

For Smart Playlists, the Order By -> Random option gives options for:

- Completely Random
- Score Weighted

Being a having Rating user, I'd like to see a third option for "Rating Weighted". 

Allowing for a high number of 5.0 tracks, a bit less of 4.5, less of 4... down to (almost) never played 1.0 tracks.

Essentially similar to Score Weighted, just using Ratings instead.



(Was considering an option for this to limit it to ratings higher than "x" to not play unrated/1.0 or whatever tracks, but that can be done with a filter, so not applicable.)
Comment 1 Alexandre Oliveira 2006-12-31 14:53:02 UTC
SVN commit 618179 by aoliveira:

Rating weighted random order for smart playlists
BUG: 138292


 M  +3 -1      playlistbrowseritem.cpp  
 M  +11 -1     smartplaylisteditor.cpp  


--- trunk/extragear/multimedia/amarok/src/playlistbrowseritem.cpp #618178:618179
@@ -3256,7 +3256,9 @@
         {
             // shuffle
             if ( orderby.attribute("order" ) == "weighted" )
-                qb.shuffle( QueryBuilder::tabStats, QueryBuilder::valForFavoriteSorting() );
+                qb.shuffle( QueryBuilder::tabStats, QueryBuilder::valPercentage );
+            else if ( orderby.attribute("order" ) == "ratingweighted" )
+                qb.shuffle( QueryBuilder::tabStats, QueryBuilder::valRating );
             else
                 qb.shuffle();
         } else {
--- trunk/extragear/multimedia/amarok/src/smartplaylisteditor.cpp #618178:618179
@@ -127,6 +127,8 @@
         updateOrderTypes( dbfield );
         if ( orderby.attribute( "order" ) == "DESC" || orderby.attribute( "order" ) == "weighted" )
             m_orderTypeCombo->setCurrentItem( 1 );
+        else if ( orderby.attribute( "order" ) == "ratingweighted" )
+            m_orderTypeCombo->setCurrentItem( 2 );
         else
             m_orderTypeCombo->setCurrentItem( 0 );
     }
@@ -309,6 +311,7 @@
         m_orderTypeCombo->clear();
         m_orderTypeCombo->insertItem( i18n("Completely Random") );
         m_orderTypeCombo->insertItem( i18n("Score Weighted") );
+        m_orderTypeCombo->insertItem( i18n("Rating Weighted") );
     }
     else {  // ordinary order column selected
         m_orderTypeCombo->clear();
@@ -372,7 +375,14 @@
             orderby.setAttribute( "order", m_orderTypeCombo->currentItem() == 1 ? "DESC" : "ASC" );
         } else {
             orderby.setAttribute( "field", "random" );
-            orderby.setAttribute( "order", m_orderTypeCombo->currentItem() == 1 ? "weighted" : "random" );
+            QString order;
+            if ( m_orderTypeCombo->currentItem() == 0 )
+                order = "random";
+            else if ( m_orderTypeCombo->currentItem() == 1 )
+                order = "weighted";
+            else
+                order = "ratingweighted";
+            orderby.setAttribute( "order", order );
         }
 
         smartplaylist.appendChild( orderby );
Comment 2 HairMetalAddict 2007-01-03 09:35:48 UTC
Beautiful! Thanks a million. :-)