From 0415b1ec23934e833b5d859aed0f12565c65b526 Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Sun, 18 Oct 2009 19:14:19 +0200 Subject: new custom columns WIP --- callbacks.c | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) (limited to 'callbacks.c') diff --git a/callbacks.c b/callbacks.c index abf970fc..23bf56d0 100644 --- a/callbacks.c +++ b/callbacks.c @@ -56,6 +56,7 @@ void main_playlist_init (GtkWidget *widget) { // init playlist control structure, and put it into widget user-data memset (&main_playlist, 0, sizeof (main_playlist)); + main_playlist.title = "playlist"; main_playlist.playlist = widget; main_playlist.header = lookup_widget (mainwin, "header"); main_playlist.scrollbar = lookup_widget (mainwin, "playscroll"); @@ -69,10 +70,26 @@ main_playlist_init (GtkWidget *widget) { main_playlist.row = -1; main_playlist.clicktime = -1; main_playlist.nvisiblerows = 0; - //main_playlist.fmtcache = NULL; -// int colwidths[pl_ncolumns] = { 50, 150, 50, 150, 50 }; -// memcpy (main_playlist.colwidths, colwidths, sizeof (colwidths)); - main_playlist.colwidths = session_get_main_colwidths_ptr (); + +// FIXME: on 1st run, copy colwidths to new columns +// main_playlist.colwidths = session_get_main_colwidths_ptr (); + + DB_conf_item_t *col = conf_find ("playlist.column.", NULL); + if (!col) { + // create default set of columns + gtkpl_column_append (&main_playlist, gtkpl_column_alloc ("Playing", 50, DB_COLUMN_PLAYING, NULL, 0)); + gtkpl_column_append (&main_playlist, gtkpl_column_alloc ("Artist / Album", 150, DB_COLUMN_ARTIST_ALBUM, NULL, 0)); + gtkpl_column_append (&main_playlist, gtkpl_column_alloc ("Track №", 50, DB_COLUMN_TRACK, NULL, 1)); + gtkpl_column_append (&main_playlist, gtkpl_column_alloc ("Title / Track Artist", 150, DB_COLUMN_TITLE, NULL, 0)); + gtkpl_column_append (&main_playlist, gtkpl_column_alloc ("Duration", 50, DB_COLUMN_DURATION, NULL, 0)); + } + else { + while (col) { + gtkpl_append_column_from_textdef (&main_playlist, col->value); + col = conf_find ("playlist.column.", col); + } + } + gtk_object_set_data (GTK_OBJECT (main_playlist.playlist), "ps", &main_playlist); gtk_object_set_data (GTK_OBJECT (main_playlist.header), "ps", &main_playlist); gtk_object_set_data (GTK_OBJECT (main_playlist.scrollbar), "ps", &main_playlist); @@ -84,6 +101,7 @@ search_playlist_init (GtkWidget *widget) { extern GtkWidget *searchwin; // init playlist control structure, and put it into widget user-data memset (&search_playlist, 0, sizeof (search_playlist)); + search_playlist.title = "search"; search_playlist.playlist = widget; search_playlist.header = lookup_widget (searchwin, "searchheader"); search_playlist.scrollbar = lookup_widget (searchwin, "searchscroll"); @@ -99,10 +117,23 @@ search_playlist_init (GtkWidget *widget) { search_playlist.row = -1; search_playlist.clicktime = -1; search_playlist.nvisiblerows = 0; - //search_playlist.fmtcache = NULL; -// int colwidths[pl_ncolumns] = { 0, 150, 50, 150, 50 }; -// memcpy (search_playlist.colwidths, colwidths, sizeof (colwidths)); - search_playlist.colwidths = session_get_search_colwidths_ptr (); + +// FIXME: port to new columns +// search_playlist.colwidths = session_get_search_colwidths_ptr (); + // create default set of columns + DB_conf_item_t *col = conf_find ("search.column.", NULL); + if (!col) { + gtkpl_column_append (&search_playlist, gtkpl_column_alloc ("Artist / Album", 150, DB_COLUMN_ARTIST_ALBUM, NULL, 0)); + gtkpl_column_append (&search_playlist, gtkpl_column_alloc ("Track №", 50, DB_COLUMN_TRACK, NULL, 1)); + gtkpl_column_append (&search_playlist, gtkpl_column_alloc ("Title / Track Artist", 150, DB_COLUMN_TITLE, NULL, 0)); + gtkpl_column_append (&search_playlist, gtkpl_column_alloc ("Duration", 50, DB_COLUMN_DURATION, NULL, 0)); + } + else { + while (col) { + gtkpl_append_column_from_textdef (&search_playlist, col->value); + col = conf_find ("search.column.", col); + } + } gtk_object_set_data (GTK_OBJECT (search_playlist.playlist), "ps", &search_playlist); gtk_object_set_data (GTK_OBJECT (search_playlist.header), "ps", &search_playlist); gtk_object_set_data (GTK_OBJECT (search_playlist.scrollbar), "ps", &search_playlist); -- cgit v1.2.3