Chromium Code Reviews| Index: chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.cc |
| diff --git a/chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.cc b/chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.cc |
| index da3db669ef5566466f5128210e5c3ea47d062e88..d4b6142a4e263fca17d73b995c8912b8c401e0b6 100644 |
| --- a/chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.cc |
| +++ b/chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.cc |
| @@ -28,10 +28,17 @@ void AfterTranslateInfoBar::InitWidgets() { |
| TranslateInfoBarBase::InitWidgets(); |
| bool swapped_language_combos = false; |
| + bool autodetermined_source_language = |
| + GetDelegate()->original_language_index() == |
| + TranslateInfoBarDelegate::kNoIndex; |
| + |
| std::vector<string16> strings; |
| TranslateInfoBarDelegate::GetAfterTranslateStrings( |
| - &strings, &swapped_language_combos); |
| - DCHECK(strings.size() == 3U); |
| + &strings, &swapped_language_combos, autodetermined_source_language); |
| + if (autodetermined_source_language) |
| + DCHECK(strings.size() == 2U); |
| + else |
| + DCHECK(strings.size() == 3U); |
|
Peter Kasting
2013/05/23 19:59:56
Nit: Simpler and uses DCHECK_EQ():
DCHECK_EQ(au
Takashi Toyoshima
2013/05/27 06:07:51
Done.
|
| GtkWidget* hbox = gtk_hbox_new(FALSE, ui::kControlSpacing); |
| gtk_util::CenterWidgetInHBox(hbox_, hbox, false, 0); |
| @@ -40,12 +47,15 @@ void AfterTranslateInfoBar::InitWidgets() { |
| size_t target_language_index = GetDelegate()->target_language_index(); |
| bool exclude_the_other = original_language_index != target_language_index; |
| - GtkWidget* original_lang_combo = CreateLanguageCombobox( |
| - original_language_index, |
| - exclude_the_other ? target_language_index : |
| - TranslateInfoBarDelegate::kNoIndex); |
| - Signals()->Connect(original_lang_combo, "changed", |
| - G_CALLBACK(&OnOriginalLanguageModifiedThunk), this); |
| + GtkWidget* original_lang_combo = NULL; |
| + if (!autodetermined_source_language) { |
| + original_lang_combo = CreateLanguageCombobox( |
| + original_language_index, |
| + exclude_the_other ? target_language_index : |
| + TranslateInfoBarDelegate::kNoIndex); |
| + Signals()->Connect(original_lang_combo, "changed", |
| + G_CALLBACK(&OnOriginalLanguageModifiedThunk), this); |
| + } |
| GtkWidget* target_lang_combo = CreateLanguageCombobox( |
| target_language_index, |
| exclude_the_other ? original_language_index : |
| @@ -56,17 +66,20 @@ void AfterTranslateInfoBar::InitWidgets() { |
| gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[0])), |
| FALSE, FALSE, 0); |
| gtk_box_pack_start(GTK_BOX(hbox), |
|
Peter Kasting
2013/05/23 19:59:56
Nit: Strange wrapping. How about:
gtk_box_pack
Takashi Toyoshima
2013/05/27 06:07:51
Done.
|
| - swapped_language_combos ? target_lang_combo : |
| - original_lang_combo, |
| + (swapped_language_combos || |
| + autodetermined_source_language) ? target_lang_combo : |
| + original_lang_combo, |
| FALSE, FALSE, 0); |
| gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[1])), |
| FALSE, FALSE, 0); |
| - gtk_box_pack_start(GTK_BOX(hbox), |
| - swapped_language_combos ? original_lang_combo : |
| - target_lang_combo, |
| - FALSE, FALSE, 0); |
| - gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[2])), |
| - FALSE, FALSE, 0); |
| + if (!autodetermined_source_language) { |
| + gtk_box_pack_start(GTK_BOX(hbox), |
| + swapped_language_combos ? original_lang_combo : |
| + target_lang_combo, |
| + FALSE, FALSE, 0); |
| + gtk_box_pack_start(GTK_BOX(hbox), CreateLabel(UTF16ToUTF8(strings[2])), |
| + FALSE, FALSE, 0); |
| + } |
| GtkWidget* button = gtk_button_new_with_label( |
| l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_REVERT).c_str()); |