Added a couple callbacks to the contextual menu
This commit is contained in:
parent
683488d6df
commit
d386203faa
|
@ -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();
|
||||
|
|
36
src/surfer.c
36
src/surfer.c
|
@ -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,17 +1508,8 @@ 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)
|
||||
return;
|
||||
surfer_save_dialog(surfer);
|
||||
return;
|
||||
}
|
||||
if(_surfer_filename_confirm(surfer, filename) != TRUE)
|
||||
return;
|
||||
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user