gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r1265 - gnunet-gtk/src/plugins/fs/extensions


From: grothoff
Subject: [GNUnet-SVN] r1265 - gnunet-gtk/src/plugins/fs/extensions
Date: Mon, 4 Jul 2005 17:07:33 -0700 (PDT)

Author: grothoff
Date: 2005-07-04 17:07:28 -0700 (Mon, 04 Jul 2005)
New Revision: 1265

Modified:
   gnunet-gtk/src/plugins/fs/extensions/musicinsert.c
   gnunet-gtk/src/plugins/fs/extensions/musicinsert.glade
   gnunet-gtk/src/plugins/fs/extensions/musicinsert.h
Log:
update

Modified: gnunet-gtk/src/plugins/fs/extensions/musicinsert.c
===================================================================
--- gnunet-gtk/src/plugins/fs/extensions/musicinsert.c  2005-07-05 00:03:19 UTC 
(rev 1264)
+++ gnunet-gtk/src/plugins/fs/extensions/musicinsert.c  2005-07-05 00:07:28 UTC 
(rev 1265)
@@ -41,229 +41,285 @@
 
 #include <extractor.h>
 
+#include "fs.h"
+#include "ecrs.h"
+#include "gnunet_ecrs_lib.h"
+#include "platform.h"
 #include "main.h"
 
-/* platform.h will be needed */
 
-#define _ 
+GladeXML *musicinsertXML;
+GtkListStore *filelist_store;
+GList *AlbumList, *ArtistList, *TypeList;
+GtkComboBoxEntry *artistcombobox, *albumcombobox, *typecombobox;
+EXTRACTOR_ExtractorList *Extractors;
+GtkWidget *musicinsertdialog;
 
+GtkTreeViewColumn *filename_list_col, *title_list_col, *artist_list_col,
+       *album_list_col, *type_list_col, *format_list_col, *keywords_list_col;
+
+GtkWidget *filelist_popup;
+
 int
 main (int argc, char *argv[])
 {
 
 
 
-  gtk_init(&argc, &argv);
+       gtk_init (&argc, &argv);
 
-show_musicinsertdialog ();
+       show_musicinsertdialog ();
 
-  gtk_main ();
-  return 0;
+       gtk_main ();
+       return 0;
 }
 
-void show_musicinsertdialog ()
+void
+show_musicinsertdialog ()
 {
-    musicinsertXML = glade_xml_new("../musicinsert.glade", 
"musicinsertdialog", NULL);
-       glade_xml_signal_autoconnect(musicinsertXML);
+       musicinsertXML =
+               glade_xml_new (MUSICINSERTXMLFILE, "musicinsertdialog",
+                              NULL);
+       glade_xml_signal_autoconnect (musicinsertXML);
 /* libglade*/
 
 
-  gtk_set_locale ();
+       gtk_set_locale ();
 
-  /*
-   * The following code was added by Glade to create one of each component
-   * (except popup menus), just so that you see something after building
-   * the project. Delete any components that you don't want shown initially.
-   */
-  //musicinsertdialog = create_musicinsertdialog ();
-  GtkWidget *musicinsertdialog;
-  musicinsertdialog = glade_xml_get_widget(musicinsertXML, 
"musicinsertdialog");
+       musicinsertdialog =
+               glade_xml_get_widget (musicinsertXML, "musicinsertdialog");
 
 /*
  * Create the 3 ComboBoxEntry manually (libglade doesn't handle this well :
  * should use gtk_combo_box_entry_new_text instead of gtk_combo_box_entry_new)
  */
-       artistcombobox = GTK_COMBO_BOX_ENTRY(gtk_combo_box_entry_new_text ());
-       albumcombobox = GTK_COMBO_BOX_ENTRY(gtk_combo_box_entry_new_text ());
-       typecombobox = GTK_COMBO_BOX_ENTRY(gtk_combo_box_entry_new_text ());
-       
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "Ogg 
(application/ogg)");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "MP3 
(audio/mpeg)");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "MPC 
(application/x-musepack)");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "AAC");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "WMA 
(audio/x-ms-wma)");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "FLAC 
(audio/flac)");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "APE");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "WAV 
(application/x-wav)");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "REAL 
(audio/vnd.rn-realaudio)");
-       gtk_combo_box_append_text (GTK_COMBO_BOX(typecombobox), "MIDI 
(audio/x-midi)");
-       
-       GtkWidget *globaltable = glade_xml_get_widget (musicinsertXML, 
"globaltable");
-       gtk_table_attach (GTK_TABLE(globaltable), GTK_WIDGET(artistcombobox), 
1, 3, 1, 2, GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
-       gtk_table_attach (GTK_TABLE(globaltable), GTK_WIDGET(albumcombobox), 1, 
3, 2, 3, GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
-       gtk_table_attach (GTK_TABLE(globaltable), GTK_WIDGET(typecombobox), 1, 
3, 3, 4, GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
+       artistcombobox =
+               GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ());
+       albumcombobox = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ());
+       typecombobox = GTK_COMBO_BOX_ENTRY (gtk_combo_box_entry_new_text ());
 
-       gtk_widget_show (GTK_WIDGET(artistcombobox));
-       gtk_widget_show (GTK_WIDGET(albumcombobox));
-       gtk_widget_show (GTK_WIDGET(typecombobox));
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "Ogg (application/ogg)");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "MP3 (audio/mpeg)");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "MPC (application/x-musepack)");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox), "AAC");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "WMA (audio/x-ms-wma)");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "FLAC (audio/flac)");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox), "APE");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "WAV (application/x-wav)");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "REAL (audio/vnd.rn-realaudio)");
+       gtk_combo_box_append_text (GTK_COMBO_BOX (typecombobox),
+                                  "MIDI (audio/x-midi)");
 
-  /*
-   * treeview creation 
-   */
-   
-   /* liststore model */
-  filelist_store =
-    gtk_list_store_new (COLS_NUMBER, G_TYPE_STRING, G_TYPE_STRING,
-                       G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
-                       G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-                       
-  /* view */
-  GtkWidget *filelist = glade_xml_get_widget (musicinsertXML, "filelist");
-  gtk_tree_view_set_model (GTK_TREE_VIEW (filelist),
-                          GTK_TREE_MODEL (filelist_store));
+       GtkWidget *globaltable =
+               glade_xml_get_widget (musicinsertXML, "globaltable");
+       gtk_table_attach (GTK_TABLE (globaltable),
+                         GTK_WIDGET (artistcombobox), 1, 3, 1, 2,
+                         GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
+       gtk_table_attach (GTK_TABLE (globaltable), GTK_WIDGET (albumcombobox),
+                         1, 3, 2, 3, GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0,
+                         0);
+       gtk_table_attach (GTK_TABLE (globaltable), GTK_WIDGET (typecombobox),
+                         1, 3, 3, 4, GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0,
+                         0);
 
-  /* cells definition */
-  GtkCellRenderer *filename_renderer = gtk_cell_renderer_text_new ();
-  g_object_set (filename_renderer, "editable", TRUE, NULL);
-  GtkCellRenderer *title_renderer = gtk_cell_renderer_text_new ();
-  g_object_set (title_renderer, "editable", TRUE, NULL);
-  GtkCellRenderer *artist_renderer = gtk_cell_renderer_text_new ();
-  g_object_set (artist_renderer, "editable", TRUE, NULL);
-  GtkCellRenderer *album_renderer = gtk_cell_renderer_text_new ();
-  g_object_set (album_renderer, "editable", TRUE, NULL);
-  GtkCellRenderer *type_renderer = gtk_cell_renderer_text_new ();
-  g_object_set (type_renderer, "editable", TRUE, NULL);
-  GtkCellRenderer *format_renderer = gtk_cell_renderer_text_new ();
-  g_object_set (format_renderer, "editable", TRUE, NULL);
-  GtkCellRenderer *keywords_renderer = gtk_cell_renderer_text_new ();
-  g_object_set (keywords_renderer, "editable", TRUE, NULL);
+       gtk_widget_show (GTK_WIDGET (artistcombobox));
+       gtk_widget_show (GTK_WIDGET (albumcombobox));
+       gtk_widget_show (GTK_WIDGET (typecombobox));
 
+       /*
+        * treeview creation 
+        */
 
-  g_signal_connect ((gpointer) filename_renderer, "edited",
-                   G_CALLBACK (on_renderer_edited), (gpointer) 
&filename_col_num);
-  g_signal_connect ((gpointer) title_renderer, "edited",
-                   G_CALLBACK (on_renderer_edited), (gpointer) &title_col_num);
-  g_signal_connect ((gpointer) artist_renderer, "edited",
-                   G_CALLBACK (on_renderer_edited), (gpointer) 
&artist_col_num);
-  g_signal_connect ((gpointer) album_renderer, "edited",
-                   G_CALLBACK (on_renderer_edited), (gpointer) &album_col_num);
-  g_signal_connect ((gpointer) type_renderer, "edited",
-                   G_CALLBACK (on_renderer_edited), (gpointer) &type_col_num);
-  g_signal_connect ((gpointer) format_renderer, "edited",
-                   G_CALLBACK (on_renderer_edited), (gpointer) 
&format_col_num);
-  g_signal_connect ((gpointer) keywords_renderer, "edited",
-                   G_CALLBACK (on_renderer_edited), (gpointer) 
&keywords_col_num);
+       /* liststore model */
+       filelist_store =
+               gtk_list_store_new (COLS_NUMBER, G_TYPE_STRING, G_TYPE_STRING,
+                                   G_TYPE_STRING, G_TYPE_STRING,
+                                   G_TYPE_STRING, G_TYPE_STRING,
+                                   G_TYPE_STRING, G_TYPE_STRING);
 
-  /* columns definition */
-  filename_list_col =
-    gtk_tree_view_column_new_with_attributes (_("Published filename"),
-                                             filename_renderer,
-                                             "text", FILENAME_COL, NULL);
-  title_list_col =
-    gtk_tree_view_column_new_with_attributes (_("Title"),
-                                             title_renderer,
-                                             "text", TITLE_COL, NULL);
-  artist_list_col =
-    gtk_tree_view_column_new_with_attributes (_("Artist"),
-                                             artist_renderer,
-                                             "text", ARTIST_COL, NULL);
-  album_list_col =
-    gtk_tree_view_column_new_with_attributes (_("Album"),
-                                             album_renderer,
-                                             "text", ALBUM_COL, NULL);
-  type_list_col =
-    gtk_tree_view_column_new_with_attributes (_("Type"),
-                                             type_renderer,
-                                             "text", TYPE_COL, NULL);
-  format_list_col =
-    gtk_tree_view_column_new_with_attributes (_("Format"),
-                                             format_renderer,
-                                             "text", FORMAT_COL, NULL);
-  keywords_list_col =
-    gtk_tree_view_column_new_with_attributes (_("Keywords"),
-                                             keywords_renderer,
-                                             "text", KEYWORDS_COL, NULL);
+       /* view */
+       GtkWidget *filelist =
+               glade_xml_get_widget (musicinsertXML, "filelist");
+       gtk_tree_view_set_model (GTK_TREE_VIEW (filelist),
+                                GTK_TREE_MODEL (filelist_store));
 
+       /* cells definition */
+       GtkCellRenderer *filename_renderer = gtk_cell_renderer_text_new ();
+       g_object_set (filename_renderer, "editable", TRUE, NULL);
+       GtkCellRenderer *title_renderer = gtk_cell_renderer_text_new ();
+       g_object_set (title_renderer, "editable", TRUE, NULL);
+       GtkCellRenderer *artist_renderer = gtk_cell_renderer_text_new ();
+       g_object_set (artist_renderer, "editable", TRUE, NULL);
+       GtkCellRenderer *album_renderer = gtk_cell_renderer_text_new ();
+       g_object_set (album_renderer, "editable", TRUE, NULL);
+       GtkCellRenderer *type_renderer = gtk_cell_renderer_text_new ();
+       g_object_set (type_renderer, "editable", TRUE, NULL);
+       GtkCellRenderer *format_renderer = gtk_cell_renderer_text_new ();
+       g_object_set (format_renderer, "editable", TRUE, NULL);
+       GtkCellRenderer *keywords_renderer = gtk_cell_renderer_text_new ();
+       g_object_set (keywords_renderer, "editable", TRUE, NULL);
+
+
+       g_signal_connect ((gpointer) filename_renderer, "edited",
+                         G_CALLBACK (on_renderer_edited),
+                         (gpointer) & filename_col_num);
+       g_signal_connect ((gpointer) title_renderer, "edited",
+                         G_CALLBACK (on_renderer_edited),
+                         (gpointer) & title_col_num);
+       g_signal_connect ((gpointer) artist_renderer, "edited",
+                         G_CALLBACK (on_renderer_edited),
+                         (gpointer) & artist_col_num);
+       g_signal_connect ((gpointer) album_renderer, "edited",
+                         G_CALLBACK (on_renderer_edited),
+                         (gpointer) & album_col_num);
+       g_signal_connect ((gpointer) type_renderer, "edited",
+                         G_CALLBACK (on_renderer_edited),
+                         (gpointer) & type_col_num);
+       g_signal_connect ((gpointer) format_renderer, "edited",
+                         G_CALLBACK (on_renderer_edited),
+                         (gpointer) & format_col_num);
+       g_signal_connect ((gpointer) keywords_renderer, "edited",
+                         G_CALLBACK (on_renderer_edited),
+                         (gpointer) & keywords_col_num);
+
+       /* columns definition */
+       filename_list_col =
+               gtk_tree_view_column_new_with_attributes (_
+                                                         ("Published 
filename"),
+                                                         filename_renderer,
+                                                         "text",
+                                                         FILENAME_COL, NULL);
+       title_list_col =
+               gtk_tree_view_column_new_with_attributes (_("Title"),
+                                                         title_renderer,
+                                                         "text", TITLE_COL,
+                                                         NULL);
+       artist_list_col =
+               gtk_tree_view_column_new_with_attributes (_("Artist"),
+                                                         artist_renderer,
+                                                         "text", ARTIST_COL,
+                                                         NULL);
+       album_list_col =
+               gtk_tree_view_column_new_with_attributes (_("Album"),
+                                                         album_renderer,
+                                                         "text", ALBUM_COL,
+                                                         NULL);
+       type_list_col =
+               gtk_tree_view_column_new_with_attributes (_("Type"),
+                                                         type_renderer,
+                                                         "text", TYPE_COL,
+                                                         NULL);
+       format_list_col =
+               gtk_tree_view_column_new_with_attributes (_("Format"),
+                                                         format_renderer,
+                                                         "text", FORMAT_COL,
+                                                         NULL);
+       keywords_list_col =
+               gtk_tree_view_column_new_with_attributes (_("Keywords"),
+                                                         keywords_renderer,
+                                                         "text",
+                                                         KEYWORDS_COL, NULL);
+
 /* Allow sorting for all columns */
-  gtk_tree_view_column_set_sort_column_id (filename_list_col, FILENAME_COL);
-  gtk_tree_view_column_set_sort_column_id (title_list_col, TITLE_COL);
-  gtk_tree_view_column_set_sort_column_id (artist_list_col, ARTIST_COL);
-  gtk_tree_view_column_set_sort_column_id (album_list_col, ALBUM_COL);
-  gtk_tree_view_column_set_sort_column_id (type_list_col, TYPE_COL);
-  gtk_tree_view_column_set_sort_column_id (format_list_col, FORMAT_COL);
-  gtk_tree_view_column_set_sort_column_id (keywords_list_col, KEYWORDS_COL);
+       gtk_tree_view_column_set_sort_column_id (filename_list_col,
+                                                FILENAME_COL);
+       gtk_tree_view_column_set_sort_column_id (title_list_col, TITLE_COL);
+       gtk_tree_view_column_set_sort_column_id (artist_list_col, ARTIST_COL);
+       gtk_tree_view_column_set_sort_column_id (album_list_col, ALBUM_COL);
+       gtk_tree_view_column_set_sort_column_id (type_list_col, TYPE_COL);
+       gtk_tree_view_column_set_sort_column_id (format_list_col, FORMAT_COL);
+       gtk_tree_view_column_set_sort_column_id (keywords_list_col,
+                                                KEYWORDS_COL);
 
-  /* Allow to resize all columns */
-  gtk_tree_view_column_set_resizable (filename_list_col, TRUE);
-  gtk_tree_view_column_set_resizable (title_list_col, TRUE);
-  gtk_tree_view_column_set_resizable (artist_list_col, TRUE);
-  gtk_tree_view_column_set_resizable (album_list_col, TRUE);
-  gtk_tree_view_column_set_resizable (type_list_col, TRUE);
-  gtk_tree_view_column_set_resizable (format_list_col, TRUE);
-  gtk_tree_view_column_set_resizable (keywords_list_col, TRUE);
+       /* Allow to resize all columns */
+       gtk_tree_view_column_set_resizable (filename_list_col, TRUE);
+       gtk_tree_view_column_set_resizable (title_list_col, TRUE);
+       gtk_tree_view_column_set_resizable (artist_list_col, TRUE);
+       gtk_tree_view_column_set_resizable (album_list_col, TRUE);
+       gtk_tree_view_column_set_resizable (type_list_col, TRUE);
+       gtk_tree_view_column_set_resizable (format_list_col, TRUE);
+       gtk_tree_view_column_set_resizable (keywords_list_col, TRUE);
 
-  /* Hide unedeed columns */
-  gtk_tree_view_column_set_visible (artist_list_col, FALSE);
-  gtk_tree_view_column_set_visible (album_list_col, FALSE);
-  gtk_tree_view_column_set_visible (type_list_col, FALSE);
-  gtk_tree_view_column_set_visible (keywords_list_col, FALSE);
+       /* Hide unedeed columns */
+       gtk_tree_view_column_set_visible (artist_list_col, FALSE);
+       gtk_tree_view_column_set_visible (album_list_col, FALSE);
+       gtk_tree_view_column_set_visible (type_list_col, FALSE);
+       gtk_tree_view_column_set_visible (keywords_list_col, FALSE);
 
-  /* Set a smart option */
-  gtk_tree_view_get_hover_expand (GTK_TREE_VIEW (filelist));
+       /* Set a smart option */
+       gtk_tree_view_get_hover_expand (GTK_TREE_VIEW (filelist));
 
-  /* add columns to view */
-  gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), filename_list_col);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), title_list_col);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), artist_list_col);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), album_list_col);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), type_list_col);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), format_list_col);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), keywords_list_col);
+       /* add columns to view */
+       gtk_tree_view_append_column (GTK_TREE_VIEW (filelist),
+                                    filename_list_col);
+       gtk_tree_view_append_column (GTK_TREE_VIEW (filelist),
+                                    title_list_col);
+       gtk_tree_view_append_column (GTK_TREE_VIEW (filelist),
+                                    artist_list_col);
+       gtk_tree_view_append_column (GTK_TREE_VIEW (filelist),
+                                    album_list_col);
+       gtk_tree_view_append_column (GTK_TREE_VIEW (filelist), type_list_col);
+       gtk_tree_view_append_column (GTK_TREE_VIEW (filelist),
+                                    format_list_col);
+       gtk_tree_view_append_column (GTK_TREE_VIEW (filelist),
+                                    keywords_list_col);
 
-  /* Expand columns */
-  gtk_tree_view_column_set_expand (filename_list_col, TRUE);
-  gtk_tree_view_column_set_expand (artist_list_col, TRUE);
-  gtk_tree_view_column_set_expand (album_list_col, TRUE);
-  gtk_tree_view_column_set_expand (type_list_col, TRUE);
-  gtk_tree_view_column_set_expand (format_list_col, TRUE);
-  gtk_tree_view_column_set_expand (keywords_list_col, TRUE);
+       /* Expand columns */
+       gtk_tree_view_column_set_expand (filename_list_col, TRUE);
+       gtk_tree_view_column_set_expand (artist_list_col, TRUE);
+       gtk_tree_view_column_set_expand (album_list_col, TRUE);
+       gtk_tree_view_column_set_expand (type_list_col, TRUE);
+       gtk_tree_view_column_set_expand (format_list_col, TRUE);
+       gtk_tree_view_column_set_expand (keywords_list_col, TRUE);
 
-  /* Allow multiple selections */
-  GtkTreeSelection *filelist_selection =
-    gtk_tree_view_get_selection (GTK_TREE_VIEW (filelist));
-  gtk_tree_selection_set_mode (filelist_selection, GTK_SELECTION_MULTIPLE);
+       /* Allow multiple selections */
+       GtkTreeSelection *filelist_selection =
+               gtk_tree_view_get_selection (GTK_TREE_VIEW (filelist));
+       gtk_tree_selection_set_mode (filelist_selection,
+                                    GTK_SELECTION_MULTIPLE);
 
 
 
-  AlbumList = NULL;
-  ArtistList = NULL;
+       AlbumList = NULL;
+       ArtistList = NULL;
 
-  Extractors = EXTRACTOR_loadDefaultLibraries ();
-  Extractors = EXTRACTOR_loadConfigLibraries (Extractors, 
"libextractor_filename");
+       Extractors = EXTRACTOR_loadDefaultLibraries ();
+       Extractors =
+               EXTRACTOR_loadConfigLibraries (Extractors,
+                                              "libextractor_filename");
 
 /* Create the popup menu */
-  filelist_popup = gtk_menu_new ();
-  GtkWidget *select_all_menu_item =
-    gtk_menu_item_new_with_label (_("Select all files"));
-  GtkWidget *delete_menu_item =
-    gtk_menu_item_new_with_label (_("Remove selected files"));
-  gtk_menu_attach (GTK_MENU (filelist_popup), select_all_menu_item, 0, 1, 0,
-                  1);
-  gtk_menu_attach (GTK_MENU (filelist_popup), delete_menu_item, 0, 1, 1, 2);
-  gtk_widget_show (select_all_menu_item);
-  gtk_widget_show (delete_menu_item);
-  gtk_signal_connect (GTK_OBJECT (filelist), "button-press-event",
-                     GTK_SIGNAL_FUNC (popup_delete), (gpointer) NULL);
-  gtk_signal_connect (GTK_OBJECT (select_all_menu_item), "activate",
-                     GTK_SIGNAL_FUNC (select_all_files), (gpointer) TRUE);
-  gtk_signal_connect (GTK_OBJECT (delete_menu_item), "activate",
-                     GTK_SIGNAL_FUNC (remove_file_from_list),
-                     (gpointer) NULL);
+       filelist_popup = gtk_menu_new ();
+       GtkWidget *select_all_menu_item =
+               gtk_menu_item_new_with_label (_("Select all files"));
+       GtkWidget *delete_menu_item =
+               gtk_menu_item_new_with_label (_("Remove selected files"));
+       gtk_menu_attach (GTK_MENU (filelist_popup), select_all_menu_item, 0,
+                        1, 0, 1);
+       gtk_menu_attach (GTK_MENU (filelist_popup), delete_menu_item, 0, 1, 1,
+                        2);
+       gtk_widget_show (select_all_menu_item);
+       gtk_widget_show (delete_menu_item);
+       gtk_signal_connect (GTK_OBJECT (filelist), "button-press-event",
+                           GTK_SIGNAL_FUNC (popup_delete), (gpointer) NULL);
+       gtk_signal_connect (GTK_OBJECT (select_all_menu_item), "activate",
+                           GTK_SIGNAL_FUNC (select_all_files),
+                           (gpointer) TRUE);
+       gtk_signal_connect (GTK_OBJECT (delete_menu_item), "activate",
+                           GTK_SIGNAL_FUNC (remove_file_from_list),
+                           (gpointer) NULL);
 
-  /*
-   * show the main window 
-   */
-  gtk_widget_show (musicinsertdialog);
+       /*
+        * show the main window 
+        */
+       gtk_widget_show (musicinsertdialog);
 }
 
 /**
@@ -275,99 +331,111 @@
 get_EXTRACTORKeywords (const EXTRACTOR_ExtractorList
                       * exList, const char *filename)
 {
-  EXTRACTOR_KeywordList *keyList;
+       EXTRACTOR_KeywordList *keyList;
 
-  keyList =
-    EXTRACTOR_getKeywords ((EXTRACTOR_ExtractorList *) exList, filename);
-  keyList =
-    EXTRACTOR_removeDuplicateKeywords (keyList,
-                                      EXTRACTOR_DUPLICATES_REMOVE_UNKNOWN);
-  keyList = EXTRACTOR_removeEmptyKeywords (keyList);
-  return keyList;
+       keyList =
+               EXTRACTOR_getKeywords ((EXTRACTOR_ExtractorList *) exList,
+                                      filename);
+       keyList =
+               EXTRACTOR_removeDuplicateKeywords (keyList,
+                                                  
EXTRACTOR_DUPLICATES_REMOVE_UNKNOWN);
+       keyList = EXTRACTOR_removeEmptyKeywords (keyList);
+       return keyList;
 }
 
 
 
 /**
  * @brief Get an EXTRACTOR_KeywordList for a specified file
- * @param a pointer to the extractors used to get the keywords
  * @param the name of the file to extract the keywords from
  */
 void
 set_File_Keywords (const gchar * filename)
 {
-  char *keywords[7];
-  GtkTreeIter pIter;
+       char *keywords[7];
+       GtkTreeIter pIter;
 
-  EXTRACTOR_KeywordList *KeywordList =
-    get_EXTRACTORKeywords (Extractors, filename);
+       EXTRACTOR_KeywordList *KeywordList =
+               get_EXTRACTORKeywords (Extractors, filename);
 
 
-  keywords[0] = (char *) EXTRACTOR_extractLast (EXTRACTOR_FILENAME, 
KeywordList);
+       keywords[0] =
+               (char *) EXTRACTOR_extractLast (EXTRACTOR_FILENAME,
+                                               KeywordList);
 
-  keywords[1] = (char *) EXTRACTOR_extractLast (EXTRACTOR_FILENAME, 
KeywordList);
+       keywords[1] =
+               (char *) EXTRACTOR_extractLast (EXTRACTOR_FILENAME,
+                                               KeywordList);
 
-  keywords[2] = (char *) EXTRACTOR_extractLast (EXTRACTOR_TITLE, KeywordList);
+       keywords[2] =
+               (char *) EXTRACTOR_extractLast (EXTRACTOR_TITLE, KeywordList);
 
-  keywords[3] =
-    (char *) EXTRACTOR_extractLast (EXTRACTOR_ARTIST, KeywordList);
-  if (keywords[3] != '\0'
-      && (g_list_find_custom (ArtistList, keywords[3], (GCompareFunc) strcmp) 
== NULL))
-    {
-      ArtistList = g_list_append (ArtistList, STRDUP(keywords[3]));
-      gtk_combo_box_append_text (GTK_COMBO_BOX
-                                (artistcombobox), keywords[3]);
-    }
+       keywords[3] =
+               (char *) EXTRACTOR_extractLast (EXTRACTOR_ARTIST,
+                                               KeywordList);
+       if (keywords[3] != '\0'
+           &&
+           (g_list_find_custom
+            (ArtistList, keywords[3], (GCompareFunc) strcmp) == NULL))
+       {
+               ArtistList = g_list_append (ArtistList, STRDUP (keywords[3]));
+               gtk_combo_box_append_text (GTK_COMBO_BOX
+                                          (artistcombobox), keywords[3]);
+       }
 
-  keywords[4] = (char *) EXTRACTOR_extractLast (EXTRACTOR_ALBUM, KeywordList);
-  if (keywords[4] != '\0'
-      && (g_list_find_custom (AlbumList, keywords[4], (GCompareFunc) strcmp)) 
== NULL)
-    {
-      AlbumList = g_list_append (AlbumList, STRDUP(keywords[4]));
-      gtk_combo_box_append_text (GTK_COMBO_BOX
-                                (albumcombobox), keywords[4]);
-    }
+       keywords[4] =
+               (char *) EXTRACTOR_extractLast (EXTRACTOR_ALBUM, KeywordList);
+       if (keywords[4] != '\0'
+           &&
+           (g_list_find_custom
+            (AlbumList, keywords[4], (GCompareFunc) strcmp)) == NULL)
+       {
+               AlbumList = g_list_append (AlbumList, STRDUP (keywords[4]));
+               gtk_combo_box_append_text (GTK_COMBO_BOX
+                                          (albumcombobox), keywords[4]);
+       }
 
-  keywords[5] =
-    (char *) EXTRACTOR_extractLast (EXTRACTOR_MIMETYPE, KeywordList);
-  if (keywords[5] != '\0')
-    {
-      if ((g_list_find_custom (TypeList, keywords[5], (GCompareFunc) strcmp)) 
== NULL)
-       TypeList = g_list_append (TypeList, STRDUP(keywords[5]));
+       keywords[5] =
+               (char *) EXTRACTOR_extractLast (EXTRACTOR_MIMETYPE,
+                                               KeywordList);
+       if (keywords[5] != '\0')
+       {
+               if ((g_list_find_custom
+                    (TypeList, keywords[5], (GCompareFunc) strcmp)) == NULL)
+                       TypeList =
+                               g_list_append (TypeList,
+                                              STRDUP (keywords[5]));
 
-      if (strcmp (keywords[5], "application/ogg") == 0)
-       gtk_combo_box_set_active (GTK_COMBO_BOX
-                                 (typecombobox),
-                                 FORMAT_OGG);
-      else if (strcmp (keywords[5], "audio/mpeg") == 0)
-       gtk_combo_box_set_active
-         (GTK_COMBO_BOX
-          (typecombobox), FORMAT_MP3);
-      else if (strcmp (keywords[5], "application/x-wav") == 0)
-       gtk_combo_box_set_active
-         (GTK_COMBO_BOX
-          (typecombobox), FORMAT_WAV);
-      else if (strcmp (keywords[5], "audio/vnd.rn-realaudio") == 0)
-       gtk_combo_box_set_active
-         (GTK_COMBO_BOX
-          (typecombobox), FORMAT_REAL);
-    }
-  else
-    {
-      TypeList = g_list_append (TypeList, STRDUP("unspecified"));
-    }
+               if (strcmp (keywords[5], "application/ogg") == 0)
+                       gtk_combo_box_set_active (GTK_COMBO_BOX
+                                                 (typecombobox), FORMAT_OGG);
+               else if (strcmp (keywords[5], "audio/mpeg") == 0)
+                       gtk_combo_box_set_active
+                               (GTK_COMBO_BOX (typecombobox), FORMAT_MP3);
+               else if (strcmp (keywords[5], "application/x-wav") == 0)
+                       gtk_combo_box_set_active
+                               (GTK_COMBO_BOX (typecombobox), FORMAT_WAV);
+               else if (strcmp (keywords[5], "audio/vnd.rn-realaudio") == 0)
+                       gtk_combo_box_set_active
+                               (GTK_COMBO_BOX (typecombobox), FORMAT_REAL);
+       }
+       else
+       {
+               TypeList = g_list_append (TypeList, STRDUP ("unspecified"));
+       }
 
-  keywords[6] =
-    (char *) EXTRACTOR_extractLast (EXTRACTOR_FORMAT, KeywordList);
+       keywords[6] =
+               (char *) EXTRACTOR_extractLast (EXTRACTOR_FORMAT,
+                                               KeywordList);
 
-  gtk_list_store_append (filelist_store, &pIter);
-  gtk_list_store_set (filelist_store, &pIter, REAL_FILENAME_COL, keywords[0],
-                     FILENAME_COL, keywords[1], TITLE_COL, keywords[2],
-                     ARTIST_COL, keywords[3], ALBUM_COL, keywords[4],
-                     TYPE_COL, keywords[5], FORMAT_COL, keywords[6],
-                     KEYWORDS_COL, "", -1);
-  EXTRACTOR_freeKeywords (KeywordList);
-  return;
+       gtk_list_store_append (filelist_store, &pIter);
+       gtk_list_store_set (filelist_store, &pIter, REAL_FILENAME_COL,
+                           keywords[0], FILENAME_COL, keywords[1], TITLE_COL,
+                           keywords[2], ARTIST_COL, keywords[3], ALBUM_COL,
+                           keywords[4], TYPE_COL, keywords[5], FORMAT_COL,
+                           keywords[6], KEYWORDS_COL, "", -1);
+       EXTRACTOR_freeKeywords (KeywordList);
+       return;
 }
 
 /**
@@ -377,31 +445,28 @@
 activateComboBoxes ()
 {
 
-  if (gtk_combo_box_get_active (GTK_COMBO_BOX (albumcombobox)) < 0
-      &&
-      gtk_tree_model_iter_n_children (gtk_combo_box_get_model
-                                     (GTK_COMBO_BOX (albumcombobox)),
-                                     NULL) != 0)
-  gtk_combo_box_set_active (GTK_COMBO_BOX
-                             (albumcombobox), 0);
+       if (gtk_combo_box_get_active (GTK_COMBO_BOX (albumcombobox)) < 0
+           &&
+           gtk_tree_model_iter_n_children (gtk_combo_box_get_model
+                                           (GTK_COMBO_BOX (albumcombobox)),
+                                           NULL) != 0)
+               gtk_combo_box_set_active (GTK_COMBO_BOX (albumcombobox), 0);
 
-  if (gtk_combo_box_get_active (GTK_COMBO_BOX (artistcombobox)) < 0
-      &&
-      gtk_tree_model_iter_n_children (gtk_combo_box_get_model
-                                     (GTK_COMBO_BOX (artistcombobox)),
-                                     NULL) != 0)
-    gtk_combo_box_set_active (GTK_COMBO_BOX
-                             (artistcombobox), 0);
+       if (gtk_combo_box_get_active (GTK_COMBO_BOX (artistcombobox)) < 0
+           &&
+           gtk_tree_model_iter_n_children (gtk_combo_box_get_model
+                                           (GTK_COMBO_BOX (artistcombobox)),
+                                           NULL) != 0)
+               gtk_combo_box_set_active (GTK_COMBO_BOX (artistcombobox), 0);
 
-  if (gtk_combo_box_get_active (GTK_COMBO_BOX (typecombobox)) < 0
-      &&
-      gtk_tree_model_iter_n_children (gtk_combo_box_get_model
-                                     (GTK_COMBO_BOX (typecombobox)),
-                                     NULL) != 0)
-    gtk_combo_box_set_active (GTK_COMBO_BOX
-                             (typecombobox), 0);
+       if (gtk_combo_box_get_active (GTK_COMBO_BOX (typecombobox)) < 0
+           &&
+           gtk_tree_model_iter_n_children (gtk_combo_box_get_model
+                                           (GTK_COMBO_BOX (typecombobox)),
+                                           NULL) != 0)
+               gtk_combo_box_set_active (GTK_COMBO_BOX (typecombobox), 0);
 
-  return;
+       return;
 }
 
 /**
@@ -410,35 +475,207 @@
 void
 updateColumns ()
 {
-  if (g_list_length (ArtistList) > 1)
-    gtk_tree_view_column_set_visible (type_list_col, TRUE);
-  else
-    gtk_tree_view_column_set_visible (type_list_col, FALSE);
+       if (g_list_length (ArtistList) > 1)
+               gtk_tree_view_column_set_visible (type_list_col, TRUE);
+       else
+               gtk_tree_view_column_set_visible (type_list_col, FALSE);
 
-  if (g_list_length (AlbumList) > 1)
-    gtk_tree_view_column_set_visible (type_list_col, TRUE);
-  else
-    gtk_tree_view_column_set_visible (type_list_col, FALSE);
+       if (g_list_length (AlbumList) > 1)
+               gtk_tree_view_column_set_visible (type_list_col, TRUE);
+       else
+               gtk_tree_view_column_set_visible (type_list_col, FALSE);
 
-  if (g_list_length (TypeList) > 1)
-    gtk_tree_view_column_set_visible (type_list_col, TRUE);
-  else
-    gtk_tree_view_column_set_visible (type_list_col, FALSE);
+       if (g_list_length (TypeList) > 1)
+               gtk_tree_view_column_set_visible (type_list_col, TRUE);
+       else
+               gtk_tree_view_column_set_visible (type_list_col, FALSE);
 
-  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (filelist_store),
-                                       FILENAME_COL, GTK_SORT_ASCENDING);
+       gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE
+                                             (filelist_store), FILENAME_COL,
+                                             GTK_SORT_ASCENDING);
 }
 
-/**
- * @brief Get an EXTRACTOR_KeywordList for a specified file
- * @param a pointer to the extractors used to get the keywords
- * @param the name of the file to extract the keywords from
- *
-int inv_strcomp (gconstpointer a, gconstpointer b)
+gboolean
+insertfiles ()
 {
-       return !strcmp ((char *)a, (char *)b);
+       struct ECRS_MetaData *dirmetadata;
+       struct ECRS_MetaData *tempmetadata;
+       GArray *filesmetadatas, *files;
+       gchar *temptext;
+       gchar **dirkeywords;
+       gchararray *tempkeywords;
+       gchar **tempmetas, *dirmetas[8];
+       gchar *separator = ";";
+       int i, n;
+       guint useforallflags;
+       GtkWidget *keywordsentry;
+       GtkTreeIter fileiter;
+       GtkToggleButton *artisttogglebutton;
+       GtkToggleButton *albumtogglebutton;
+       GtkToggleButton *keywordstogglebutton;
+       GtkToggleButton *commentstogglebutton;
+
+       /* Test if files are present */
+       if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (filelist_store),
+                                                       &fileiter))
+       {
+               gchar *error_message =
+                       STRDUP (_
+                               ("No files to insert ! Please add files to the 
list before validating."));
+               GtkWidget *message_dialog =
+                       gtk_message_dialog_new (GTK_WINDOW
+                                               (musicinsertdialog),
+                                               GTK_DIALOG_DESTROY_WITH_PARENT,
+                                               GTK_MESSAGE_ERROR,
+                                               GTK_BUTTONS_CLOSE,
+                                               "%s", error_message);
+               gtk_dialog_run (GTK_DIALOG (message_dialog));
+               gtk_widget_destroy (message_dialog);
+               FREE (error_message);
+               return FALSE;
+       }
+
+
+    /* Manage album metadatas */
+
+       dirmetadata = ECRS_createMetaData ();
+
+       dirmetas[0] =
+               gtk_combo_box_get_active_text (GTK_COMBO_BOX
+                                              (artistcombobox));
+       if (dirmetas[0])
+               ECRS_addToMetaData (dirmetadata, EXTRACTOR_ARTIST, dirmetas[0]);
+
+       dirmetas[1] =
+               gtk_combo_box_get_active_text (GTK_COMBO_BOX (albumcombobox));
+       if (dirmetas[1])
+               ECRS_addToMetaData (dirmetadata, EXTRACTOR_ALBUM, dirmetas[1]);
+
+       keywordsentry =
+               glade_xml_get_widget (musicinsertXML, "keywordsentry");
+       temptext = (gchar *) gtk_entry_get_text (GTK_ENTRY (keywordsentry));
+       dirkeywords = NULL;
+       if (temptext)
+               dirkeywords = g_strsplit (temptext, separator, 255);
+       n = 0;
+       while (dirkeywords[n])
+       {
+               ECRS_addToMetaData (dirmetadata, EXTRACTOR_KEYWORDS, 
dirkeywords[n]);
+           n++;
+       }
+       /* Add a standard keyword to allow finding all available music albums
+       * on AFS in one search */
+       ECRS_addToMetaData (dirmetadata,
+                                               EXTRACTOR_KEYWORDS,
+                                               "music album");
+
+
+       /* Manage files metadatas */
+       artisttogglebutton = GTK_TOGGLE_BUTTON(glade_xml_get_widget 
(musicinsertXML, "artisttogglebutton"));
+       albumtogglebutton = GTK_TOGGLE_BUTTON(glade_xml_get_widget 
(musicinsertXML, "albumtogglebutton"));
+       keywordstogglebutton = GTK_TOGGLE_BUTTON(glade_xml_get_widget 
(musicinsertXML, "keywordstogglebutton"));
+       commentstogglebutton = GTK_TOGGLE_BUTTON(glade_xml_get_widget 
(musicinsertXML, "commentstogglebutton"));
+
+    useforallflags = 0;
+    useforallflags = gtk_toggle_button_get_active (artisttogglebutton) << 0;
+    useforallflags = gtk_toggle_button_get_active (albumtogglebutton) << 1;
+    useforallflags = gtk_toggle_button_get_active (keywordstogglebutton) << 2;
+    useforallflags = gtk_toggle_button_get_active (commentstogglebutton) << 3;
+
+    filesmetadatas = g_array_sized_new (FALSE, FALSE, sizeof (struct 
ECRS_MetaData *), 20);
+       files = g_array_sized_new (FALSE, FALSE, sizeof (gchar *), 20);
+       i = 0;
+       do
+       {
+               tempmetadata = ECRS_createMetaData();
+           tempmetas = malloc (sizeof(gchar *) * 8);
+               g_array_append_val (filesmetadatas,  tempmetadata);
+               gtk_tree_model_get (GTK_TREE_MODEL (filelist_store),
+                               &fileiter,
+                                           REAL_FILENAME_COL, &tempmetas[0],
+                                           FILENAME_COL, &tempmetas[1],
+                               TITLE_COL, &tempmetas[2],
+                               ARTIST_COL, &tempmetas[3],
+                                           ALBUM_COL, &tempmetas[4],
+                               TYPE_COL, &tempmetas[5],
+                               FORMAT_COL, &tempmetas[6],
+                                                       KEYWORDS_COL, 
&tempmetas[7],
+                                                   -1);
+               g_array_append_val (files, tempmetas[0]);
+       
+               
+               if (tempmetas[1])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_FILENAME,
+                                           tempmetas[1]);
+               if ((useforallflags & 0x1) && dirmetas[0])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_FILENAME,
+                                           dirmetas[0]);       
+               else if (!(useforallflags & 0x1) && tempmetas[2])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_TITLE,
+                                           tempmetas[2]);
+               if ((useforallflags & 0x2) && dirmetas[1])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_ARTIST,
+                                           dirmetas[1]);
+               else if (!(useforallflags & 0x2)&& tempmetas[3])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_FILENAME,
+                                           tempmetas[3]);      
+               if (tempmetas[4])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_ALBUM,
+                                           tempmetas[4]);
+               if (tempmetas[5])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_MIMETYPE,
+                                           tempmetas[5]);
+               if (tempmetas[6])
+                       ECRS_addToMetaData (tempmetadata, EXTRACTOR_FORMAT,
+                                           tempmetas[6]);
+               
+               if (!(useforallflags & 0x1))
+               {
+                  n = 0;
+                  while (dirkeywords[n])
+          {
+                     ECRS_addToMetaData (tempmetadata, EXTRACTOR_KEYWORDS, 
dirkeywords[n]);
+                 n++;
+                  }
+           }
+               else if (tempmetas[7])
+               {
+                       tempkeywords = g_strsplit (temptext, separator, 255);
+                       n = 0;
+                       while (tempkeywords[n])
+                       {
+                               ECRS_addToMetaData (tempmetadata,
+                                                   EXTRACTOR_KEYWORDS,
+                                                   tempkeywords[n]);
+                               n++;
+                       }
+                       g_strfreev (tempkeywords);
+               /* Add a standard keyword to allow finding all available music 
files
+                * on AFS in one search */
+                   ECRS_addToMetaData (tempmetadata,
+                                                   EXTRACTOR_KEYWORDS,
+                                                   "music");
+               }
+
+               FREE (tempmetas);
+               i++;
+       }
+       while (gtk_tree_model_iter_next (GTK_TREE_MODEL(filelist_store), 
&fileiter));
+
+       g_strfreev (dirkeywords);
+
+       /* TODO : take care of the 'Insert as an album'/'Insert files 
separately' options
+        *  and create or not a gnunet directory containing the files
+        * 
+     * TODO : Create a file and album description from metadatas - an idea :
+        * Artist: Song (Album) - Type and Format # for files
+     * Artist: Album - Type and number of the files # or album
+        *
+        * TODO : really call FSUI_upload() to insert these files */
+
+       return TRUE;
 }
-*/
+
 /* Callback functions */
 
 /**
@@ -447,7 +684,9 @@
 void
 on_musicinsertdialog_destroy (GtkObject * object, gpointer user_data)
 {
-  gtk_main_quit ();
+       EXTRACTOR_removeAll (Extractors);
+       UNREF (musicinsertXML);
+       musicinsertXML = NULL;
 }
 
 /**
@@ -456,7 +695,8 @@
 void
 on_cancelbutton_clicked (GtkButton * button, gpointer user_data)
 {
-  gtk_main_quit ();
+       gtk_widget_destroy (musicinsertdialog);
+       return;
 }
 
 /**
@@ -465,7 +705,9 @@
 void
 on_okbutton_clicked (GtkButton * button, gpointer user_data)
 {
-  return;
+       if (insertfiles ())
+               gtk_widget_destroy (musicinsertdialog);
+       return ;
 }
 
 /**
@@ -474,95 +716,112 @@
 void
 on_diraddbutton_clicked (GtkButton * button, gpointer user_data)
 {
-  gchar *path;
-GtkWidget *musicinsertdialog = glade_xml_get_widget(musicinsertXML, 
"musicinsertdialog");
-  /* choose the directory to list */
-  GtkWidget *filechooser =
-    gtk_file_chooser_dialog_new (_("Choose the directory to insert..."),
-                                GTK_WINDOW (musicinsertdialog),
-                                GTK_FILE_CHOOSER_ACTION_OPEN,
-                                GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-                                NULL);
-  gtk_file_chooser_set_action (GTK_FILE_CHOOSER (filechooser),
-                              GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
-  gtk_window_set_modal (GTK_WINDOW (filechooser), TRUE);
-  switch (gtk_dialog_run (GTK_DIALOG (filechooser)))
-    {
-    case GTK_RESPONSE_ACCEPT:
-      /* get the path */
-      path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
-      gtk_widget_destroy (filechooser);
-      break;
-    default:
-      gtk_widget_destroy (filechooser);
-      return;
-    }
-
-  /* list directory and fill the fields */
-  GDir *directory;
-  GString *long_filename;
-  GError *dir_opening_error;
-  GSList *file_error_list = NULL;
-  gchar *filename;
-  if ((directory = g_dir_open (path, 0, &dir_opening_error)))
-    {
-      while ((filename = (gchar *) g_dir_read_name (directory)))
+       gchar *path;
+       GtkWidget *musicinsertdialog =
+               glade_xml_get_widget (musicinsertXML, "musicinsertdialog");
+       /* choose the directory to list */
+       GtkWidget *filechooser =
+               gtk_file_chooser_dialog_new (_
+                                            ("Choose the directory to 
insert..."),
+GTK_WINDOW (musicinsertdialog),
+GTK_FILE_CHOOSER_ACTION_OPEN,
+GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+NULL);
+       gtk_file_chooser_set_action (GTK_FILE_CHOOSER (filechooser),
+                                    GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+       gtk_window_set_modal (GTK_WINDOW (filechooser), TRUE);
+       switch (gtk_dialog_run (GTK_DIALOG (filechooser)))
        {
-         long_filename = g_string_new (path);
-         g_string_append_c (long_filename, DIR_SEPARATOR);
-         g_string_append (long_filename, filename);
-         if (!(ACCESS (long_filename->str, F_OK | R_OK)))
-           {
-             if (!(g_file_test (long_filename->str, G_FILE_TEST_IS_DIR)))
-               set_File_Keywords (long_filename->str);
-           }
-         else
-           {
-             file_error_list = g_slist_append (file_error_list, filename);
-             g_string_free (long_filename, TRUE);
-           }
+       case GTK_RESPONSE_ACCEPT:
+               /* get the path */
+               path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER
+                                                     (filechooser));
+               gtk_widget_destroy (filechooser);
+               break;
+       default:
+               gtk_widget_destroy (filechooser);
+               return;
        }
 
-      g_free (path);
-      activateComboBoxes ();
-      updateColumns ();
-      if (g_slist_length (file_error_list) > 0)
+       /* list directory and fill the fields */
+       GDir *directory;
+       GString *long_filename;
+       GError *dir_opening_error;
+       GSList *file_error_list = NULL;
+       gchar *filename;
+       if ((directory = g_dir_open (path, 0, &dir_opening_error)))
        {
-         GString *file_error_message =
-           g_string_new (_
-                         ("The following files won't be added for I could not 
read them :"));
-         while ((file_error_list = g_slist_next (file_error_list)))
-           {
-             g_string_append_c (file_error_message, '\n');
-             g_string_append (file_error_message,
-                              (gchar *) file_error_list->data);
-           }
-         GtkWidget *file_error_dialog =
-           gtk_message_dialog_new (GTK_WINDOW (musicinsertdialog),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
-                                   file_error_message->str);
-         gtk_dialog_run (GTK_DIALOG (file_error_dialog));
-         gtk_widget_destroy (file_error_dialog);
-         g_string_free (file_error_message, TRUE);
+               while ((filename = (gchar *) g_dir_read_name (directory)))
+               {
+                       long_filename = g_string_new (path);
+                       g_string_append_c (long_filename, DIR_SEPARATOR);
+                       g_string_append (long_filename, filename);
+                       if (!(ACCESS (long_filename->str, F_OK | R_OK)))
+                       {
+                               if (!
+                                   (g_file_test
+                                    (long_filename->str,
+                                     G_FILE_TEST_IS_DIR)))
+                                       set_File_Keywords (long_filename->
+                                                          str);
+                       }
+                       else
+                       {
+                               file_error_list =
+                                       g_slist_append (file_error_list,
+                                                       filename);
+                               g_string_free (long_filename, TRUE);
+                       }
+               }
+
+               g_free (path);
+               activateComboBoxes ();
+               updateColumns ();
+               if (g_slist_length (file_error_list) > 0)
+               {
+                       GString *file_error_message =
+                               g_string_new (_
+                                             ("The following files won't be 
added for I could not read them :"));
+                       while ((file_error_list =
+                               g_slist_next (file_error_list)))
+                       {
+                               g_string_append_c (file_error_message, '\n');
+                               g_string_append (file_error_message,
+                                                (gchar *) file_error_list->
+                                                data);
+                       }
+                       GtkWidget *file_error_dialog =
+                               gtk_message_dialog_new (GTK_WINDOW
+                                                       (musicinsertdialog),
+                                                       
GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                       GTK_MESSAGE_ERROR,
+                                                       GTK_BUTTONS_CLOSE,
+                                                       file_error_message->
+                                                       str);
+                       gtk_dialog_run (GTK_DIALOG (file_error_dialog));
+                       gtk_widget_destroy (file_error_dialog);
+                       g_string_free (file_error_message, TRUE);
+               }
+               g_dir_close (directory);
        }
-      g_dir_close (directory);
-    }
-  else
-    {
-      gchar *error_message = STRDUP (_("Could not open the directory :\n"));
-      GtkWidget *message_dialog =
-       gtk_message_dialog_new (GTK_WINDOW (musicinsertdialog),
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
-                               "%s%s", error_message,
-                               dir_opening_error->message);
-      gtk_dialog_run (GTK_DIALOG (message_dialog));
-      gtk_widget_destroy (message_dialog);
-      g_free (error_message);
-      g_error_free (dir_opening_error);
-    }
+       else
+       {
+               gchar *error_message =
+                       STRDUP (_("Could not open the directory :\n"));
+               GtkWidget *message_dialog =
+                       gtk_message_dialog_new (GTK_WINDOW
+                                               (musicinsertdialog),
+                                               GTK_DIALOG_DESTROY_WITH_PARENT,
+                                               GTK_MESSAGE_ERROR,
+                                               GTK_BUTTONS_CLOSE,
+                                               "%s%s", error_message,
+                                               dir_opening_error->message);
+               gtk_dialog_run (GTK_DIALOG (message_dialog));
+               gtk_widget_destroy (message_dialog);
+               g_free (error_message);
+               g_error_free (dir_opening_error);
+       }
 }
 
 /**
@@ -571,73 +830,82 @@
 void
 on_fileaddbutton_clicked (GtkButton * button, gpointer user_data)
 {
-  GSList *pathlist;
-GtkWidget *musicinsertdialog = glade_xml_get_widget(musicinsertXML, 
"musicinsertdialog");
-  /* choose the file to add */
-  GtkWidget *filechooser =
-    gtk_file_chooser_dialog_new (_("Choose files to insert..."),
-                                GTK_WINDOW (musicinsertdialog),
-                                GTK_FILE_CHOOSER_ACTION_OPEN,
-                                GTK_STOCK_CANCEL,
-                                GTK_RESPONSE_CANCEL,
-                                GTK_STOCK_OPEN,
-                                GTK_RESPONSE_ACCEPT, NULL);
-  gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (filechooser), TRUE);
-  gtk_window_set_modal (GTK_WINDOW (filechooser), TRUE);
+       GSList *pathlist;
+       GtkWidget *musicinsertdialog =
+               glade_xml_get_widget (musicinsertXML, "musicinsertdialog");
+       /* choose the file to add */
+       GtkWidget *filechooser =
+               gtk_file_chooser_dialog_new (_("Choose files to insert..."),
+                                            GTK_WINDOW (musicinsertdialog),
+                                            GTK_FILE_CHOOSER_ACTION_OPEN,
+                                            GTK_STOCK_CANCEL,
+                                            GTK_RESPONSE_CANCEL,
+                                            GTK_STOCK_OPEN,
+                                            GTK_RESPONSE_ACCEPT, NULL);
+       gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (filechooser),
+                                             TRUE);
+       gtk_window_set_modal (GTK_WINDOW (filechooser), TRUE);
 
-  if (gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT)
-    {
-      GSList *file_error_list = NULL;
-      /* get the path */
-      pathlist =
-       gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (filechooser));
-      gtk_widget_destroy (filechooser);
-      do
+       if (gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT)
        {
-         if (!(ACCESS (pathlist->data, F_OK | R_OK)))
-           {
-             set_File_Keywords (pathlist->data);
-           }
-         else
-           {
-             file_error_list =
-               g_slist_append (file_error_list, pathlist->data);
-           }
-       }
-      while ((pathlist = g_slist_next (pathlist)));
-      g_slist_free (pathlist);
+               GSList *file_error_list = NULL;
+               /* get the path */
+               pathlist =
+                       gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER
+                                                       (filechooser));
+               gtk_widget_destroy (filechooser);
+               do
+               {
+                       if (!(ACCESS (pathlist->data, F_OK | R_OK)))
+                       {
+                               set_File_Keywords (pathlist->data);
+                       }
+                       else
+                       {
+                               file_error_list =
+                                       g_slist_append (file_error_list,
+                                                       pathlist->data);
+                       }
+               }
+               while ((pathlist = g_slist_next (pathlist)));
+               g_slist_free (pathlist);
 
-      activateComboBoxes ();
-      updateColumns ();
+               activateComboBoxes ();
+               updateColumns ();
 
-      if (g_slist_length (file_error_list) > 0)
-       {
-         GString *file_error_message =
-           g_string_new (_
-                         ("The following files won't be added for I could not 
read them :"));
-         while ((file_error_list = g_slist_next (file_error_list)))
-           {
-             g_string_append_c (file_error_message, '\n');
-             g_string_append (file_error_message,
-                              (gchar *) file_error_list->data);
-           }
+               if (g_slist_length (file_error_list) > 0)
+               {
+                       GString *file_error_message =
+                               g_string_new (_
+                                             ("The following files won't be 
added for I could not read them :"));
+                       while ((file_error_list =
+                               g_slist_next (file_error_list)))
+                       {
+                               g_string_append_c (file_error_message, '\n');
+                               g_string_append (file_error_message,
+                                                (gchar *) file_error_list->
+                                                data);
+                       }
 
-         GtkWidget *file_error_dialog =
-           gtk_message_dialog_new (GTK_WINDOW (musicinsertdialog),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
-                                   file_error_message->str);
-         gtk_dialog_run (GTK_DIALOG (file_error_dialog));
-         g_string_free (file_error_message, TRUE);
-         gtk_widget_destroy (file_error_dialog);
+                       GtkWidget *file_error_dialog =
+                               gtk_message_dialog_new (GTK_WINDOW
+                                                       (musicinsertdialog),
+                                                       
GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                       GTK_MESSAGE_ERROR,
+                                                       GTK_BUTTONS_CLOSE,
+                                                       file_error_message->
+                                                       str);
+                       gtk_dialog_run (GTK_DIALOG (file_error_dialog));
+                       g_string_free (file_error_message, TRUE);
+                       gtk_widget_destroy (file_error_dialog);
+               }
+               return;
        }
-      return;
-    }
-  else
-    {
-      gtk_widget_destroy (filechooser);
-      return;
-    }
+       else
+       {
+               gtk_widget_destroy (filechooser);
+               return;
+       }
 }
 
 /**
@@ -646,8 +914,10 @@
 void
 on_radioinsert_toggled (GtkRadioButton * radiobutton, gpointer user_data)
 {
-  gtk_widget_set_sensitive (GTK_WIDGET
-                           (glade_xml_get_widget (musicinsertXML, 
"copyfilesbutton")), FALSE);
+       gtk_widget_set_sensitive (GTK_WIDGET
+                                 (glade_xml_get_widget
+                                  (musicinsertXML, "copyfilesbutton")),
+                                 FALSE);
 }
 
 /**
@@ -656,76 +926,75 @@
 void
 on_radioindex_toggled (GtkRadioButton * radiobutton, gpointer user_data)
 {
-  gtk_widget_set_sensitive
-    (GTK_WIDGET (glade_xml_get_widget (musicinsertXML, "copyfilesbutton")), 
TRUE);
+       gtk_widget_set_sensitive
+               (GTK_WIDGET
+                (glade_xml_get_widget (musicinsertXML, "copyfilesbutton")),
+                TRUE);
 }
 
 /**
  * @brief Hide or show the album column when needed
  */
-void
-  on_albumtogglebutton_toggled
-  (GtkToggleButton * togglebutton, gpointer user_data)
+void on_albumtogglebutton_toggled
+       (GtkToggleButton * togglebutton, gpointer user_data)
 {
-  if (gtk_toggle_button_get_active (togglebutton))
-    gtk_tree_view_column_set_visible (album_list_col, FALSE);
-  else
-    gtk_tree_view_column_set_visible (album_list_col, TRUE);
+       if (gtk_toggle_button_get_active (togglebutton))
+               gtk_tree_view_column_set_visible (album_list_col, FALSE);
+       else
+               gtk_tree_view_column_set_visible (album_list_col, TRUE);
 }
 
 /**
  * @brief Hide or show the artist column when needed
  */
-void
-  on_artisttogglebutton_toggled
-  (GtkToggleButton * togglebutton, gpointer user_data)
+void on_artisttogglebutton_toggled
+       (GtkToggleButton * togglebutton, gpointer user_data)
 {
-  if (gtk_toggle_button_get_active (togglebutton))
-    gtk_tree_view_column_set_visible (artist_list_col, FALSE);
-  else
-    gtk_tree_view_column_set_visible (artist_list_col, TRUE);
+       if (gtk_toggle_button_get_active (togglebutton))
+               gtk_tree_view_column_set_visible (artist_list_col, FALSE);
+       else
+               gtk_tree_view_column_set_visible (artist_list_col, TRUE);
 }
 
 /**
  * @brief Hide or show the keywords column when needed
  */
-void
-  on_keywordstogglebutton_toggled
-  (GtkToggleButton * togglebutton, gpointer user_data)
+void on_keywordstogglebutton_toggled
+       (GtkToggleButton * togglebutton, gpointer user_data)
 {
-  if (gtk_toggle_button_get_active (togglebutton))
-    gtk_tree_view_column_set_visible (keywords_list_col, FALSE);
-  else
-    gtk_tree_view_column_set_visible (keywords_list_col, TRUE);
+       if (gtk_toggle_button_get_active (togglebutton))
+               gtk_tree_view_column_set_visible (keywords_list_col, FALSE);
+       else
+               gtk_tree_view_column_set_visible (keywords_list_col, TRUE);
 }
 
 /**
  * @brief Make to user able to modify the per-file data
  */
-void
-  on_renderer_edited
-  (GtkCellRendererText *
-   cellrenderertext,
-   gchar * path_string, gchar * new_text, gpointer user_data)
+void on_renderer_edited
+       (GtkCellRendererText *
+        cellrenderertext,
+        gchar * path_string, gchar * new_text, gpointer user_data)
 {
-  GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
-  GtkTreeIter iter;
-  gtk_tree_model_get_iter (GTK_TREE_MODEL (filelist_store), &iter, path);
-  gtk_list_store_set (filelist_store, &iter,
-                     (gint) * ((gint *) user_data), new_text, -1);
-  gtk_tree_path_free (path);
+       GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
+       GtkTreeIter iter;
+       gtk_tree_model_get_iter (GTK_TREE_MODEL (filelist_store), &iter,
+                                path);
+       gtk_list_store_set (filelist_store, &iter,
+                           (gint) * ((gint *) user_data), new_text, -1);
+       gtk_tree_path_free (path);
 }
 
 gboolean
 popup_delete (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
 {
-  if ((event->type == GDK_BUTTON_PRESS) && (event->button == 3))
-    {
-      gtk_menu_popup (GTK_MENU (filelist_popup), NULL, NULL, NULL, NULL,
-                     event->button, event->time);
-      return TRUE;
-    }
-  return FALSE;
+       if ((event->type == GDK_BUTTON_PRESS) && (event->button == 3))
+       {
+               gtk_menu_popup (GTK_MENU (filelist_popup), NULL, NULL, NULL,
+                               NULL, event->button, event->time);
+               return TRUE;
+       }
+       return FALSE;
 }
 
 /**
@@ -734,39 +1003,43 @@
 void
 remove_file_from_list (gpointer user_data)
 {
-  GtkTreeIter iter;
-  GtkWidget *filelist = glade_xml_get_widget (musicinsertXML, "filelist");
-  GtkTreeSelection *selection =
-    gtk_tree_view_get_selection (GTK_TREE_VIEW (filelist));
-  GList *selected_paths = gtk_tree_selection_get_selected_rows (selection,
-                                                               (GtkTreeModel
-                                                                **) &
-                                                               filelist_store);
-  GList *selected_refs = NULL;
-  GtkTreePath *path;
+       GtkTreeIter iter;
+       GtkWidget *filelist =
+               glade_xml_get_widget (musicinsertXML, "filelist");
+       GtkTreeSelection *selection =
+               gtk_tree_view_get_selection (GTK_TREE_VIEW (filelist));
+       GList *selected_paths =
+               gtk_tree_selection_get_selected_rows (selection,
+                                                     (GtkTreeModel **)  
+                              &filelist_store);
+       GList *selected_refs = NULL;
+       GtkTreePath *path;
 /* Get static references from paths */
-  while (selected_paths)
-    {
-      selected_refs = g_list_append (selected_refs,
-                                    gtk_tree_row_reference_new
-                                    (GTK_TREE_MODEL (filelist_store),
-                                     selected_paths->data));
-      selected_paths = g_list_next (selected_paths);
-    }
-  g_list_foreach (selected_paths, (GFunc) gtk_tree_path_free, NULL);
-  g_list_free (selected_paths);
+       while (selected_paths)
+       {
+               selected_refs = g_list_append (selected_refs,
+                                              gtk_tree_row_reference_new
+                                              (GTK_TREE_MODEL
+                                               (filelist_store),
+                                               selected_paths->data));
+               selected_paths = g_list_next (selected_paths);
+       }
+       g_list_foreach (selected_paths, (GFunc) gtk_tree_path_free, NULL);
+       g_list_free (selected_paths);
 
 /* Remove items from references */
-  while (selected_refs)
-    {
-      path = gtk_tree_row_reference_get_path (selected_refs->data);
-      gtk_tree_model_get_iter (GTK_TREE_MODEL (filelist_store), &iter, path);
-      gtk_list_store_remove (filelist_store, &iter);
-      gtk_tree_path_free (path);
-      selected_refs = g_list_next (selected_refs);
-    }
-  g_list_foreach (selected_paths, (GFunc) gtk_tree_row_reference_free, NULL);
-  g_list_free (selected_paths);
+       while (selected_refs)
+       {
+               path = gtk_tree_row_reference_get_path (selected_refs->data);
+               gtk_tree_model_get_iter (GTK_TREE_MODEL (filelist_store),
+                                        &iter, path);
+               gtk_list_store_remove (filelist_store, &iter);
+               gtk_tree_path_free (path);
+               selected_refs = g_list_next (selected_refs);
+       }
+       g_list_foreach (selected_paths, (GFunc) gtk_tree_row_reference_free,
+                       NULL);
+       g_list_free (selected_paths);
 }
 
 /**
@@ -775,8 +1048,9 @@
 void
 select_all_files (gpointer user_data)
 {
-  GtkWidget *filelist = glade_xml_get_widget (musicinsertXML, "filelist");
-  GtkTreeSelection *selection =
-    gtk_tree_view_get_selection (GTK_TREE_VIEW (filelist));
-  gtk_tree_selection_select_all (selection);
+       GtkWidget *filelist =
+               glade_xml_get_widget (musicinsertXML, "filelist");
+       GtkTreeSelection *selection =
+               gtk_tree_view_get_selection (GTK_TREE_VIEW (filelist));
+       gtk_tree_selection_select_all (selection);
 }

Modified: gnunet-gtk/src/plugins/fs/extensions/musicinsert.glade
===================================================================
--- gnunet-gtk/src/plugins/fs/extensions/musicinsert.glade      2005-07-05 
00:03:19 UTC (rev 1264)
+++ gnunet-gtk/src/plugins/fs/extensions/musicinsert.glade      2005-07-05 
00:07:28 UTC (rev 1265)
@@ -67,7 +67,7 @@
              <property name="editable">True</property>
              <property name="visibility">True</property>
              <property name="max_length">0</property>
-             <property name="text" translatable="yes">music</property>
+             <property name="text" translatable="yes"></property>
              <property name="has_frame">True</property>
              <property name="invisible_char">*</property>
              <property name="activates_default">False</property>

Modified: gnunet-gtk/src/plugins/fs/extensions/musicinsert.h
===================================================================
--- gnunet-gtk/src/plugins/fs/extensions/musicinsert.h  2005-07-05 00:03:19 UTC 
(rev 1264)
+++ gnunet-gtk/src/plugins/fs/extensions/musicinsert.h  2005-07-05 00:07:28 UTC 
(rev 1265)
@@ -30,20 +30,11 @@
 #include <extractor.h>
 #include <gtk/gtk.h>
 #include <glade/glade.h>
-/* platform.h will be needed */
-       
 
-GladeXML *musicinsertXML;
-GtkListStore *filelist_store;
-GList *AlbumList, *ArtistList, *TypeList;
-GtkComboBoxEntry *artistcombobox, *albumcombobox, *typecombobox;
-EXTRACTOR_ExtractorList *Extractors;
+#include "platform.h"
 
-GtkTreeViewColumn *filename_list_col, *title_list_col, *artist_list_col,
-  *album_list_col, *type_list_col, *format_list_col, *keywords_list_col;
+#define MUSICINSERTXMLFILE "musicinsert.glade"
 
-GtkWidget *filelist_popup;
-
 /* Know music files mimetypes to list in the format ComboBoxEntry */
 enum Types
 {
@@ -82,10 +73,6 @@
 const gint format_col_num = FORMAT_COL;
 const gint keywords_col_num = KEYWORDS_COL;
 
-/* Temp definitions to remove, will be present in platform.h from GNUnet 
source*/
- #define DIR_SEPARATOR '/'
- #define ACCESS(p, m) access(p, m)
- #define STRDUP(s) strdup (s)
 
 
 EXTRACTOR_KeywordList *get_EXTRACTORKeywords (const EXTRACTOR_ExtractorList *
@@ -94,6 +81,7 @@
 void activateComboBoxes ();
 void updateColumns ();
 void show_musicinsertdialog ();
+gboolean insertfiles ();
 
 /* Callback functions declaration */
 void on_musicinsertdialog_destroy (GtkObject * object, gpointer user_data);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]