# HG changeset patch # User Sadrul Habib Chowdhury # Date 1183055600 0 # Node ID 65fedb03ac05ec05eb011614834f7dc6285de600 # Parent f23a7736586f994cd351492df2cf3a6c489e1313 Mark some string for translation, and show only one preference window at a time. diff -r f23a7736586f -r 65fedb03ac05 finch/gntprefs.c --- a/finch/gntprefs.c Thu Jun 28 18:32:22 2007 +0000 +++ b/finch/gntprefs.c Thu Jun 28 18:33:20 2007 +0000 @@ -32,7 +32,10 @@ #include -static GList *freestrings; /* strings to be freed when the pref-window is closed */ +static struct { + GList *freestrings; /* strings to be freed when the pref-window is closed */ + gboolean showing; +} pref_request; void finch_prefs_init() { @@ -98,7 +101,7 @@ str = g_strdup_printf("%ld", purple_savedstatus_get_creation_time(iter->data)); list = g_list_append(list, (char*)purple_savedstatus_get_title(iter->data)); list = g_list_append(list, str); - freestrings = g_list_prepend(freestrings, str); + pref_request.freestrings = g_list_prepend(pref_request.freestrings, str); } return list; } @@ -190,22 +193,22 @@ {PURPLE_PREF_NONE, NULL, NULL, NULL}, }; -/* XXX: Translate after the freeze */ static Prefs idle[] = { - {PURPLE_PREF_STRING, "/purple/away/idle_reporting", "Report Idle time", get_idle_options}, - {PURPLE_PREF_BOOLEAN, "/purple/away/away_when_idle", "Change status when idle", NULL}, - {PURPLE_PREF_INT, "/purple/away/mins_before_away", "Minutes before changing status", NULL}, - {PURPLE_PREF_INT, "/purple/savedstatus/idleaway", "Change status to", get_status_titles}, + {PURPLE_PREF_STRING, "/purple/away/idle_reporting", N_("Report Idle time"), get_idle_options}, + {PURPLE_PREF_BOOLEAN, "/purple/away/away_when_idle", N_("Change status when idle"), NULL}, + {PURPLE_PREF_INT, "/purple/away/mins_before_away", N_("Minutes before changing status"), NULL}, + {PURPLE_PREF_INT, "/purple/savedstatus/idleaway", N_("Change status to"), get_status_titles}, {PURPLE_PREF_NONE, NULL, NULL, NULL}, }; static void free_strings() { - g_list_foreach(freestrings, (GFunc)g_free, NULL); - g_list_free(freestrings); - freestrings = NULL; + g_list_foreach(pref_request.freestrings, (GFunc)g_free, NULL); + g_list_free(pref_request.freestrings); + pref_request.freestrings = NULL; + pref_request.showing = FALSE; } static void @@ -236,6 +239,9 @@ { PurpleRequestFields *fields; + if (pref_request.showing) + return; + fields = purple_request_fields_new(); add_pref_group(fields, _("Buddy List"), blist); @@ -243,6 +249,7 @@ add_pref_group(fields, _("Logging"), logging); add_pref_group(fields, _("Idle"), idle); + pref_request.showing = TRUE; purple_request_fields(NULL, _("Preferences"), NULL, NULL, fields, _("Save"), G_CALLBACK(save_cb), _("Cancel"), free_strings, NULL, NULL, NULL,