OSDN Git Service

LinGui: fix stupid thinko in yesterdays audio panel changes
[handbrake-jp/handbrake-jp-git.git] / gtk / src / subtitlehandler.c
index 5374408..fddb6a9 100644 (file)
@@ -41,15 +41,6 @@ free_subtitle_key(gpointer data)
 static gboolean
 mustBurn(signal_user_data_t *ud, GValue *settings)
 {
-       if (ghb_settings_combo_int(ud->settings, "FileFormat") == HB_MUX_MP4)
-       {
-               // MP4 can only handle burned vobsubs.  make sure there isn't
-               // already something burned in the list
-               if (ghb_settings_get_int(settings, "SubtitleSource") == VOBSUB)
-               {
-                       return TRUE;
-               }
-       }
        return FALSE;
 }
 
@@ -613,7 +604,6 @@ subtitle_default_toggled_cb(
        GValue *subtitle_list;
        gint count;
        GValue *settings;
-       gboolean burned;
 
        g_debug("default toggled");
        tp = gtk_tree_path_new_from_string (path);
@@ -652,30 +642,6 @@ subtitle_default_toggled_cb(
        ghb_live_reset(ud);
 }
 
-static const char*
-subtitle_source_name(gint source)
-{
-       const gchar * name;
-
-       switch (source)
-       {
-               case VOBSUB:
-                       name = "Bitmap";
-                       break;
-               case CC708SUB:
-               case CC608SUB:
-                       name = "Text";
-                       break;
-               case SRTSUB:
-                       name = "SRT";
-                       break;
-               default:
-                       name = "Unknown";
-                       break;
-       }
-       return name;
-}
-
 static void
 subtitle_list_refresh_selected(signal_user_data_t *ud)
 {
@@ -688,6 +654,7 @@ subtitle_list_refresh_selected(signal_user_data_t *ud)
        gint row;
        GValue *settings = NULL;
        const GValue *subtitle_list;
+       gboolean allow_burn_force = FALSE;
        
        g_debug("subtitle_list_refresh_selected ()");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "subtitle_list"));
@@ -730,8 +697,6 @@ subtitle_list_refresh_selected(signal_user_data_t *ud)
 
                        lang = ghb_settings_combo_option(settings, "SrtLanguage");
                        code = ghb_settings_get_string(settings, "SrtCodeset");
-                       track = g_strdup_printf("%s (%s)", lang, code);
-                       g_free(code);
 
                        s_track = ghb_settings_get_string(settings, "SrtFile");
                        if (g_file_test(s_track, G_FILE_TEST_IS_REGULAR))
@@ -739,13 +704,16 @@ subtitle_list_refresh_selected(signal_user_data_t *ud)
                                gchar *basename;
 
                                basename = g_path_get_basename(s_track);
+                               track = g_strdup_printf("%s (%s)(SRT)(%s)", lang, code, basename);
                                source = g_strdup_printf("SRT (%s)", basename);
                                g_free(basename);
                        }
                        else
                        {
+                               track = g_strdup_printf("%s (%s)(SRT)", lang, code);
                                source = g_strdup_printf("SRT (none)");
                        }
+                       g_free(code);
                        offset = ghb_settings_get_int(settings, "SrtOffset");
 
                        forced = FALSE;
@@ -755,24 +723,29 @@ subtitle_list_refresh_selected(signal_user_data_t *ud)
                {
                        track = g_strdup(
                                ghb_settings_combo_option(settings, "SubtitleTrack"));
-                       source = g_strdup(subtitle_source_name(i_source));
+                       source = g_strdup(ghb_subtitle_source_name(i_source));
                        s_track = ghb_settings_get_string(settings, "SubtitleTrack");
 
                        forced = ghb_settings_get_boolean(settings, "SubtitleForced");
                        burned = ghb_settings_get_boolean(settings, "SubtitleBurned");
                }
 
+               if (i_source == VOBSUB)
+                       allow_burn_force = TRUE;
+
+
                gtk_list_store_set(GTK_LIST_STORE(store), &iter, 
                        // These are displayed in list
                        0, track,
                        1, forced,
                        2, burned,
                        3, def,
-                       4, source,
-                       5, offset,
+                       4, offset,
                        // These are used to set combo box values when a list item is selected
-                       6, s_track,
-                       7, i_source,
+                       5, s_track,
+                       6, i_source,
+                       7, allow_burn_force,
+                       8, allow_burn_force,
                        -1);
                g_free(track);
                g_free(source);
@@ -919,6 +892,7 @@ add_to_subtitle_list(
        gboolean forced, burned, def;
        gchar *s_track;
        gint i_source;
+       gboolean allow_burn_force = FALSE;
        
        g_debug("add_to_subtitle_list ()");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "subtitle_list"));
@@ -932,7 +906,10 @@ add_to_subtitle_list(
 
        s_track = ghb_settings_get_string(settings, "SubtitleTrack");
        i_source = ghb_settings_get_int(settings, "SubtitleSource");
-       source = subtitle_source_name(i_source);
+       source = ghb_subtitle_source_name(i_source);
+
+       if (i_source == VOBSUB)
+               allow_burn_force = TRUE;
 
        gtk_list_store_append(store, &iter);
        gtk_list_store_set(store, &iter, 
@@ -941,13 +918,12 @@ add_to_subtitle_list(
                1, forced,
                2, burned,
                3, def,
-               4, source,
                // These are used to set combo box values when a list item is selected
-               6, s_track,
-               7, i_source,
-               8, TRUE,
-               9, TRUE,
-               10, FALSE,
+               5, s_track,
+               6, i_source,
+               7, allow_burn_force,
+               8, allow_burn_force,
+               9, FALSE,
                -1);
        gtk_tree_selection_select_iter(selection, &iter);
        g_free(s_track);
@@ -974,7 +950,6 @@ add_to_srt_list(
 
        lang = ghb_settings_combo_option(settings, "SrtLanguage");
        code = ghb_settings_get_string(settings, "SrtCodeset");
-       track = g_strdup_printf("%s (%s)", lang, code);
        forced = FALSE;
        burned = FALSE;
        def = ghb_settings_get_boolean(settings, "SubtitleDefaultTrack");
@@ -985,11 +960,13 @@ add_to_srt_list(
                gchar *basename;
 
                basename = g_path_get_basename(filename);
+               track = g_strdup_printf("%s (%s)(SRT)(%s)", lang, code, basename);
                source = g_strdup_printf("SRT (%s)", basename);
                g_free(basename);
        }
        else
        {
+               track = g_strdup_printf("%s (%s)(SRT)", lang, code);
                source = g_strdup_printf("SRT (none)");
        }
        i_source = SRTSUB;
@@ -1002,14 +979,13 @@ add_to_srt_list(
                1, forced,
                2, burned,
                3, def,
-               4, source,
-               5, offset,
+               4, offset,
                // These are used to set combo box values when a list item is selected
-               6, filename,
-               7, i_source,
+               5, filename,
+               6, i_source,
+               7, FALSE,
                8, FALSE,
-               9, FALSE,
-               10, TRUE,
+               9, TRUE,
                -1);
        gtk_tree_selection_select_iter(selection, &iter);
        g_free(code);