diff options
-rw-r--r-- | libempathy-gtk/empathy-account-widget-irc.c | 12 | ||||
-rw-r--r-- | libempathy-gtk/empathy-irc-network-dialog.c | 26 |
2 files changed, 34 insertions, 4 deletions
diff --git a/libempathy-gtk/empathy-account-widget-irc.c b/libempathy-gtk/empathy-account-widget-irc.c index d07faeb5b..7294a43ce 100644 --- a/libempathy-gtk/empathy-account-widget-irc.c +++ b/libempathy-gtk/empathy-account-widget-irc.c @@ -140,6 +140,7 @@ update_server_params (EmpathyAccountWidgetIrc *settings) GtkTreeModel *model; EmpathyIrcNetwork *network; GSList *servers; + gchar *charset; if (!gtk_combo_box_get_active_iter ( GTK_COMBO_BOX (settings->combobox_network), &iter)) @@ -153,6 +154,11 @@ update_server_params (EmpathyAccountWidgetIrc *settings) g_assert (network != NULL); + g_object_get (network, "charset", &charset, NULL); + empathy_debug (DEBUG_DOMAIN, "Setting charset to %s", charset); + mc_account_set_param_string (settings->account, "charset", charset); + g_free (charset); + servers = empathy_irc_network_get_servers (network); if (g_slist_length (servers) > 0) { @@ -175,7 +181,6 @@ update_server_params (EmpathyAccountWidgetIrc *settings) empathy_debug (DEBUG_DOMAIN, "Setting use-ssl to %s", ssl ? "TRUE": "FALSE" ); mc_account_set_param_boolean (settings->account, "use-ssl", ssl); - /* TODO: charset */ g_free (address); } @@ -361,6 +366,8 @@ fill_networks_model (EmpathyAccountWidgetIrc *settings, { gtk_combo_box_set_active_iter ( GTK_COMBO_BOX (settings->combobox_network), &iter); + + update_server_params (settings); } } @@ -422,6 +429,8 @@ account_widget_irc_setup (EmpathyAccountWidgetIrc *settings) network = empathy_irc_network_manager_find_network_by_address ( settings->network_manager, server); + g_object_set (network, "charset", charset, NULL); + store = GTK_LIST_STORE (gtk_combo_box_get_model ( GTK_COMBO_BOX (settings->combobox_network))); @@ -458,6 +467,7 @@ account_widget_irc_setup (EmpathyAccountWidgetIrc *settings) } } + fill_networks_model (settings, network); g_free (nick); diff --git a/libempathy-gtk/empathy-irc-network-dialog.c b/libempathy-gtk/empathy-irc-network-dialog.c index 3d3276fc9..cbef024e8 100644 --- a/libempathy-gtk/empathy-irc-network-dialog.c +++ b/libempathy-gtk/empathy-irc-network-dialog.c @@ -36,6 +36,7 @@ #include <libempathy/empathy-irc-network-manager.h> #include "empathy-ui-utils.h" +#include "totem-subtitle-encoding.h" #include "empathy-irc-network-dialog.h" @@ -105,11 +106,14 @@ add_server_to_store (GtkListStore *store, static void irc_network_dialog_setup (EmpathyIrcNetworkDialog *dialog) { - gchar *name; + gchar *name, *charset; GSList *servers, *l; GtkListStore *store; - g_object_get (dialog->network, "name", &name, NULL); + g_object_get (dialog->network, + "name", &name, + "charset", &charset, + NULL); gtk_entry_set_text (GTK_ENTRY (dialog->entry_network), name); store = GTK_LIST_STORE (gtk_tree_view_get_model ( @@ -124,11 +128,13 @@ irc_network_dialog_setup (EmpathyIrcNetworkDialog *dialog) add_server_to_store (store, server, &iter); } - /* TODO charset */ + totem_subtitle_encoding_set (GTK_COMBO_BOX (dialog->combobox_charset), + charset); g_slist_foreach (servers, (GFunc) g_object_unref, NULL); g_slist_free (servers); g_free (name); + g_free (charset); } static void @@ -401,6 +407,16 @@ irc_network_dialog_selection_changed_cb (GtkTreeSelection *treeselection, } static void +irc_network_dialog_combobox_charset_changed_cb (GtkWidget *combobox, + EmpathyIrcNetworkDialog *dialog) +{ + const gchar *charset; + + charset = totem_subtitle_encoding_get_selected (GTK_COMBO_BOX (combobox)); + g_object_set (dialog->network, "charset", charset, NULL); +} + +static void change_network (EmpathyIrcNetworkDialog *dialog, EmpathyIrcNetwork *network) { @@ -514,6 +530,9 @@ irc_network_dialog_show (EmpathyIrcNetwork *network, GTK_TREE_VIEW (dialog->treeview_servers)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); + /* charset */ + totem_subtitle_encoding_init (GTK_COMBO_BOX (dialog->combobox_charset)); + irc_network_dialog_setup (dialog); empathy_glade_connect (glade, dialog, @@ -524,6 +543,7 @@ irc_network_dialog_show (EmpathyIrcNetwork *network, "button_remove", "clicked", irc_network_dialog_button_remove_clicked_cb, "button_up", "clicked", irc_network_dialog_button_up_clicked_cb, "button_down", "clicked", irc_network_dialog_button_down_clicked_cb, + "combobox_charset", "changed", irc_network_dialog_combobox_charset_changed_cb, NULL); g_object_unref (glade); |