Changed gconf path (/system/mafw/mafw-gst-renderer ->
authorRoman Moravcik <roman.moravcik@gmail.com>
Mon, 18 Jan 2010 14:35:09 +0000 (15:35 +0100)
committerRoman Moravcik <roman.moravcik@gmail.com>
Mon, 18 Jan 2010 14:35:09 +0000 (15:35 +0100)
/system/mafw/mafw-gst-subtitles-renderer). Selection of font is now
working.

applet/cpmpsubtitles.c
libmafw-gst-renderer/mafw-gst-renderer.c

index f922f80..cd203e0 100644 (file)
@@ -35,7 +35,7 @@
 
 #include <gconf/gconf-client.h>
 
-#define GCONF_MAFW_GST_SUBTITLE_RENDERER "/system/mafw/mafw-gst-renderer"
+#define GCONF_MAFW_GST_SUBTITLE_RENDERER "/system/mafw/mafw-gst-subtitles-renderer"
 #define _HL(str) dgettext("hildon-libs",str)
 
 typedef enum
@@ -507,13 +507,48 @@ font_selector_dialog (HildonButton *button,
        /* Run the dialog */
        gtk_widget_show_all (GTK_WIDGET (dialog));
        if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
-               printf ("family = %s, style = %s, size = %d\n",
-                       hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (family_selector)),
-                       hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (style_selector)),
-                       hildon_touch_selector_get_active (HILDON_TOUCH_SELECTOR (size_selector), 0));
-               // pango_font_description_to_string
+               if (font_desc)
+                       pango_font_description_free (font_desc);
+
+               font_desc = pango_font_description_new ();
+
+               /* set font family */
+               pango_font_description_set_family (font_desc,
+                                                  hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (family_selector)));
+
+               /* set font style */
+               switch (hildon_touch_selector_get_active (HILDON_TOUCH_SELECTOR (style_selector), 0)) {
+                       case FONT_STYLE_REGULAR:
+                               pango_font_description_set_style (font_desc, PANGO_STYLE_NORMAL);
+                               pango_font_description_set_weight (font_desc, PANGO_WEIGHT_NORMAL);
+                               break;
+
+                       case FONT_STYLE_ITALIC:
+                               pango_font_description_set_style (font_desc, PANGO_STYLE_ITALIC);
+                               pango_font_description_set_weight (font_desc, PANGO_WEIGHT_NORMAL);
+                               break;
+
+                       case FONT_STYLE_BOLD:
+                               pango_font_description_set_style (font_desc, PANGO_STYLE_NORMAL);
+                               pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
+                               break;
+
+                       case FONT_STYLE_ITALIC_BOLD:
+                               pango_font_description_set_style (font_desc, PANGO_STYLE_ITALIC);
+                               pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
+                               break;
+               }
+
+               /* set font size */
+               pango_font_description_set_size (font_desc,
+                                                font_sizes[hildon_touch_selector_get_active (HILDON_TOUCH_SELECTOR (size_selector), 0)] * PANGO_SCALE);
+
+               hildon_button_set_value (HILDON_BUTTON (button), pango_font_description_to_string (font_desc));
        }
 
+       if (font_desc)
+               pango_font_description_free (font_desc);
+
        gtk_widget_destroy(GTK_WIDGET(dialog));
 }
 
@@ -585,6 +620,7 @@ create_subtitles_font_button (GConfClient *gconf_client)
        hildon_button_set_alignment (HILDON_BUTTON (button), 0.0, 0.5, 1.0, 0.0);
        hildon_button_set_title_alignment (HILDON_BUTTON(button), 0.0, 0.5);
        hildon_button_set_value_alignment (HILDON_BUTTON (button), 0.0, 0.5);
+       hildon_button_set_style (HILDON_BUTTON (button), HILDON_BUTTON_STYLE_PICKER);
 
        font = gconf_get_string (gconf_client, "subtitle_font");
        if (font) {
index 1e593de..939a6fe 100644 (file)
@@ -56,7 +56,7 @@
 
 #define GCONF_OSSO_AF "/system/osso/af"
 #define GCONF_BATTERY_COVER_OPEN "/system/osso/af/mmc-cover-open"
-#define GCONF_MAFW_GST_SUBTITLE_RENDERER "/system/mafw/mafw-gst-renderer"
+#define GCONF_MAFW_GST_SUBTITLES_RENDERER "/system/mafw/mafw-gst-subtitles-renderer"
 #define HAL_VIDEOOUT_UDI "/org/freedesktop/Hal/devices" \
         "/platform_soc_audio_logicaldev_input"
 
@@ -359,7 +359,7 @@ static void mafw_gst_renderer_init(MafwGstRenderer *self)
        }
 
        gconf_client_add_dir(renderer->gconf_client,
-                            GCONF_MAFW_GST_SUBTITLE_RENDERER,
+                            GCONF_MAFW_GST_SUBTITLES_RENDERER,
                             GCONF_CLIENT_PRELOAD_ONELEVEL,
                             &error);
        if (error) {
@@ -369,7 +369,7 @@ static void mafw_gst_renderer_init(MafwGstRenderer *self)
        }
 
        gconf_client_notify_add(renderer->gconf_client,
-                               GCONF_MAFW_GST_SUBTITLE_RENDERER "/autoload_subtitles",
+                               GCONF_MAFW_GST_SUBTITLES_RENDERER "/autoload_subtitles",
                                (GConfClientNotifyFunc) _autoload_subtitles_changed_cb,
                                renderer,
                                NULL, &error);
@@ -379,7 +379,7 @@ static void mafw_gst_renderer_init(MafwGstRenderer *self)
        }
 
        gconf_client_notify_add(renderer->gconf_client,
-                               GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_encoding",
+                               GCONF_MAFW_GST_SUBTITLES_RENDERER "/subtitle_encoding",
                                (GConfClientNotifyFunc) _subtitle_font_changed_cb,
                                renderer,
                                NULL, &error);
@@ -389,7 +389,7 @@ static void mafw_gst_renderer_init(MafwGstRenderer *self)
        }
 
        gconf_client_notify_add(renderer->gconf_client,
-                               GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_font",
+                               GCONF_MAFW_GST_SUBTITLES_RENDERER "/subtitle_font",
                                (GConfClientNotifyFunc) _subtitle_font_changed_cb,
                                renderer,
                                NULL, &error);
@@ -400,13 +400,13 @@ static void mafw_gst_renderer_init(MafwGstRenderer *self)
 
        if (self->worker->pipeline) {
                gconf_client_notify(renderer->gconf_client,
-                                   GCONF_MAFW_GST_SUBTITLE_RENDERER "/autoload_subtitles");
+                                   GCONF_MAFW_GST_SUBTITLES_RENDERER "/autoload_subtitles");
 
                gconf_client_notify(renderer->gconf_client,
-                                   GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_encoding");
+                                   GCONF_MAFW_GST_SUBTITLES_RENDERER "/subtitle_encoding");
 
                gconf_client_notify(renderer->gconf_client,
-                                   GCONF_MAFW_GST_SUBTITLE_RENDERER "/subtitle_font");
+                                   GCONF_MAFW_GST_SUBTITLES_RENDERER "/subtitle_font");
        }
 
        if (gnome_vfs_init()) {
@@ -924,26 +924,32 @@ static void _subtitle_font_changed_cb(GConfClient *client,
        key = gconf_entry_get_key(entry);
 
        /* Only key without absolute path is required */
-       key += strlen(GCONF_MAFW_GST_SUBTITLE_RENDERER) + 1;
+       key += strlen(GCONF_MAFW_GST_SUBTITLES_RENDERER) + 1;
 
        value = gconf_entry_get_value(entry);
-       if (value == NULL)
-               return;
-
-       str_value = gconf_value_get_string(value);
+       if (value)
+               str_value = gconf_value_get_string(value);
+       else
+               str_value = NULL;
 
        if (strcmp(key, "subtitle_font") == 0) {
                if (renderer->worker->subtitles.font)
                        g_free(renderer->worker->subtitles.font);
 
-               renderer->worker->subtitles.font = g_strdup(str_value);
+               if (str_value)
+                       renderer->worker->subtitles.font = g_strdup(str_value);
+               else
+                       renderer->worker->subtitles.font = NULL;
        } else if (strcmp(key, "subtitle_encoding") == 0) {
                if (renderer->worker->subtitles.encoding)
                        g_free(renderer->worker->subtitles.encoding);
 
-               renderer->worker->subtitles.encoding = g_strdup(str_value);
+               if (str_value)
+                       renderer->worker->subtitles.encoding = g_strdup(str_value);
+               else
+                       renderer->worker->subtitles.encoding = NULL;
        } else {
-               g_warning("Wrong %s key, %s", GCONF_MAFW_GST_SUBTITLE_RENDERER, key);
+               g_warning("Wrong %s key, %s", GCONF_MAFW_GST_SUBTITLES_RENDERER, key);
        }
 }