aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-irc-network-dialog.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-02-11 03:36:52 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-02-11 03:36:52 +0800
commit67214ba24c3f3ed1fe071086d6cb4d3becdc764a (patch)
tree7c4e265d418f0ec9da385332f38c6272b8696d67 /libempathy-gtk/empathy-irc-network-dialog.c
parent67ea14f2e88163d44ff3ceae174b62ec66de76e1 (diff)
downloadgsoc2013-empathy-67214ba24c3f3ed1fe071086d6cb4d3becdc764a.tar
gsoc2013-empathy-67214ba24c3f3ed1fe071086d6cb4d3becdc764a.tar.gz
gsoc2013-empathy-67214ba24c3f3ed1fe071086d6cb4d3becdc764a.tar.bz2
gsoc2013-empathy-67214ba24c3f3ed1fe071086d6cb4d3becdc764a.tar.lz
gsoc2013-empathy-67214ba24c3f3ed1fe071086d6cb4d3becdc764a.tar.xz
gsoc2013-empathy-67214ba24c3f3ed1fe071086d6cb4d3becdc764a.tar.zst
gsoc2013-empathy-67214ba24c3f3ed1fe071086d6cb4d3becdc764a.zip
add charset support
Diffstat (limited to 'libempathy-gtk/empathy-irc-network-dialog.c')
-rw-r--r--libempathy-gtk/empathy-irc-network-dialog.c26
1 files changed, 23 insertions, 3 deletions
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);