Added a couple callbacks to the contextual menu

This commit is contained in:
Pierre Pronchery 2013-05-20 07:20:18 +02:00
parent 683488d6df
commit d386203faa
3 changed files with 28 additions and 12 deletions

View File

@ -916,6 +916,7 @@ static void _context_menu_document(GHtml * ghtml, GtkWidget * menu)
g_signal_connect_swapped(menuitem, "activate", G_CALLBACK(
surfer_go_forward), ghtml->surfer);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
/* refresh */
menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_REFRESH, NULL);
g_signal_connect_swapped(menuitem, "activate", G_CALLBACK(
surfer_refresh), ghtml->surfer);
@ -928,6 +929,8 @@ static void _context_menu_document(GHtml * ghtml, GtkWidget * menu)
_("_Save page as..."));
image = gtk_image_new_from_stock(GTK_STOCK_SAVE_AS, GTK_ICON_SIZE_MENU);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
g_signal_connect_swapped(menuitem, "activate", G_CALLBACK(
surfer_save_dialog), ghtml->surfer);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
/* separator */
menuitem = gtk_separator_menu_item_new();

View File

@ -1498,7 +1498,6 @@ void surfer_save(Surfer * surfer, char const * filename)
{
GtkWidget * view;
char const * source;
GtkWidget * dialog;
size_t len;
FILE * fp;
char buf[256];
@ -1509,16 +1508,7 @@ void surfer_save(Surfer * surfer, char const * filename)
return; /* XXX report error */
if(filename == NULL)
{
dialog = gtk_file_chooser_dialog_new(_("Save file as..."),
GTK_WINDOW(surfer->window),
GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE,
GTK_RESPONSE_ACCEPT, NULL);
if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
filename = gtk_file_chooser_get_filename(
GTK_FILE_CHOOSER(dialog));
gtk_widget_destroy(dialog);
if(filename == NULL)
surfer_save_dialog(surfer);
return;
}
if(_surfer_filename_confirm(surfer, filename) != TRUE)
@ -1539,6 +1529,28 @@ void surfer_save(Surfer * surfer, char const * filename)
}
/* surfer_save_dialog */
void surfer_save_dialog(Surfer * surfer)
{
GtkWidget * dialog;
gchar * filename = NULL;
dialog = gtk_file_chooser_dialog_new(_("Save file as..."),
GTK_WINDOW(surfer->window),
GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE,
GTK_RESPONSE_ACCEPT, NULL);
if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
filename = gtk_file_chooser_get_filename(
GTK_FILE_CHOOSER(dialog));
gtk_widget_destroy(dialog);
if(filename == NULL)
return;
surfer_save(surfer, filename);
g_free(filename);
}
/* surfer_select_all */
void surfer_select_all(Surfer * surfer)
{

View File

@ -102,6 +102,7 @@ void surfer_close_tab(Surfer * surfer, GtkWidget * widget);
void surfer_print(Surfer * surfer);
void surfer_save(Surfer * surfer, char const * filename);
void surfer_save_dialog(Surfer * surfer);
void surfer_find(Surfer * surfer, char const * text);