summaryrefslogtreecommitdiff
path: root/plugins/gtkui/mainplaylist.c
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-02-25 22:27:43 +0100
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-02-25 22:27:43 +0100
commite90b724ad3f40d401d57fdba549f6412799f5679 (patch)
treee371b7532e73a727d5f0dd0e7c36b760fcd3a71d /plugins/gtkui/mainplaylist.c
parent05eead70f864da718b470011300339dae441ea7c (diff)
fixed few bugs in grouping; enabled grouping menu
Diffstat (limited to 'plugins/gtkui/mainplaylist.c')
-rw-r--r--plugins/gtkui/mainplaylist.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/plugins/gtkui/mainplaylist.c b/plugins/gtkui/mainplaylist.c
index 0457ce70..36ea3d31 100644
--- a/plugins/gtkui/mainplaylist.c
+++ b/plugins/gtkui/mainplaylist.c
@@ -334,20 +334,23 @@ void main_draw_column_data (DdbListview *listview, GdkDrawable *drawable, DdbLis
}
}
+static const char *group_by_str = NULL;
+
void main_draw_group_title (DdbListview *listview, GdkDrawable *drawable, DdbListviewIter it, int x, int y, int width, int height) {
- char str[1024];
- deadbeef->pl_format_title ((DB_playItem_t *)it, -1, str, sizeof (str), -1, "%a - [%y] %b");
- float clr[] = {0, 0.1, 0.5};
- draw_set_fg_color (clr);
- draw_text (x + 5, y + height/2 - draw_get_font_size ()/2 - 2, width-10, 0, str);
+ if (group_by_str) {
+ char str[1024];
+ deadbeef->pl_format_title ((DB_playItem_t *)it, -1, str, sizeof (str), -1, group_by_str);
+ float clr[] = {0, 0.1, 0.5};
+ draw_set_fg_color (clr);
+ draw_text (x + 5, y + height/2 - draw_get_font_size ()/2 - 2, width-10, 0, str);
+ }
}
-#if 0
void
on_group_by_none_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- deadbeef->plt_group_by (NULL);
+ group_by_str = NULL;
main_refresh ();
}
@@ -355,7 +358,7 @@ void
on_group_by_artist_date_album_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- deadbeef->plt_group_by ("%a - [%y] %b");
+ group_by_str = "%a - [%y] %b";
main_refresh ();
}
@@ -363,10 +366,9 @@ void
on_group_by_artist_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- deadbeef->plt_group_by ("%a");
+ group_by_str = "%a";
main_refresh ();
}
-#endif
GtkWidget*
create_headermenu (void)
@@ -396,7 +398,6 @@ create_headermenu (void)
gtk_widget_show (remove_column);
gtk_container_add (GTK_CONTAINER (headermenu), remove_column);
-#if 0
separator = gtk_separator_menu_item_new ();
gtk_widget_show (separator);
gtk_container_add (GTK_CONTAINER (headermenu), separator);
@@ -420,7 +421,6 @@ create_headermenu (void)
artist = gtk_menu_item_new_with_mnemonic ("Artist");
gtk_widget_show (artist);
gtk_container_add (GTK_CONTAINER (group_by_menu), artist);
-#endif
g_signal_connect ((gpointer) add_column, "activate",
G_CALLBACK (on_add_column_activate),
@@ -432,19 +432,17 @@ create_headermenu (void)
G_CALLBACK (on_remove_column_activate),
NULL);
-#if 0
- g_signal_connect ((gpointer) remove_column, "activate",
+ g_signal_connect ((gpointer) none, "activate",
G_CALLBACK (on_group_by_none_activate),
NULL);
- g_signal_connect ((gpointer) remove_column, "activate",
+ g_signal_connect ((gpointer) artist_date_album, "activate",
G_CALLBACK (on_group_by_artist_date_album_activate),
NULL);
- g_signal_connect ((gpointer) remove_column, "activate",
+ g_signal_connect ((gpointer) artist, "activate",
G_CALLBACK (on_group_by_artist_activate),
NULL);
-#endif
return headermenu;
}
@@ -621,9 +619,13 @@ main_is_selected (DdbListviewIter it) {
return deadbeef->pl_is_selected ((DB_playItem_t *)it);
}
-void
+int
main_get_group (DdbListviewIter it, char *str, int size) {
- deadbeef->pl_format_title ((DB_playItem_t *)it, -1, str, size, -1, "%a - [%y] %b");
+ if (!group_by_str) {
+ return -1;
+ }
+ deadbeef->pl_format_title ((DB_playItem_t *)it, -1, str, size, -1, group_by_str);
+ return 0;
}
DdbListviewBinding main_binding = {