Move cc_add_user_language

Move it to cc-common-language.c and rename it
to cc_common_language_add_user_languages
This commit is contained in:
Matthias Clasen 2013-01-27 11:02:53 -05:00 committed by Rui Matos
parent 148e311aa6
commit 1ecd607bcb
5 changed files with 53 additions and 52 deletions

View file

@ -709,3 +709,53 @@ cc_common_language_get_initial_regions (const gchar *lang)
return ht;
}
static void
foreach_user_lang_cb (gpointer key,
gpointer value,
gpointer user_data)
{
GtkListStore *store = (GtkListStore *) user_data;
const char *locale = (const char *) key;
const char *display_locale = (const char *) value;
GtkTreeIter iter;
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
LOCALE_COL, locale,
DISPLAY_LOCALE_COL, display_locale,
-1);
}
void
cc_common_language_add_user_languages (GtkTreeModel *model)
{
char *name;
GtkTreeIter iter;
GtkListStore *store = GTK_LIST_STORE (model);
GHashTable *user_langs;
const char *display;
gtk_list_store_clear (store);
user_langs = cc_common_language_get_initial_languages ();
/* Add the current locale first */
name = cc_common_language_get_current_language ();
display = g_hash_table_lookup (user_langs, name);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, LOCALE_COL, name, DISPLAY_LOCALE_COL, display, -1);
g_hash_table_remove (user_langs, name);
g_free (name);
/* The rest of the languages */
g_hash_table_foreach (user_langs, (GHFunc) foreach_user_lang_cb, store);
/* And now the "Other…" selection */
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, LOCALE_COL, NULL, DISPLAY_LOCALE_COL, _("Other…"), -1);
g_hash_table_destroy (user_langs);
}

View file

@ -55,6 +55,8 @@ void cc_common_language_setup_list (GtkWidget *treeview,
GHashTable *initial);
void cc_common_language_select_current_language (GtkTreeView *treeview);
void cc_common_language_add_user_languages (GtkTreeModel *model);
G_END_DECLS
#endif

View file

@ -73,55 +73,6 @@ row_activated (GtkTreeView *tree_view,
gtk_dialog_response (GTK_DIALOG (chooser), GTK_RESPONSE_OK);
}
static void
languages_foreach_cb (gpointer key,
gpointer value,
gpointer user_data)
{
GtkListStore *store = (GtkListStore *) user_data;
const char *locale = (const char *) key;
const char *display_locale = (const char *) value;
GtkTreeIter iter;
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
LOCALE_COL, locale,
DISPLAY_LOCALE_COL, display_locale,
-1);
}
void
cc_add_user_languages (GtkTreeModel *model)
{
char *name;
GtkTreeIter iter;
GtkListStore *store = GTK_LIST_STORE (model);
GHashTable *user_langs;
const char *display;
gtk_list_store_clear (store);
user_langs = cc_common_language_get_initial_languages ();
/* Add the current locale first */
name = cc_common_language_get_current_language ();
display = g_hash_table_lookup (user_langs, name);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, LOCALE_COL, name, DISPLAY_LOCALE_COL, display, -1);
g_hash_table_remove (user_langs, name);
g_free (name);
/* The rest of the languages */
g_hash_table_foreach (user_langs, (GHFunc) languages_foreach_cb, store);
/* And now the "Other…" selection */
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, LOCALE_COL, NULL, DISPLAY_LOCALE_COL, _("Other…"), -1);
g_hash_table_destroy (user_langs);
}
static void
remove_timeout (gpointer data,
GObject *where_the_object_was)

View file

@ -26,8 +26,6 @@
G_BEGIN_DECLS
void cc_add_user_languages (GtkTreeModel *model);
GtkWidget *cc_language_chooser_new (GtkWidget *parent,
gboolean regions);
void cc_language_chooser_clear_filter (GtkWidget *chooser);

View file

@ -641,7 +641,7 @@ show_user (ActUser *user, CcUserPanelPrivate *d)
widget = get_widget (d, "account-language-combo");
model = um_editable_combo_get_model (UM_EDITABLE_COMBO (widget));
cc_add_user_languages (model);
cc_common_language_add_user_languages (model);
lang = g_strdup (act_user_get_language (user));
if (!lang)