Sort alphabetically list of encodings
authorRoman Moravcik <roman.moravcik@gmail.com>
Tue, 19 Jan 2010 13:50:24 +0000 (14:50 +0100)
committerRoman Moravcik <roman.moravcik@gmail.com>
Tue, 19 Jan 2010 13:50:24 +0000 (14:50 +0100)
applet/cpmpsubtitles.c

index c46f498..9e45559 100644 (file)
@@ -69,8 +69,6 @@ static const gint font_sizes[] =
 
 typedef enum
 {
-       SUBTITLE_ENCODING_CURRENT_LOCALE,
-
        SUBTITLE_ENCODING_ISO_8859_6,
        SUBTITLE_ENCODING_IBM_864,
        SUBTITLE_ENCODING_MAC_ARABIC,
@@ -174,6 +172,8 @@ typedef enum
        SUBTITLE_ENCODING_VISCII,
        SUBTITLE_ENCODING_WINDOWS_1258,
 
+       SUBTITLE_ENCODING_CURRENT_LOCALE,
+
        SUBTITLE_ENCODING_LAST
 } SubtitleEncodingIndex;
 
@@ -184,8 +184,6 @@ typedef struct {
 } SubtitleEncoding;
 
 static SubtitleEncoding encodings[] = {
-       {SUBTITLE_ENCODING_CURRENT_LOCALE,      NULL,                   N_("Current Locale")},
-
        {SUBTITLE_ENCODING_ISO_8859_6,          "ISO-8859-6",           N_("Arabic")},
        {SUBTITLE_ENCODING_IBM_864,             "IBM864",               N_("Arabic")},
        {SUBTITLE_ENCODING_MAC_ARABIC,          "MAC_ARABIC",           N_("Arabic")},
@@ -287,7 +285,9 @@ static SubtitleEncoding encodings[] = {
 
        {SUBTITLE_ENCODING_TCVN,                "TCVN",                 N_("Vietnamese")},
        {SUBTITLE_ENCODING_VISCII,              "VISCII",               N_("Vietnamese")},
-       {SUBTITLE_ENCODING_WINDOWS_1258,        "WINDOWS-1258",         N_("Vietnamese")}
+       {SUBTITLE_ENCODING_WINDOWS_1258,        "WINDOWS-1258",         N_("Vietnamese")},
+
+       {SUBTITLE_ENCODING_CURRENT_LOCALE,      NULL,                   N_("Current Locale")}
 };
 
 static gboolean
@@ -403,6 +403,16 @@ cmp_families (const void *a,
        return g_utf8_collate (a_name, b_name);
 }
 
+static int
+cmp_encodings (const void *a,
+              const void *b)
+{
+       const SubtitleEncoding *a_encoding = (SubtitleEncoding *) a;
+       const SubtitleEncoding *b_encoding = (SubtitleEncoding *) b;
+
+       return g_utf8_collate (_(a_encoding->name), _(b_encoding->name));
+}
+
 static void
 font_selector_dialog (HildonButton *button,
                      gpointer user_data)
@@ -566,6 +576,8 @@ create_encoding_selector (void)
 
        selector = hildon_touch_selector_new_text ();
 
+       qsort (encodings, SUBTITLE_ENCODING_LAST - 1, sizeof (SubtitleEncoding), cmp_encodings);
+
        while (index < SUBTITLE_ENCODING_LAST) {
                const gchar *encoding = NULL;
 
@@ -577,7 +589,7 @@ create_encoding_selector (void)
                }
 
                hildon_touch_selector_insert_text (HILDON_TOUCH_SELECTOR (selector),
-                                                  encodings[index].index,
+                                                  index,
                                                   encoding);
                index++;
        }