+ /* BEGIN OF FILEVIEW GTK_TREE_VIEW */
+ p_intf->p_sys->p_tvfile = NULL;
+ p_intf->p_sys->p_tvfile = (GtkTreeView *) lookup_widget( p_intf->p_sys->p_window,
+ "tvFileList");
+ if (NULL == p_intf->p_sys->p_tvfile)
+ msg_Err(p_intf, "Error obtaining pointer to File List");
+
+ /* Insert columns 0 */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 0, (gchar *) N_("Filename"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 0 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 0 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 0);
+ /* Insert columns 1 */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 1, (gchar *) N_("Permissions"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 1 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 1 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 1);
+ /* Insert columns 2 */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 2, (gchar *) N_("Size"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 2 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 2 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 2);
+ /* Insert columns 3 */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 3, (gchar *) N_("Owner"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 3 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 3 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 3);
+ /* Insert columns 4 */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 4, (gchar *) N_("Group"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 4 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 4 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 4);
+
+ /* Get new directory listing */
+ p_filelist = gtk_list_store_new (5,
+ G_TYPE_STRING, /* Filename */
+ G_TYPE_STRING, /* permissions */
+ G_TYPE_UINT64, /* File size */
+ G_TYPE_STRING, /* Owner */
+ G_TYPE_STRING);/* Group */
+ ReadDirectory(p_intf, p_filelist, (char*)".");
+ gtk_tree_view_set_model(GTK_TREE_VIEW(p_intf->p_sys->p_tvfile), GTK_TREE_MODEL(p_filelist));
+ g_object_unref(p_filelist); /* Model will be released by GtkTreeView */
+ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(p_intf->p_sys->p_tvfile)),GTK_SELECTION_MULTIPLE);
+
+ /* Column properties */
+ gtk_tree_view_set_headers_visible(p_intf->p_sys->p_tvfile, TRUE);
+ gtk_tree_view_columns_autosize(p_intf->p_sys->p_tvfile);
+ gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(p_intf->p_sys->p_tvfile),TRUE);
+ /* END OF FILEVIEW GTK_TREE_VIEW */
+
+ /* BEGIN OF PLAYLIST GTK_TREE_VIEW */
+ p_intf->p_sys->p_tvplaylist = NULL;
+ p_intf->p_sys->p_tvplaylist = (GtkTreeView *) lookup_widget( p_intf->p_sys->p_window, "tvPlaylist");
+ if (NULL == p_intf->p_sys->p_tvplaylist)
+ msg_Err(p_intf, "Error obtaining pointer to Play List");
+
+ /* Columns 1 */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvplaylist, 0, (gchar *) N_("Filename"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvplaylist, 0 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 0 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 0);
+ /* Column 2 */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvplaylist, 1, (gchar *) N_("Time"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvplaylist, 1 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 1 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 1);
+#if 0
+ /* Column 3 - is a hidden column used for reliable deleting items from the underlying playlist */
+ p_renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvplaylist, 2, (gchar *) N_("Index"), p_renderer, NULL);
+ p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvplaylist, 2 );
+ gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 2 );
+ gtk_tree_view_column_set_sort_column_id(p_column, 2);
+#endif
+ /* update the playlist */
+ p_playlist = pl_Yield( p_intf );
+ p_playlist_store = gtk_list_store_new (3,
+ G_TYPE_STRING, /* Filename */
+ G_TYPE_STRING, /* Time */
+ G_TYPE_UINT); /* Hidden index */
+ PlaylistRebuildListStore(p_intf,p_playlist_store, p_playlist);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(p_intf->p_sys->p_tvplaylist), GTK_TREE_MODEL(p_playlist_store));
+ g_object_unref(p_playlist_store);
+ pl_Release( p_intf ); /* Free the playlist */
+ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(p_intf->p_sys->p_tvplaylist)),GTK_SELECTION_MULTIPLE);
+
+ /* Column properties */
+ gtk_tree_view_set_headers_visible(p_intf->p_sys->p_tvplaylist, TRUE);
+ gtk_tree_view_columns_autosize(p_intf->p_sys->p_tvplaylist);
+ gtk_tree_view_set_headers_clickable(p_intf->p_sys->p_tvplaylist, TRUE);
+ /* END OF PLAYLIST GTK_TREE_VIEW */
+
+ /* Hide the Preference TAB for now. */
+ GtkWidget *p_preference_tab = NULL;
+ p_preference_tab = gtk_notebook_get_nth_page(p_intf->p_sys->p_notebook,5);
+ if (p_preference_tab != NULL)
+ gtk_widget_hide(p_preference_tab);
+