[gcalctool] Sort currency names
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gcalctool] Sort currency names
- Date: Mon, 31 Jan 2011 22:54:43 +0000 (UTC)
commit f5af0d7d16bc218ae2b5f8911116e4049ca1e98b
Author: Robert Ancell <robert ancell canonical com>
Date: Tue Feb 1 09:54:28 2011 +1100
Sort currency names
src/currency-manager.c | 2 +-
src/currency-manager.h | 2 +-
src/unit-manager.c | 16 +++++++++++++---
3 files changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/src/currency-manager.c b/src/currency-manager.c
index 832034c..be9c905 100644
--- a/src/currency-manager.c
+++ b/src/currency-manager.c
@@ -121,7 +121,7 @@ currency_manager_get_default(void)
}
-const GList *
+GList *
currency_manager_get_currencies(CurrencyManager *manager)
{
return manager->priv->currencies;
diff --git a/src/currency-manager.h b/src/currency-manager.h
index 1bb9b90..028ba2a 100644
--- a/src/currency-manager.h
+++ b/src/currency-manager.h
@@ -26,7 +26,7 @@ GType currency_manager_get_type(void);
CurrencyManager *currency_manager_get_default(void);
-const GList *currency_manager_get_currencies(CurrencyManager *manager);
+GList *currency_manager_get_currencies(CurrencyManager *manager);
Currency *currency_manager_get_currency(CurrencyManager *manager, const gchar *name);
diff --git a/src/unit-manager.c b/src/unit-manager.c
index 3e96fb9..f67dcee 100644
--- a/src/unit-manager.c
+++ b/src/unit-manager.c
@@ -15,11 +15,18 @@ G_DEFINE_TYPE (UnitManager, unit_manager, G_TYPE_OBJECT);
static UnitManager *default_unit_manager = NULL;
+static gint
+compare_currencies(gconstpointer a, gconstpointer b)
+{
+ return strcmp(currency_get_display_name((Currency *)a), currency_get_display_name((Currency *)b));
+}
+
+
UnitManager *
unit_manager_get_default(void)
{
UnitCategory *category = NULL;
- const GList *iter;
+ GList *currencies, *iter;
int i;
const struct
{
@@ -107,7 +114,9 @@ unit_manager_get_default(void)
}
category = unit_manager_add_category(default_unit_manager, "currency", _("Currency"));
- for (iter = currency_manager_get_currencies(currency_manager_get_default()); iter; iter = iter->next)
+ currencies = g_list_copy(currency_manager_get_currencies(currency_manager_get_default()));
+ currencies = g_list_sort(currencies, compare_currencies);
+ for (iter = currencies; iter; iter = iter->next)
{
Currency *currency = iter->data;
gchar *format;
@@ -118,7 +127,8 @@ unit_manager_get_default(void)
g_free(format);
unit_category_add_unit(category, unit);
- }
+ }
+ g_list_free(currencies);
return default_unit_manager;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]