From 7093f6ad148d62a9ddc77f8080cf9822d5d24f1f Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sat, 1 May 2004 20:47:00 +0000 Subject: Clean up encoding handling. 2004-05-01 Christian Persch * embed/ephy-embed.c: (ephy_embed_get_encoding), (ephy_embed_has_automatic_encoding): * embed/ephy-embed.h: * embed/ephy-encodings.c: * embed/ephy-encodings.h: * embed/mozilla/EphyBrowser.cpp: * embed/mozilla/EphyBrowser.h: * embed/mozilla/MozRegisterComponents.cpp: * embed/mozilla/mozilla-embed.cpp: * src/ephy-encoding-dialog.c: (sync_embed_cb), (activate_choice): * src/ephy-encoding-menu.c: (update_encoding_menu_cb), (encoding_activate_cb): Clean up encoding handling. --- src/ephy-encoding-dialog.c | 33 +++++++++------------------------ src/ephy-encoding-menu.c | 33 ++++++--------------------------- 2 files changed, 15 insertions(+), 51 deletions(-) (limited to 'src') diff --git a/src/ephy-encoding-dialog.c b/src/ephy-encoding-dialog.c index 3365fa5af..adf0f61f3 100644 --- a/src/ephy-encoding-dialog.c +++ b/src/ephy-encoding-dialog.c @@ -113,12 +113,12 @@ static void sync_embed_cb (EphyEncodingDialog *dialog, GParamSpec *pspec, gpointer dummy) { EphyEmbed *embed; - EphyEncodingInfo *info; EphyNode *node; GtkTreeSelection *selection; GtkTreeModel *model; GList *rows; GtkWidget *button; + char *encoding; gboolean is_automatic; dialog->priv->update_tag = TRUE; @@ -126,10 +126,10 @@ sync_embed_cb (EphyEncodingDialog *dialog, GParamSpec *pspec, gpointer dummy) embed = ephy_embed_dialog_get_embed (EPHY_EMBED_DIALOG (dialog)); g_return_if_fail (EPHY_IS_EMBED (embed)); - info = ephy_embed_get_encoding_info (embed); - if (info == NULL) return; + encoding = ephy_embed_get_encoding (embed); + if (encoding == NULL) return; - node = ephy_encodings_get_node (dialog->priv->encodings, info->encoding, TRUE); + node = ephy_encodings_get_node (dialog->priv->encodings, encoding, TRUE); g_assert (EPHY_IS_NODE (node)); /* select the current encoding in the list view */ @@ -153,12 +153,12 @@ sync_embed_cb (EphyEncodingDialog *dialog, GParamSpec *pspec, gpointer dummy) g_list_free (rows); } - is_automatic = ephy_encoding_info_is_automatic (info); + is_automatic = ephy_embed_has_automatic_encoding (embed); button = ephy_dialog_get_control (EPHY_DIALOG (dialog), properties[AUTOMATIC_PROP].id); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), is_automatic); - ephy_encoding_info_free (info); + g_free (encoding); dialog->priv->update_tag = FALSE; } @@ -199,27 +199,18 @@ static void activate_choice (EphyEncodingDialog *dialog) { EphyEmbed *embed; - EphyEncodingInfo *info; GtkWidget *button; gboolean is_automatic; embed = ephy_embed_dialog_get_embed (EPHY_EMBED_DIALOG (dialog)); g_return_if_fail (EPHY_IS_EMBED (embed)); - info = ephy_embed_get_encoding_info (embed); - if (info == NULL) return; - button = ephy_dialog_get_control (EPHY_DIALOG (dialog), properties[AUTOMATIC_PROP].id); is_automatic = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); if (is_automatic) { - /* only unset if it was forced before */ - if ((info->forced_encoding != NULL && info->forced_encoding[0] != '\0') - || info->encoding_source >= EMBED_ENCODING_PARENT_FORCED) - { - ephy_embed_set_encoding (embed, ""); - } + ephy_embed_set_encoding (embed, ""); } else if (dialog->priv->selected_node != NULL) { @@ -228,16 +219,10 @@ activate_choice (EphyEncodingDialog *dialog) code = ephy_node_get_property_string (dialog->priv->selected_node, EPHY_NODE_ENCODING_PROP_ENCODING); - /* only force it if it's different from active */ - if (info->encoding && strcmp (info->encoding, code) != 0) - { - ephy_embed_set_encoding (embed, code); + ephy_embed_set_encoding (embed, code); - ephy_encodings_add_recent (dialog->priv->encodings, code); - } + ephy_encodings_add_recent (dialog->priv->encodings, code); } - - ephy_encoding_info_free (info); } void diff --git a/src/ephy-encoding-menu.c b/src/ephy-encoding-menu.c index 3eade8ced..b35ada0e6 100644 --- a/src/ephy-encoding-menu.c +++ b/src/ephy-encoding-menu.c @@ -150,9 +150,8 @@ update_encoding_menu_cb (GtkAction *dummy, EphyEncodingMenu *menu) EphyEncodingMenuPrivate *p = menu->priv; EphyEmbed *embed; GtkAction *action; - EphyEncodingInfo *info; char name[128]; - const char *encoding; + char *encoding; EphyNode *enc_node; GList *recent, *related = NULL, *l; EphyLanguageGroup groups; @@ -170,24 +169,14 @@ update_encoding_menu_cb (GtkAction *dummy, EphyEncodingMenu *menu) recent = ephy_encodings_get_recent (p->encodings); embed = ephy_window_get_active_embed (p->window); - info = ephy_embed_get_encoding_info (embed); - if (info == NULL) goto build_menu; - - LOG ("encoding information\n enc='%s' default='%s' hint='%s' " - "prev_doc='%s' forced='%s' parent='%s' source=%d " - "hint_source=%d parent_source=%d", info->encoding, - info->default_encoding, info->hint_encoding, - info->prev_doc_encoding, info->forced_encoding, - info->parent_encoding, info->encoding_source, - info->hint_encoding_source, info->parent_encoding_source) - - encoding = info->encoding; + encoding = ephy_embed_get_encoding (embed); + if (encoding == NULL) goto build_menu; enc_node = ephy_encodings_get_node (p->encodings, encoding, TRUE); g_assert (EPHY_IS_NODE (enc_node)); /* check if encoding was overridden */ - is_automatic = ephy_encoding_info_is_automatic (info); + is_automatic = ephy_embed_has_automatic_encoding (embed); action = gtk_action_group_get_action (p->action_group, "ViewEncodingAutomatic"); @@ -269,7 +258,7 @@ build_menu: g_list_free (related); g_list_free (recent); - ephy_encoding_info_free (info); + g_free (encoding); menu->priv->update_tag = FALSE; @@ -280,7 +269,6 @@ static void encoding_activate_cb (GtkAction *action, EphyEncodingMenu *menu) { EphyEmbed *embed; - EphyEncodingInfo *info; const char *name, *encoding; if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) == FALSE @@ -294,16 +282,7 @@ encoding_activate_cb (GtkAction *action, EphyEncodingMenu *menu) embed = ephy_window_get_active_embed (menu->priv->window); - info = ephy_embed_get_encoding_info (embed); - if (info == NULL) return; - - /* Force only when different from current encoding */ - if (info->encoding && strcmp (info->encoding, encoding) != 0) - { - ephy_embed_set_encoding (embed, encoding); - } - - ephy_encoding_info_free (info); + ephy_embed_set_encoding (embed, encoding); ephy_encodings_add_recent (menu->priv->encodings, encoding); } -- cgit v1.2.3