Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/translate/translate_bubble_view.h" | 5 #include "chrome/browser/ui/views/translate/translate_bubble_view.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 159 | 159 |
| 160 if (model_->GetViewState() == TranslateBubbleModel::VIEW_STATE_ERROR) | 160 if (model_->GetViewState() == TranslateBubbleModel::VIEW_STATE_ERROR) |
| 161 model_->ShowError(error_type_); | 161 model_->ShowError(error_type_); |
| 162 } | 162 } |
| 163 | 163 |
| 164 void TranslateBubbleView::ButtonPressed(views::Button* sender, | 164 void TranslateBubbleView::ButtonPressed(views::Button* sender, |
| 165 const ui::Event& event) { | 165 const ui::Event& event) { |
| 166 HandleButtonPressed(static_cast<ButtonID>(sender->id())); | 166 HandleButtonPressed(static_cast<ButtonID>(sender->id())); |
| 167 } | 167 } |
| 168 | 168 |
| 169 void TranslateBubbleView::WindowClosing() { | 169 void TranslateBubbleView::WindowClosing() { |
|
groby-ooo-7-16
2016/01/26 01:07:22
This means we would lose all metrics that are due
ftang
2016/01/26 01:30:35
The function called "TranslationDeclined()" so no
| |
| 170 // The operations for |model_| are valid only when a WebContents is alive. | |
| 171 // TODO(hajimehoshi): TranslateBubbleViewModel(Impl) should not hold a | |
| 172 // WebContents as a member variable because the WebContents might be destroyed | |
| 173 // while the TranslateBubbleViewModel(Impl) is still alive. Instead, | |
| 174 // TranslateBubbleViewModel should take a reference of a WebContents at each | |
| 175 // method. (crbug/320497) | |
| 176 if (!translate_executed_ && web_contents()) | |
| 177 model_->TranslationDeclined(denial_button_clicked_); | |
| 178 | |
| 179 // We have to reset |translate_bubble_view_| here, not in our destructor, | 170 // We have to reset |translate_bubble_view_| here, not in our destructor, |
| 180 // because we'll be destroyed asynchronously and the shown state will be | 171 // because we'll be destroyed asynchronously and the shown state will be |
| 181 // checked before then. | 172 // checked before then. |
| 182 DCHECK_EQ(translate_bubble_view_, this); | 173 DCHECK_EQ(translate_bubble_view_, this); |
| 183 translate_bubble_view_ = NULL; | 174 translate_bubble_view_ = NULL; |
| 184 } | 175 } |
| 185 | 176 |
| 186 bool TranslateBubbleView::AcceleratorPressed( | 177 bool TranslateBubbleView::AcceleratorPressed( |
| 187 const ui::Accelerator& accelerator) { | 178 const ui::Accelerator& accelerator) { |
| 188 switch (model_->GetViewState()) { | 179 switch (model_->GetViewState()) { |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 374 model_->SetNeverTranslateLanguage(true); | 365 model_->SetNeverTranslateLanguage(true); |
| 375 break; | 366 break; |
| 376 case DenialComboboxIndex::NEVER_TRANSLATE_SITE: | 367 case DenialComboboxIndex::NEVER_TRANSLATE_SITE: |
| 377 model_->SetNeverTranslateSite(true); | 368 model_->SetNeverTranslateSite(true); |
| 378 break; | 369 break; |
| 379 default: | 370 default: |
| 380 NOTREACHED(); | 371 NOTREACHED(); |
| 381 break; | 372 break; |
| 382 } | 373 } |
| 383 GetWidget()->Close(); | 374 GetWidget()->Close(); |
| 375 // The operations for |model_| are valid only when a WebContents is alive. | |
| 376 // TODO(hajimehoshi): TranslateBubbleViewModel(Impl) should not hold a | |
| 377 // WebContents as a member variable because the WebContents might be | |
| 378 // destroyed while the TranslateBubbleViewModel(Impl) is still alive. | |
| 379 // Instead, | |
| 380 // TranslateBubbleViewModel should take a reference of a WebContents at | |
| 381 // each method. (crbug/320497) | |
| 382 if (!translate_executed_ && web_contents()) | |
| 383 model_->TranslationDeclined(denial_button_clicked_); | |
| 384 break; | 384 break; |
| 385 } | 385 } |
| 386 case COMBOBOX_ID_SOURCE_LANGUAGE: { | 386 case COMBOBOX_ID_SOURCE_LANGUAGE: { |
| 387 if (model_->GetOriginalLanguageIndex() == | 387 if (model_->GetOriginalLanguageIndex() == |
| 388 source_language_combobox_->selected_index()) { | 388 source_language_combobox_->selected_index()) { |
| 389 break; | 389 break; |
| 390 } | 390 } |
| 391 model_->UpdateOriginalLanguageIndex( | 391 model_->UpdateOriginalLanguageIndex( |
| 392 source_language_combobox_->selected_index()); | 392 source_language_combobox_->selected_index()); |
| 393 UpdateAdvancedView(); | 393 UpdateAdvancedView(); |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 755 base::string16 label; | 755 base::string16 label; |
| 756 if (model_->IsPageTranslatedInCurrentLanguages()) | 756 if (model_->IsPageTranslatedInCurrentLanguages()) |
| 757 label = l10n_util::GetStringUTF16(IDS_DONE); | 757 label = l10n_util::GetStringUTF16(IDS_DONE); |
| 758 else | 758 else |
| 759 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); | 759 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); |
| 760 advanced_done_button_->SetText(label); | 760 advanced_done_button_->SetText(label); |
| 761 advanced_done_button_->SizeToPreferredSize(); | 761 advanced_done_button_->SizeToPreferredSize(); |
| 762 if (advanced_view_) | 762 if (advanced_view_) |
| 763 advanced_view_->Layout(); | 763 advanced_view_->Layout(); |
| 764 } | 764 } |
| OLD | NEW |