| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/renderer_context_menu/spelling_menu_observer.h" | 5 #include "chrome/browser/renderer_context_menu/spelling_menu_observer.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/i18n/case_conversion.h" | 9 #include "base/i18n/case_conversion.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 // The spelling service can be toggled by the user only if it is not managed. | 296 // The spelling service can be toggled by the user only if it is not managed. |
| 297 if (command_id == IDC_CONTENT_CONTEXT_SPELLING_TOGGLE && | 297 if (command_id == IDC_CONTENT_CONTEXT_SPELLING_TOGGLE && |
| 298 integrate_spelling_service_.IsUserModifiable()) { | 298 integrate_spelling_service_.IsUserModifiable()) { |
| 299 // When a user enables the "Ask Google for spelling suggestions" item, we | 299 // When a user enables the "Ask Google for spelling suggestions" item, we |
| 300 // show a bubble to confirm it. On the other hand, when a user disables this | 300 // show a bubble to confirm it. On the other hand, when a user disables this |
| 301 // item, we directly update/ the profile and stop integrating the spelling | 301 // item, we directly update/ the profile and stop integrating the spelling |
| 302 // service immediately. | 302 // service immediately. |
| 303 if (!integrate_spelling_service_.GetValue()) { | 303 if (!integrate_spelling_service_.GetValue()) { |
| 304 content::RenderViewHost* rvh = proxy_->GetRenderViewHost(); | 304 content::RenderViewHost* rvh = proxy_->GetRenderViewHost(); |
| 305 gfx::Rect rect = rvh->GetView()->GetViewBounds(); | 305 gfx::Rect rect = rvh->GetView()->GetViewBounds(); |
| 306 scoped_ptr<SpellingBubbleModel> model( |
| 307 new SpellingBubbleModel(profile, proxy_->GetWebContents(), false)); |
| 306 chrome::ShowConfirmBubble( | 308 chrome::ShowConfirmBubble( |
| 307 proxy_->GetWebContents()->GetTopLevelNativeWindow(), | 309 proxy_->GetWebContents()->GetTopLevelNativeWindow(), |
| 308 rvh->GetView()->GetNativeView(), | 310 rvh->GetView()->GetNativeView(), |
| 309 gfx::Point(rect.CenterPoint().x(), rect.y()), | 311 gfx::Point(rect.CenterPoint().x(), rect.y()), |
| 310 new SpellingBubbleModel(profile, proxy_->GetWebContents(), false)); | 312 model.Pass()); |
| 311 } else { | 313 } else { |
| 312 if (profile) { | 314 if (profile) { |
| 313 profile->GetPrefs()->SetBoolean(prefs::kSpellCheckUseSpellingService, | 315 profile->GetPrefs()->SetBoolean(prefs::kSpellCheckUseSpellingService, |
| 314 false); | 316 false); |
| 315 profile->GetPrefs()->SetBoolean(prefs::kEnableAutoSpellCorrect, | 317 profile->GetPrefs()->SetBoolean(prefs::kEnableAutoSpellCorrect, |
| 316 false); | 318 false); |
| 317 } | 319 } |
| 318 } | 320 } |
| 319 } | 321 } |
| 320 // Autocorrect requires use of the spelling service and the spelling service | 322 // Autocorrect requires use of the spelling service and the spelling service |
| 321 // can be toggled by the user only if it is not managed. | 323 // can be toggled by the user only if it is not managed. |
| 322 if (command_id == IDC_CONTENT_CONTEXT_AUTOCORRECT_SPELLING_TOGGLE && | 324 if (command_id == IDC_CONTENT_CONTEXT_AUTOCORRECT_SPELLING_TOGGLE && |
| 323 integrate_spelling_service_.IsUserModifiable()) { | 325 integrate_spelling_service_.IsUserModifiable()) { |
| 324 // When the user enables autocorrect, we'll need to make sure that we can | 326 // When the user enables autocorrect, we'll need to make sure that we can |
| 325 // ask Google for suggestions since that service is required. So we show | 327 // ask Google for suggestions since that service is required. So we show |
| 326 // the bubble and just make sure to enable autocorrect as well. | 328 // the bubble and just make sure to enable autocorrect as well. |
| 327 if (!integrate_spelling_service_.GetValue()) { | 329 if (!integrate_spelling_service_.GetValue()) { |
| 328 content::RenderViewHost* rvh = proxy_->GetRenderViewHost(); | 330 content::RenderViewHost* rvh = proxy_->GetRenderViewHost(); |
| 329 gfx::Rect rect = rvh->GetView()->GetViewBounds(); | 331 gfx::Rect rect = rvh->GetView()->GetViewBounds(); |
| 332 scoped_ptr<SpellingBubbleModel> model( |
| 333 new SpellingBubbleModel(profile, proxy_->GetWebContents(), true)); |
| 330 chrome::ShowConfirmBubble( | 334 chrome::ShowConfirmBubble( |
| 331 proxy_->GetWebContents()->GetTopLevelNativeWindow(), | 335 proxy_->GetWebContents()->GetTopLevelNativeWindow(), |
| 332 rvh->GetView()->GetNativeView(), | 336 rvh->GetView()->GetNativeView(), |
| 333 gfx::Point(rect.CenterPoint().x(), rect.y()), | 337 gfx::Point(rect.CenterPoint().x(), rect.y()), |
| 334 new SpellingBubbleModel(profile, proxy_->GetWebContents(), true)); | 338 model.Pass()); |
| 335 } else { | 339 } else { |
| 336 if (profile) { | 340 if (profile) { |
| 337 bool current_value = autocorrect_spelling_.GetValue(); | 341 bool current_value = autocorrect_spelling_.GetValue(); |
| 338 profile->GetPrefs()->SetBoolean(prefs::kEnableAutoSpellCorrect, | 342 profile->GetPrefs()->SetBoolean(prefs::kEnableAutoSpellCorrect, |
| 339 !current_value); | 343 !current_value); |
| 340 } | 344 } |
| 341 } | 345 } |
| 342 } | 346 } |
| 343 } | 347 } |
| 344 | 348 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 // Append '.' characters to the end of "Checking". | 403 // Append '.' characters to the end of "Checking". |
| 400 loading_frame_ = (loading_frame_ + 1) & 3; | 404 loading_frame_ = (loading_frame_ + 1) & 3; |
| 401 base::string16 loading_message = | 405 base::string16 loading_message = |
| 402 loading_message_ + base::string16(loading_frame_,'.'); | 406 loading_message_ + base::string16(loading_frame_,'.'); |
| 403 | 407 |
| 404 // Update the menu item with the text. We disable this item to prevent users | 408 // Update the menu item with the text. We disable this item to prevent users |
| 405 // from selecting it. | 409 // from selecting it. |
| 406 proxy_->UpdateMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION, false, false, | 410 proxy_->UpdateMenuItem(IDC_CONTENT_CONTEXT_SPELLING_SUGGESTION, false, false, |
| 407 loading_message); | 411 loading_message); |
| 408 } | 412 } |
| OLD | NEW |