aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--embed/ephy-embed.c35
-rw-r--r--embed/ephy-embed.h11
-rw-r--r--embed/webkit/webkit-embed.c17
-rw-r--r--src/ephy-encoding-dialog.c13
-rw-r--r--src/ephy-encoding-menu.c16
5 files changed, 23 insertions, 69 deletions
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index b9721bb0f..73d34d6f3 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -556,41 +556,6 @@ ephy_embed_show_page_certificate (EphyEmbed *embed)
}
/**
- * ephy_embed_set_encoding:
- * @embed: an #EphyEmbed
- * @encoding: the desired encoding
- *
- * Sets @embed's character encoding to @encoding. These cryptic encoding
- * strings are listed in <filename>embed/ephy-encodings.c</filename>.
- *
- * Pass an empty string (not NULL) in @encoding to reset @embed to use the
- * document-specified encoding.
- **/
-void
-ephy_embed_set_encoding (EphyEmbed *embed,
- const char *encoding)
-{
- EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
- iface->set_encoding (embed, encoding);
-}
-
-/**
- * ephy_embed_get_encoding:
- * @embed: an #EphyEmbed
- *
- * Returns the @embed's document encoding.
- *
- * Returns: the @embed's document encoding
- *
- **/
-const char *
-ephy_embed_get_encoding (EphyEmbed *embed)
-{
- EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
- return iface->get_encoding (embed);
-}
-
-/**
* ephy_embed_has_automatic_encoding:
* @embed: an #EphyEmbed
*
diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h
index 7855898b4..0b9c65149 100644
--- a/embed/ephy-embed.h
+++ b/embed/ephy-embed.h
@@ -190,10 +190,7 @@ struct _EphyEmbedIface
void (* scroll_pixels) (EphyEmbed *embed,
int dx,
int dy);
- const char * (* get_encoding) (EphyEmbed *embed);
gboolean (* has_automatic_encoding) (EphyEmbed *embed);
- void (* set_encoding) (EphyEmbed *embed,
- const char *encoding);
void (* set_print_preview_mode) (EphyEmbed *embed,
gboolean mode);
int (* print_preview_n_pages) (EphyEmbed *embed);
@@ -308,13 +305,7 @@ gboolean ephy_embed_get_is_blank (EphyEmbed *embed);
const char * ephy_embed_get_loading_title (EphyEmbed *embed);
gboolean ephy_embed_get_visibility (EphyEmbed *embed);
-/* Encoding */
-const char *ephy_embed_get_encoding (EphyEmbed *embed);
-
-gboolean ephy_embed_has_automatic_encoding (EphyEmbed *embed);
-
-void ephy_embed_set_encoding (EphyEmbed *embed,
- const char *encoding);
+gboolean ephy_embed_has_automatic_encoding (EphyEmbed *embed);
/* Print */
void ephy_embed_set_print_preview_mode (EphyEmbed *embed,
diff --git a/embed/webkit/webkit-embed.c b/embed/webkit/webkit-embed.c
index 330718a29..e41d7172d 100644
--- a/embed/webkit/webkit-embed.c
+++ b/embed/webkit/webkit-embed.c
@@ -557,21 +557,6 @@ impl_print_preview_navigate (EphyEmbed *embed,
{
}
-static void
-impl_set_encoding (EphyEmbed *embed,
- const char *encoding)
-{
- WebKitWebView *view = WEBKIT_EMBED (embed)->priv->web_view;
- webkit_web_view_set_custom_encoding (view, encoding);
-}
-
-static const char *
-impl_get_encoding (EphyEmbed *embed)
-{
- WebKitWebView *view = WEBKIT_EMBED (embed)->priv->web_view;
- return webkit_web_view_get_custom_encoding (view);
-}
-
static gboolean
impl_has_automatic_encoding (EphyEmbed *embed)
{
@@ -596,8 +581,6 @@ ephy_embed_iface_init (EphyEmbedIface *iface)
iface->get_js_status = impl_get_js_status;
iface->shistory_copy = impl_shistory_copy;
iface->show_page_certificate = impl_show_page_certificate;
- iface->set_encoding = impl_set_encoding;
- iface->get_encoding = impl_get_encoding;
iface->has_automatic_encoding = impl_has_automatic_encoding;
iface->set_print_preview_mode = impl_set_print_preview_mode;
iface->print_preview_n_pages = impl_print_preview_n_pages;
diff --git a/src/ephy-encoding-dialog.c b/src/ephy-encoding-dialog.c
index 64a343868..fcbd1ad4d 100644
--- a/src/ephy-encoding-dialog.c
+++ b/src/ephy-encoding-dialog.c
@@ -26,6 +26,7 @@
#include "ephy-embed.h"
#include "ephy-embed-container.h"
#include "ephy-embed-shell.h"
+#include "ephy-embed-utils.h"
#include "ephy-file-helpers.h"
#include "ephy-shell.h"
#include "ephy-node.h"
@@ -36,6 +37,7 @@
#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <string.h>
+#include <webkit/webkit.h>
enum
{
@@ -85,13 +87,15 @@ sync_encoding_against_embed (EphyEncodingDialog *dialog)
GtkWidget *button;
const char *encoding;
gboolean is_automatic;
+ WebKitWebView *view;
dialog->priv->update_tag = TRUE;
embed = ephy_embed_dialog_get_embed (EPHY_EMBED_DIALOG (dialog));
g_return_if_fail (EPHY_IS_EMBED (embed));
- encoding = ephy_embed_get_encoding (embed);
+ view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+ encoding = webkit_web_view_get_custom_encoding (view);
if (encoding == NULL) return;
node = ephy_encodings_get_node (dialog->priv->encodings, encoding, TRUE);
@@ -194,6 +198,7 @@ activate_choice (EphyEncodingDialog *dialog)
EphyEmbed *embed;
GtkWidget *button;
gboolean is_automatic;
+ WebKitWebView *view;
embed = ephy_embed_dialog_get_embed (EPHY_EMBED_DIALOG (dialog));
g_return_if_fail (EPHY_IS_EMBED (embed));
@@ -201,9 +206,11 @@ activate_choice (EphyEncodingDialog *dialog)
button = ephy_dialog_get_control (EPHY_DIALOG (dialog), properties[AUTOMATIC_PROP].id);
is_automatic = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
+ view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+
if (is_automatic)
{
- ephy_embed_set_encoding (embed, "");
+ webkit_web_view_set_custom_encoding (view, NULL);
}
else if (dialog->priv->selected_node != NULL)
{
@@ -212,7 +219,7 @@ activate_choice (EphyEncodingDialog *dialog)
code = ephy_node_get_property_string (dialog->priv->selected_node,
EPHY_NODE_ENCODING_PROP_ENCODING);
- ephy_embed_set_encoding (embed, code);
+ webkit_web_view_set_custom_encoding (view, code);
ephy_encodings_add_recent (dialog->priv->encodings, code);
}
diff --git a/src/ephy-encoding-menu.c b/src/ephy-encoding-menu.c
index 682a22747..ea977bc46 100644
--- a/src/ephy-encoding-menu.c
+++ b/src/ephy-encoding-menu.c
@@ -28,12 +28,14 @@
#include "ephy-embed.h"
#include "ephy-embed-container.h"
#include "ephy-embed-shell.h"
+#include "ephy-embed-utils.h"
#include "ephy-shell.h"
#include "ephy-debug.h"
#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <string.h>
+#include <webkit/webkit.h>
#define EPHY_ENCODING_MENU_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_ENCODING_MENU, EphyEncodingMenuPrivate))
@@ -117,6 +119,7 @@ update_encoding_menu_cb (GtkAction *dummy, EphyEncodingMenu *menu)
GList *recent, *related = NULL, *l;
EphyLanguageGroup groups;
gboolean is_automatic;
+ WebKitWebView *view;
START_PROFILER ("Rebuilding encoding menu")
@@ -130,7 +133,8 @@ update_encoding_menu_cb (GtkAction *dummy, EphyEncodingMenu *menu)
recent = ephy_encodings_get_recent (p->encodings);
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (p->window));
- encoding = ephy_embed_get_encoding (embed);
+ view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+ encoding = webkit_web_view_get_custom_encoding (view);
if (encoding == NULL) goto build_menu;
enc_node = ephy_encodings_get_node (p->encodings, encoding, TRUE);
@@ -228,6 +232,7 @@ static void
encoding_activate_cb (GtkAction *action, EphyEncodingMenu *menu)
{
EphyEmbed *embed;
+ WebKitWebView *view;
const char *name, *encoding;
if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) == FALSE
@@ -241,7 +246,8 @@ encoding_activate_cb (GtkAction *action, EphyEncodingMenu *menu)
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (menu->priv->window));
- ephy_embed_set_encoding (embed, encoding);
+ view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+ webkit_web_view_set_custom_encoding (view, encoding);
ephy_encodings_add_recent (menu->priv->encodings, encoding);
}
@@ -301,6 +307,7 @@ static void
ephy_encoding_menu_automatic_cb (GtkAction *action, EphyEncodingMenu *menu)
{
EphyEmbed *embed;
+ WebKitWebView *view;
if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) == FALSE
|| menu->priv->update_tag)
@@ -311,8 +318,9 @@ ephy_encoding_menu_automatic_cb (GtkAction *action, EphyEncodingMenu *menu)
embed = ephy_embed_container_get_active_child
(EPHY_EMBED_CONTAINER (menu->priv->window));
- /* setting "" will clear the forced encoding */
- ephy_embed_set_encoding (embed, "");
+ /* setting NULL will clear the forced encoding */
+ view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+ webkit_web_view_set_custom_encoding (view, NULL);
}
static const GtkActionEntry menu_entries [] =