Fixed bug #1055
2000-06-20 Gene Z. Ragan <gzr@eazel.com> Fixed bug #1055 * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-handlers.h: (gnome_vfs_mime_add_extension): Renamed function to be more in accordance with other function in file. (gnome_vfs_mime_remove_extension): New function to remove mapped extension from mime type. * libgnomevfs/gnome-vfs-mime-info.c: (load_mime_list_info_from), (gnome_vfs_mime_get_extensions), (mime_list_sort), (get_key_name), (gnome_vfs_mime_commit_registered_types), (write_mime_data_foreach), (write_registered_mime_data): A couple of things done here. One was work on the tokenizer so that it handled a variety of cases when reading in key data form .mime files. Another was work on saving and deleting mapped extensions from the .mime file. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_extension_window): Work on saving and deleting mapped extensions from the .mime file. * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_extension_list), (nautilus_mime_type_capplet_add_extension), (remove_extension_clicked): Work on saving and deleting mapped extensions from the .mime file.
This commit is contained in:
parent
276185af53
commit
a13cbb8223
2 changed files with 38 additions and 20 deletions
|
@ -605,7 +605,10 @@ nautilus_mime_type_capplet_show_new_extension_window (void)
|
|||
gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 0);
|
||||
|
||||
gtk_widget_show_all (GNOME_DIALOG (dialog)->vbox);
|
||||
|
||||
|
||||
/* Set focus to text entry widget */
|
||||
gtk_window_set_focus (GTK_WINDOW (dialog), mime_entry);
|
||||
|
||||
switch (gnome_dialog_run (GNOME_DIALOG (dialog))) {
|
||||
case 0:
|
||||
nautilus_mime_type_capplet_add_extension (gtk_entry_get_text
|
||||
|
|
|
@ -132,9 +132,10 @@ populate_extension_list (const char *mime_type, GtkCList *list)
|
|||
|
||||
for (element = extensions; element != NULL; element = element->next) {
|
||||
extension[0] = (char *)element->data;
|
||||
if (strcmp (extension[0], "") != 0) {
|
||||
if (strlen (element->data) > 0) {
|
||||
row = gtk_clist_append (list, extension);
|
||||
gtk_clist_set_row_data (list, row, GINT_TO_POINTER (FALSE));
|
||||
/* Set to deletable */
|
||||
gtk_clist_set_row_data (list, row, GINT_TO_POINTER (TRUE));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,18 +149,40 @@ void
|
|||
nautilus_mime_type_capplet_add_extension (const char *extension)
|
||||
{
|
||||
gchar *title[1];
|
||||
gchar *token, *search_string;
|
||||
gint rownumber;
|
||||
const char *mime_type;
|
||||
|
||||
title[0] = g_strdup (extension);
|
||||
|
||||
/* Check for empty string */
|
||||
if (strlen (extension) <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check for starting space in string */
|
||||
if (extension[0] == ' ') {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Copy only contiguous part of string. No spaces allowed. */
|
||||
search_string = g_strdup (extension);
|
||||
token = strtok (search_string, " ");
|
||||
|
||||
if (token == NULL) {
|
||||
title[0] = g_strdup (extension);
|
||||
} else if (strlen (token) <= 0) {
|
||||
return;
|
||||
}else {
|
||||
title[0] = g_strdup (token);
|
||||
}
|
||||
g_free (search_string);
|
||||
|
||||
rownumber = gtk_clist_append (GTK_CLIST (extension_list), title);
|
||||
gtk_clist_set_row_data (GTK_CLIST (extension_list), rownumber,
|
||||
GINT_TO_POINTER (FALSE));
|
||||
|
||||
mime_type = get_selected_item_mime_type ();
|
||||
g_assert (mime_type != NULL);
|
||||
gnome_vfs_mime_add_extension_to_mime_type (mime_type, extension);
|
||||
gnome_vfs_mime_add_extension (mime_type, extension);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -174,6 +197,7 @@ remove_extension_clicked (GtkWidget *widget, gpointer data)
|
|||
gint row;
|
||||
gchar *text;
|
||||
gchar *store;
|
||||
const char *mime_type;
|
||||
|
||||
text = (gchar *)g_malloc (sizeof (gchar) * 1024);
|
||||
gtk_clist_freeze (GTK_CLIST (extension_list));
|
||||
|
@ -181,24 +205,15 @@ remove_extension_clicked (GtkWidget *widget, gpointer data)
|
|||
gtk_clist_get_text (GTK_CLIST (extension_list), row, 0, &text);
|
||||
store = g_strdup (text);
|
||||
gtk_clist_remove (GTK_CLIST (extension_list), row);
|
||||
|
||||
gtk_clist_thaw (GTK_CLIST (extension_list));
|
||||
|
||||
/*
|
||||
GList *tmp;
|
||||
|
||||
for (tmp = main_win->tmp_ext[0]; tmp; tmp = tmp->next) {
|
||||
GList *found;
|
||||
|
||||
if (strcmp (tmp->data, store) == 0) {
|
||||
found = tmp;
|
||||
|
||||
main_win->tmp_ext[0] = g_list_remove_link (main_win->tmp_ext[0], found);
|
||||
g_list_free_1 (found);
|
||||
break;
|
||||
}
|
||||
mime_type = get_selected_item_mime_type ();
|
||||
if (mime_type != NULL) {
|
||||
gnome_vfs_mime_remove_extension (mime_type, store);
|
||||
}
|
||||
*/
|
||||
|
||||
g_free (store);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue