fix bug 4769 tweak to look slightly better. fix a potential segfault too.

2000-11-16  Mathieu Lacage  <mathieu@eazel.com>

	fix bug 4769
	* mime-type-capplet/nautilus-mime-type-capplet-dialogs.c:
	(nautilus_mime_type_capplet_show_new_mime_window): tweak to
	look slightly better. fix a potential segfault too.
	* mime-type-capplet/nautilus-mime-type-capplet.c: (revert_real_cb),
	(revert_mime_clicked), (add_mime_clicked): add dialog hook.
This commit is contained in:
Mathieu Lacage 2000-11-17 00:41:44 +00:00 committed by Mathieu Lacage
parent 796feca1e3
commit 7b46e81978
2 changed files with 35 additions and 11 deletions

View file

@ -618,6 +618,7 @@ nautilus_mime_type_capplet_show_new_mime_window (void)
mime_type = NULL;
dialog = gnome_dialog_new (_("Add Mime Type"), GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL);
gnome_dialog_set_default (GNOME_DIALOG (dialog), 1);
label = gtk_label_new (_("Add a new Mime Type\nFor example: image/tiff; text/x-scheme"));
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
hbox = gtk_hbox_new (FALSE, GNOME_PAD_SMALL);
@ -647,6 +648,8 @@ nautilus_mime_type_capplet_show_new_mime_window (void)
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
gnome_dialog_set_close (GNOME_DIALOG (dialog), FALSE);
gtk_widget_show_all (GNOME_DIALOG (dialog)->vbox);
switch (gnome_dialog_run (GNOME_DIALOG (dialog))) {
case 0:
@ -662,13 +665,14 @@ nautilus_mime_type_capplet_show_new_mime_window (void)
/* Fall through to close dialog */
case 1:
gtk_widget_destroy (dialog);
break;
default:
break;
}
gnome_dialog_close (GNOME_DIALOG (dialog));
return mime_type;
}

View file

@ -954,20 +954,39 @@ populate_viewer_menu (GtkWidget *component_menu, const char *mime_type)
gtk_option_menu_set_menu (GTK_OPTION_MENU (default_menu), new_menu);
}
static void
revert_real_cb (gint reply, gpointer data)
{
if (reply == 0) {
/* YES */
GList *mime_types_list;
gnome_vfs_mime_reset ();
gnome_vfs_mime_info_reload ();
mime_types_list = gnome_vfs_get_registered_mime_types ();
gtk_clist_clear (GTK_CLIST (mime_list));
populate_mime_list (mime_types_list, GTK_CLIST (mime_list));
} else {
/* NO */
}
}
static void
revert_mime_clicked (GtkWidget *widget, gpointer data)
{
GList *mime_types_list;
GtkWidget *dialog;
gint button_clicked;
GtkWidget *label;
dialog = gnome_question_dialog_modal (_("Reverting to system settings\n"
"will lose all your personal \n"
"Mime configuration.\n"
"Revert to System Settings ?\n"),
revert_real_cb, NULL);
gnome_vfs_mime_reset ();
gnome_vfs_mime_info_reload ();
mime_types_list = gnome_vfs_get_registered_mime_types ();
gtk_clist_clear (GTK_CLIST (mime_list));
populate_mime_list (mime_types_list, GTK_CLIST (mime_list));
}
/*
* delete_mime_clicked
@ -1091,6 +1110,7 @@ add_mime_clicked (GtkWidget *widget, gpointer data)
g_free (text[3]);
g_free (extensions);
}
}
static void