diff options
author | waker <wakeroid@gmail.com> | 2012-04-06 10:32:38 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-04-06 10:32:38 +0200 |
commit | 26293f4882d7476459a0aa90e992ad67a4585375 (patch) | |
tree | 4c2e65559e5af2145ad58d7ca7e0909760e67357 /plugins | |
parent | 721aae59d8d10a242850033f66ac5685ddb9e769 (diff) |
added random sort (based on patch from defusix)
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/gtkui/callbacks.c | 27 | ||||
-rw-r--r-- | plugins/gtkui/callbacks.h | 4 | ||||
-rw-r--r-- | plugins/gtkui/deadbeef.glade | 9 | ||||
-rw-r--r-- | plugins/gtkui/interface.c | 9 |
4 files changed, 43 insertions, 6 deletions
diff --git a/plugins/gtkui/callbacks.c b/plugins/gtkui/callbacks.c index 3005bc27..be18328c 100644 --- a/plugins/gtkui/callbacks.c +++ b/plugins/gtkui/callbacks.c @@ -1154,7 +1154,7 @@ on_sort_by_title_activate (GtkMenuItem *menuitem, gpointer user_data) { ddb_playlist_t *plt = deadbeef->plt_get_curr (); - deadbeef->plt_sort (plt, PL_MAIN, -1, "%t", 1); + deadbeef->plt_sort (plt, PL_MAIN, -1, "%t", DDB_SORT_ASCENDING); deadbeef->plt_unref (plt); DdbListview *pl = DDB_LISTVIEW (lookup_widget (mainwin, "playlist")); @@ -1168,7 +1168,7 @@ on_sort_by_track_nr_activate (GtkMenuItem *menuitem, gpointer user_data) { ddb_playlist_t *plt = deadbeef->plt_get_curr (); - deadbeef->plt_sort (plt, PL_MAIN, -1, "%n", 1); + deadbeef->plt_sort (plt, PL_MAIN, -1, "%n", DDB_SORT_ASCENDING); deadbeef->plt_unref (plt); DdbListview *pl = DDB_LISTVIEW (lookup_widget (mainwin, "playlist")); @@ -1182,7 +1182,7 @@ on_sort_by_album_activate (GtkMenuItem *menuitem, gpointer user_data) { ddb_playlist_t *plt = deadbeef->plt_get_curr (); - deadbeef->plt_sort (plt, PL_MAIN, -1, "%b", 1); + deadbeef->plt_sort (plt, PL_MAIN, -1, "%b", DDB_SORT_ASCENDING); deadbeef->plt_unref (plt); DdbListview *pl = DDB_LISTVIEW (lookup_widget (mainwin, "playlist")); @@ -1196,7 +1196,7 @@ on_sort_by_artist_activate (GtkMenuItem *menuitem, gpointer user_data) { ddb_playlist_t *plt = deadbeef->plt_get_curr (); - deadbeef->plt_sort (plt, PL_MAIN, -1, "%a", 1); + deadbeef->plt_sort (plt, PL_MAIN, -1, "%a", DDB_SORT_ASCENDING); deadbeef->plt_unref (plt); DdbListview *pl = DDB_LISTVIEW (lookup_widget (mainwin, "playlist")); @@ -1210,7 +1210,22 @@ on_sort_by_date_activate (GtkMenuItem *menuitem, gpointer user_data) { ddb_playlist_t *plt = deadbeef->plt_get_curr (); - deadbeef->plt_sort (plt, PL_MAIN, -1, "%y", 1); + deadbeef->plt_sort (plt, PL_MAIN, -1, "%y", DDB_SORT_ASCENDING); + deadbeef->plt_unref (plt); + + DdbListview *pl = DDB_LISTVIEW (lookup_widget (mainwin, "playlist")); + ddb_listview_clear_sort (pl); + ddb_listview_refresh (pl, DDB_REFRESH_LIST | DDB_LIST_CHANGED); +} + + +void +on_sort_by_random_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + ddb_playlist_t *plt = deadbeef->plt_get_curr (); + deadbeef->plt_sort (plt, PL_MAIN, -1, NULL, DDB_SORT_RANDOM); + deadbeef->plt_unref (plt); DdbListview *pl = DDB_LISTVIEW (lookup_widget (mainwin, "playlist")); @@ -1246,7 +1261,7 @@ on_sort_by_custom_activate (GtkMenuItem *menuitem, deadbeef->conf_set_str ("gtkui.sortby_fmt", fmt); ddb_playlist_t *plt = deadbeef->plt_get_curr (); - deadbeef->plt_sort (plt, PL_MAIN, -1, fmt, order == 0 ? 1 : 0); + deadbeef->plt_sort (plt, PL_MAIN, -1, fmt, order == 0 ? DDB_SORT_ASCENDING : DDB_SORT_DESCENDING); deadbeef->plt_unref (plt); DdbListview *pl = DDB_LISTVIEW (lookup_widget (mainwin, "playlist")); diff --git a/plugins/gtkui/callbacks.h b/plugins/gtkui/callbacks.h index e463394d..a354baca 100644 --- a/plugins/gtkui/callbacks.h +++ b/plugins/gtkui/callbacks.h @@ -1149,6 +1149,10 @@ on_sort_by_date_activate (GtkMenuItem *menuitem, gpointer user_data); void +on_sort_by_random_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void on_sort_by_custom_activate (GtkMenuItem *menuitem, gpointer user_data); diff --git a/plugins/gtkui/deadbeef.glade b/plugins/gtkui/deadbeef.glade index cffda5b5..184b66fd 100644 --- a/plugins/gtkui/deadbeef.glade +++ b/plugins/gtkui/deadbeef.glade @@ -365,6 +365,15 @@ </child> <child> + <widget class="GtkMenuItem" id="random1"> + <property name="visible">True</property> + <property name="label" translatable="yes">Random</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_sort_by_random_activate" last_modification_time="Sun, 26 Feb 2012 19:22:44 GMT"/> + </widget> + </child> + + <child> <widget class="GtkMenuItem" id="custom2"> <property name="visible">True</property> <property name="label" translatable="yes">Custom</property> diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c index 57db14db..84649092 100644 --- a/plugins/gtkui/interface.c +++ b/plugins/gtkui/interface.c @@ -69,6 +69,7 @@ create_mainwin (void) GtkWidget *album1; GtkWidget *artist1; GtkWidget *date1; + GtkWidget *random1; GtkWidget *custom2; GtkWidget *separator5; GtkWidget *preferences; @@ -312,6 +313,10 @@ create_mainwin (void) gtk_widget_show (date1); gtk_container_add (GTK_CONTAINER (sort_by1_menu), date1); + random1 = gtk_menu_item_new_with_mnemonic (_("Random")); + gtk_widget_show (random1); + gtk_container_add (GTK_CONTAINER (sort_by1_menu), random1); + custom2 = gtk_menu_item_new_with_mnemonic (_("Custom")); gtk_widget_show (custom2); gtk_container_add (GTK_CONTAINER (sort_by1_menu), custom2); @@ -693,6 +698,9 @@ create_mainwin (void) g_signal_connect ((gpointer) date1, "activate", G_CALLBACK (on_sort_by_date_activate), NULL); + g_signal_connect ((gpointer) random1, "activate", + G_CALLBACK (on_sort_by_random_activate), + NULL); g_signal_connect ((gpointer) custom2, "activate", G_CALLBACK (on_sort_by_custom_activate), NULL); @@ -819,6 +827,7 @@ create_mainwin (void) GLADE_HOOKUP_OBJECT (mainwin, album1, "album1"); GLADE_HOOKUP_OBJECT (mainwin, artist1, "artist1"); GLADE_HOOKUP_OBJECT (mainwin, date1, "date1"); + GLADE_HOOKUP_OBJECT (mainwin, random1, "random1"); GLADE_HOOKUP_OBJECT (mainwin, custom2, "custom2"); GLADE_HOOKUP_OBJECT (mainwin, separator5, "separator5"); GLADE_HOOKUP_OBJECT (mainwin, preferences, "preferences"); |