aboutsummaryrefslogtreecommitdiffstats
path: root/embed
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2012-06-22 15:36:28 +0800
committerCarlos Garcia Campos <carlosgc@gnome.org>2012-06-25 19:19:29 +0800
commitd1ffe68fe73afa424ee86834ad3ec7be7cb245a2 (patch)
tree2a4c3de6686ec708cb2044164f529b82491c0ec7 /embed
parentd87fd5e750f7c5eafd7512ba0e9e15363a00be6f (diff)
downloadgsoc2013-epiphany-d1ffe68fe73afa424ee86834ad3ec7be7cb245a2.tar.gz
gsoc2013-epiphany-d1ffe68fe73afa424ee86834ad3ec7be7cb245a2.tar.zst
gsoc2013-epiphany-d1ffe68fe73afa424ee86834ad3ec7be7cb245a2.zip
ephy-web-view: add ephy_web_view_print_failed()
Helper function to show an error messaage in the info bar when the print operation failed.
Diffstat (limited to 'embed')
-rw-r--r--embed/ephy-web-view.c38
1 files changed, 22 insertions, 16 deletions
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index d62c5df61..5c3ff395b 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -3783,6 +3783,27 @@ ephy_web_view_get_security_level (EphyWebView *view,
}
static void
+ephy_web_view_print_failed (EphyWebView *view, GError *error)
+{
+ GtkWidget *info_bar;
+ GtkWidget *label;
+ GtkContainer *content_area;
+ EphyEmbed *embed = EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (view);
+
+ info_bar = gtk_info_bar_new_with_buttons (GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+ label = gtk_label_new (error->message);
+ content_area = GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (info_bar)));
+
+ gtk_info_bar_set_message_type (GTK_INFO_BAR (info_bar), GTK_MESSAGE_ERROR);
+ gtk_container_add (content_area, label);
+ g_signal_connect (info_bar, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
+
+ ephy_embed_add_top_widget (embed, info_bar, FALSE);
+ gtk_widget_show_all (info_bar);
+}
+
+static void
ephy_web_view_run_print_action (EphyWebView *view, GtkPrintOperationAction action)
{
#ifdef HAVE_WEBKIT2
@@ -3804,23 +3825,8 @@ ephy_web_view_run_print_action (EphyWebView *view, GtkPrintOperationAction actio
webkit_web_frame_print_full (main_frame, operation, action, &error);
if (error) {
- GtkWidget *info_bar;
- GtkWidget *label;
- GtkContainer *content_area;
- EphyEmbed *embed = EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (view);
-
- info_bar = gtk_info_bar_new_with_buttons (GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
- label = gtk_label_new (error->message);
- content_area = GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (info_bar)));
+ ephy_web_view_print_failed (view, error);
g_error_free (error);
-
- gtk_info_bar_set_message_type (GTK_INFO_BAR (info_bar), GTK_MESSAGE_ERROR);
- gtk_container_add (content_area, label);
- g_signal_connect (info_bar, "response",
- G_CALLBACK (gtk_widget_destroy), NULL);
-
- ephy_embed_add_top_widget (embed, info_bar, FALSE);
- gtk_widget_show_all (info_bar);
} else
ephy_embed_shell_set_page_setup (shell, gtk_print_operation_get_default_page_setup (operation));