X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fsubtitlehandler.c;h=a7f06712adae94662b1a4e7d8a521276235b8b3c;hb=8f4fee8854fc711bbf089b6867c46f1b0a6ea4c9;hp=5374408068daa09bec63153765ad1517a9517875;hpb=bade7b5f6eaf40ffffa17480be77471183ef0a68;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/subtitlehandler.c b/gtk/src/subtitlehandler.c index 53744080..a7f06712 100644 --- a/gtk/src/subtitlehandler.c +++ b/gtk/src/subtitlehandler.c @@ -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); @@ -1148,13 +1124,15 @@ srt_add_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) { // Add the current subtitle settings to the list. GValue *settings; - gchar *dir, *filename; + gchar *dir, *filename, *lang; g_debug("subtitle_add_clicked_cb ()"); settings = ghb_dict_value_new(); ghb_settings_set_int(settings, "SubtitleSource", SRTSUB); - ghb_settings_set_string(settings, "SrtLanguage", "und"); + lang = ghb_settings_get_string(ud->settings, "PreferredLanguage"); + ghb_settings_set_string(settings, "SrtLanguage", lang); + g_free(lang); ghb_settings_set_string(settings, "SrtCodeset", "UTF-8"); dir = ghb_settings_get_string(ud->settings, "SrtDir");