41 #include <glib/gi18n.h>
44 #include <glib/gstdio.h>
48 #include "player_tab.h"
49 #include "split_files.h"
50 #include "utilities.h"
68 extern gint selected_player;
69 extern gint split_files;
70 extern gboolean timer_active;
85 model = gtk_list_store_new(SPLIT_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
87 return GTK_TREE_MODEL (model);
98 tree_view = (GtkTreeView *)
99 gtk_tree_view_new_with_model (model);
107 GtkCellRendererText *renderer =
108 GTK_CELL_RENDERER_TEXT(gtk_cell_renderer_text_new());
109 g_object_set_data(G_OBJECT(renderer),
"col", GINT_TO_POINTER(COL_NAME));
110 GtkTreeViewColumn *name_column = gtk_tree_view_column_new_with_attributes
111 (_(
"Filename"), GTK_CELL_RENDERER(renderer),
"text", COL_NAME, NULL);
114 gtk_tree_view_insert_column(GTK_TREE_VIEW(tree_view),
115 GTK_TREE_VIEW_COLUMN(name_column),COL_NAME);
117 gtk_tree_view_column_set_alignment(GTK_TREE_VIEW_COLUMN(name_column), 0.5);
118 gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(name_column),
119 GTK_TREE_VIEW_COLUMN_AUTOSIZE);
120 gtk_tree_view_column_set_resizable(name_column, TRUE);
131 model = gtk_tree_view_get_model(tree_view);
136 gtk_tree_model_get_iter_first(model, &iter);
137 gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
149 while (strchr((gchar *) filename, G_DIR_SEPARATOR)!=NULL)
150 filename = (guchar *)strchr((gchar *)filename, G_DIR_SEPARATOR) + 1;
162 model = gtk_tree_view_get_model(tree_view);
163 gtk_list_store_append (GTK_LIST_STORE (model), &iter);
166 gtk_list_store_set (GTK_LIST_STORE (model), &iter,
168 COL_FILENAME,name, -1);
176 gchar *filename = NULL;
179 GtkTreePath *path = NULL;
182 model = gtk_tree_view_get_model(GTK_TREE_VIEW(
split_tree));
184 path = gtk_tree_path_new_from_indices (number-1 ,-1);
186 if(gtk_tree_model_get_iter(model, &iter, path))
188 gtk_tree_model_get(model, &iter, COL_FILENAME, &filename, -1);
190 gtk_tree_path_free(path);
206 GList *file_list = NULL;
213 GtkTreePath *path = NULL;
216 model = gtk_tree_view_get_model(GTK_TREE_VIEW(
split_tree));
218 gint number = split_files;
222 path = gtk_tree_path_new_from_indices (number ,-1);
224 if(gtk_tree_model_get_iter(model, &iter, path))
226 gtk_tree_model_get(model, &iter, COL_FILENAME, &filename, -1);
229 file_list = g_list_append(file_list, strdup(filename));
232 gtk_tree_path_free(path);
236 if (file_list != NULL)
242 g_list_foreach(file_list, (GFunc)g_free, NULL);
243 g_list_free(file_list);
252 GList *selected_list = NULL;
253 GList *current_element = NULL;
254 GtkTreeSelection *selection;
257 model = gtk_tree_view_get_model(GTK_TREE_VIEW(
split_tree));
259 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(
split_tree));
261 selected_list = gtk_tree_selection_get_selected_rows(selection, &model);
268 while (g_list_length(selected_list) > 0)
271 current_element = g_list_last(selected_list);
272 path = current_element->data;
274 gtk_tree_model_get_iter(model, &iter, path);
275 gtk_tree_model_get(model, &iter, COL_FILENAME, &filename, -1);
278 gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
279 selected_list = g_list_remove(selected_list, path);
284 gtk_tree_path_free(path);
297 g_list_foreach (selected_list,
298 (GFunc)gtk_tree_path_free, NULL);
299 g_list_free (selected_list);
309 model = gtk_tree_view_get_model(GTK_TREE_VIEW(
split_tree));
316 gtk_tree_model_get_iter_first(model, &iter);
317 gtk_tree_model_get(model, &iter, COL_FILENAME, &filename, -1);
319 gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
334 hbox = gtk_hbox_new(FALSE,0);
339 _(
"_Queue files to player"),FALSE);
340 gtk_box_pack_start (GTK_BOX (hbox),
349 _(
"_Delete selected files"),FALSE);
350 gtk_box_pack_start (GTK_BOX (hbox),
359 _(
"D_elete all files"),FALSE);
360 gtk_box_pack_start (GTK_BOX (hbox),
371 GtkTreeViewColumn *arg2, gpointer data)
375 GList *selected_list = NULL;
376 GList *current_element = NULL;
377 GtkTreeSelection *selection;
381 model = gtk_tree_view_get_model(GTK_TREE_VIEW(tree_view));
383 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
385 selected_list = gtk_tree_selection_get_selected_rows(selection, &model);
388 current_element = g_list_first(selected_list);
389 path = current_element->data;
391 gtk_tree_model_get_iter(model, &iter, path);
393 gchar *filename = NULL;
395 gtk_tree_model_get(model, &iter, COL_FILENAME, &filename, -1);
405 gtk_tree_path_free(path);
418 GtkTreeSelection *selection;
419 GList *selected_list = NULL;
422 model = gtk_tree_view_get_model(GTK_TREE_VIEW(
split_tree));
424 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(
split_tree));
426 selected_list = gtk_tree_selection_get_selected_rows(selection, &model);
428 if (g_list_length(selected_list) > 0)
438 GtkWidget *window_child;
440 window_child = gtk_bin_get_child(GTK_BIN(window));
442 gtk_widget_reparent(GTK_WIDGET(window_child),
445 gtk_widget_destroy(window);
456 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
458 gtk_widget_reparent(GTK_WIDGET(widget), GTK_WIDGET(window));
460 g_signal_connect (G_OBJECT (window),
"delete_event",
464 gtk_widget_show(GTK_WIDGET(window));
472 vbox = gtk_vbox_new(FALSE,0);
488 GtkWidget *scrolled_window;
489 scrolled_window = gtk_scrolled_window_new (NULL, NULL);
490 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(scrolled_window), GTK_SHADOW_NONE);
491 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
492 GTK_POLICY_AUTOMATIC,
493 GTK_POLICY_AUTOMATIC);
494 gtk_box_pack_start (GTK_BOX (vbox),
495 scrolled_window, TRUE, TRUE, 0);
499 gtk_container_add (GTK_CONTAINER (scrolled_window),
501 g_signal_connect (G_OBJECT (
split_tree),
"row-activated",
505 GtkWidget *split_tree_selection;
506 split_tree_selection = (GtkWidget *)
507 gtk_tree_view_get_selection(GTK_TREE_VIEW(
split_tree));
508 g_signal_connect (G_OBJECT (split_tree_selection),
"changed",
510 gtk_tree_selection_set_mode(GTK_TREE_SELECTION(split_tree_selection),
511 GTK_SELECTION_MULTIPLE);
514 GtkWidget *queue_buttons_hbox;
517 gtk_box_pack_start (GTK_BOX (vbox),
518 queue_buttons_hbox, FALSE, FALSE, 2);