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:
parent
148e311aa6
commit
1ecd607bcb
5 changed files with 53 additions and 52 deletions
|
@ -709,3 +709,53 @@ cc_common_language_get_initial_regions (const gchar *lang)
|
||||||
|
|
||||||
return ht;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,8 @@ void cc_common_language_setup_list (GtkWidget *treeview,
|
||||||
GHashTable *initial);
|
GHashTable *initial);
|
||||||
void cc_common_language_select_current_language (GtkTreeView *treeview);
|
void cc_common_language_select_current_language (GtkTreeView *treeview);
|
||||||
|
|
||||||
|
void cc_common_language_add_user_languages (GtkTreeModel *model);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -73,55 +73,6 @@ row_activated (GtkTreeView *tree_view,
|
||||||
gtk_dialog_response (GTK_DIALOG (chooser), GTK_RESPONSE_OK);
|
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
|
static void
|
||||||
remove_timeout (gpointer data,
|
remove_timeout (gpointer data,
|
||||||
GObject *where_the_object_was)
|
GObject *where_the_object_was)
|
||||||
|
|
|
@ -26,8 +26,6 @@
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
void cc_add_user_languages (GtkTreeModel *model);
|
|
||||||
|
|
||||||
GtkWidget *cc_language_chooser_new (GtkWidget *parent,
|
GtkWidget *cc_language_chooser_new (GtkWidget *parent,
|
||||||
gboolean regions);
|
gboolean regions);
|
||||||
void cc_language_chooser_clear_filter (GtkWidget *chooser);
|
void cc_language_chooser_clear_filter (GtkWidget *chooser);
|
||||||
|
|
|
@ -641,7 +641,7 @@ show_user (ActUser *user, CcUserPanelPrivate *d)
|
||||||
|
|
||||||
widget = get_widget (d, "account-language-combo");
|
widget = get_widget (d, "account-language-combo");
|
||||||
model = um_editable_combo_get_model (UM_EDITABLE_COMBO (widget));
|
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));
|
lang = g_strdup (act_user_get_language (user));
|
||||||
if (!lang)
|
if (!lang)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue