[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r1265 - gnunet-gtk/src/plugins/fs/extensions,
grothoff <=