Index: chrome/browser/ui/views/options/languages_page_view.cc |
diff --git a/chrome/browser/ui/views/options/languages_page_view.cc b/chrome/browser/ui/views/options/languages_page_view.cc |
deleted file mode 100644 |
index f260202fe1bd568f62cdd9189cc624a37ee810fa..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/views/options/languages_page_view.cc |
+++ /dev/null |
@@ -1,588 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <windows.h> |
-#include <shlobj.h> |
-#include <vsstyle.h> |
-#include <vssym32.h> |
- |
-#include "chrome/browser/ui/views/options/languages_page_view.h" |
- |
-#include "base/command_line.h" |
-#include "base/file_util.h" |
-#include "base/string_util.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/language_combobox_model.h" |
-#include "chrome/browser/language_order_table_model.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/shell_dialogs.h" |
-#include "chrome/browser/ui/views/restart_message_box.h" |
-#include "chrome/common/chrome_switches.h" |
-#include "chrome/common/pref_names.h" |
-#include "chrome/common/spellcheck_common.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
-#include "grit/theme_resources.h" |
-#include "third_party/skia/include/core/SkBitmap.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/resource/resource_bundle.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/font.h" |
-#include "ui/gfx/native_theme_win.h" |
-#include "unicode/uloc.h" |
-#include "views/controls/button/radio_button.h" |
-#include "views/controls/tabbed_pane/tabbed_pane.h" |
-#include "views/controls/table/table_view.h" |
-#include "views/layout/grid_layout.h" |
-#include "views/layout/layout_constants.h" |
-#include "views/widget/widget.h" |
-#include "views/window/window.h" |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// AddLanguageWindowView |
-// |
-// This opens another window from where a new accept language can be selected. |
-// |
-class AddLanguageWindowView : public views::View, |
- public views::Combobox::Listener, |
- public views::DialogDelegate { |
- public: |
- AddLanguageWindowView(LanguagesPageView* language_delegate, Profile* profile); |
- views::Window* container() const { return container_; } |
- void set_container(views::Window* container) { |
- container_ = container; |
- } |
- |
- // views::DialogDelegate methods. |
- virtual bool Accept(); |
- virtual std::wstring GetWindowTitle() const; |
- |
- // views::WindowDelegate method. |
- virtual bool IsModal() const { return true; } |
- virtual views::View* GetContentsView() { return this; } |
- |
- // views::Combobox::Listener implementation: |
- virtual void ItemChanged(views::Combobox* combobox, |
- int prev_index, |
- int new_index); |
- |
- // views::View overrides. |
- virtual void Layout(); |
- virtual gfx::Size GetPreferredSize(); |
- |
- protected: |
- virtual void ViewHierarchyChanged(bool is_add, views::View* parent, |
- views::View* child); |
- |
- private: |
- void Init(); |
- |
- // The Options dialog window. |
- views::Window* container_; |
- |
- // Used for Call back to LanguagePageView that language has been selected. |
- LanguagesPageView* language_delegate_; |
- std::string accept_language_selected_; |
- |
- // Combobox and its corresponding model. |
- scoped_ptr<LanguageComboboxModel> accept_language_combobox_model_; |
- views::Combobox* accept_language_combobox_; |
- |
- // The Profile associated with this window. |
- Profile* profile_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AddLanguageWindowView); |
-}; |
- |
-static const int kDialogPadding = 7; |
-static int kDefaultWindowWidthChars = 60; |
-static int kDefaultWindowHeightLines = 3; |
- |
-AddLanguageWindowView::AddLanguageWindowView( |
- LanguagesPageView* language_delegate, |
- Profile* profile) |
- : profile_(profile->GetOriginalProfile()), |
- language_delegate_(language_delegate), |
- accept_language_combobox_(NULL) { |
- Init(); |
- |
- // Initialize accept_language_selected_ to the first index in drop down. |
- accept_language_selected_ = accept_language_combobox_model_-> |
- GetLocaleFromIndex(0); |
-} |
- |
-std::wstring AddLanguageWindowView::GetWindowTitle() const { |
- return UTF16ToWide( |
- l10n_util::GetStringUTF16(IDS_FONT_LANGUAGE_SETTING_LANGUAGES_TAB_TITLE)); |
-} |
- |
-bool AddLanguageWindowView::Accept() { |
- if (language_delegate_) { |
- language_delegate_->OnAddLanguage(accept_language_selected_); |
- } |
- return true; |
-} |
- |
-void AddLanguageWindowView::ItemChanged(views::Combobox* combobox, |
- int prev_index, |
- int new_index) { |
- accept_language_selected_ = accept_language_combobox_model_-> |
- GetLocaleFromIndex(new_index); |
-} |
- |
-void AddLanguageWindowView::Layout() { |
- gfx::Size sz = accept_language_combobox_->GetPreferredSize(); |
- accept_language_combobox_->SetBounds(kDialogPadding, kDialogPadding, |
- width() - 2*kDialogPadding, |
- sz.height()); |
-} |
- |
-gfx::Size AddLanguageWindowView::GetPreferredSize() { |
- ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
- const gfx::Font& font = rb.GetFont(ResourceBundle::BaseFont); |
- return gfx::Size(font.GetAverageCharacterWidth() * kDefaultWindowWidthChars, |
- font.GetHeight() * kDefaultWindowHeightLines); |
-} |
- |
-void AddLanguageWindowView::ViewHierarchyChanged(bool is_add, |
- views::View* parent, |
- views::View* child) { |
- // Can't init before we're inserted into a Widget, because we require |
- // a HWND to parent native child controls to. |
- if (is_add && child == this) |
- Init(); |
-} |
- |
-void AddLanguageWindowView::Init() { |
- // Determine Locale Codes. |
- const std::string app_locale = g_browser_process->GetApplicationLocale(); |
- std::vector<std::string> locale_codes; |
- l10n_util::GetAcceptLanguagesForLocale(app_locale, &locale_codes); |
- |
- accept_language_combobox_model_.reset(new LanguageComboboxModel( |
- profile_, locale_codes)); |
- accept_language_combobox_ = new views::Combobox( |
- accept_language_combobox_model_.get()); |
- accept_language_combobox_->SetSelectedItem(0); |
- accept_language_combobox_->set_listener(this); |
- AddChildView(accept_language_combobox_); |
-} |
- |
-LanguagesPageView::LanguagesPageView(Profile* profile) |
- : languages_instructions_(NULL), |
- languages_contents_(NULL), |
- language_order_table_(NULL), |
- add_button_(NULL), |
- remove_button_(NULL), |
- move_up_button_(NULL), |
- move_down_button_(NULL), |
- button_stack_(NULL), |
- language_info_label_(NULL), |
- ui_language_label_(NULL), |
- change_ui_language_combobox_(NULL), |
- change_dictionary_language_combobox_(NULL), |
- enable_spellchecking_checkbox_(NULL), |
- enable_autospellcorrect_checkbox_(NULL), |
- dictionary_language_label_(NULL), |
- OptionsPageView(profile), |
- language_table_edited_(false), |
- language_warning_shown_(false), |
- enable_spellcheck_checkbox_clicked_(false), |
- enable_autospellcorrect_checkbox_clicked_(false), |
- spellcheck_language_index_selected_(-1), |
- ui_language_index_selected_(-1), |
- starting_ui_language_index_(-1) { |
- accept_languages_.Init(prefs::kAcceptLanguages, |
- profile->GetPrefs(), NULL); |
- enable_spellcheck_.Init(prefs::kEnableSpellCheck, |
- profile->GetPrefs(), NULL); |
- enable_autospellcorrect_.Init(prefs::kEnableAutoSpellCorrect, |
- profile->GetPrefs(), NULL); |
-} |
- |
-LanguagesPageView::~LanguagesPageView() { |
- if (language_order_table_) |
- language_order_table_->SetModel(NULL); |
-} |
- |
-void LanguagesPageView::ButtonPressed( |
- views::Button* sender, const views::Event& event) { |
- if (sender == move_up_button_) { |
- OnMoveUpLanguage(); |
- language_table_edited_ = true; |
- } else if (sender == move_down_button_) { |
- OnMoveDownLanguage(); |
- language_table_edited_ = true; |
- } else if (sender == remove_button_) { |
- OnRemoveLanguage(); |
- language_table_edited_ = true; |
- } else if (sender == add_button_) { |
- views::Window::CreateChromeWindow( |
- GetWindow()->GetNativeWindow(), |
- gfx::Rect(), |
- new AddLanguageWindowView(this, profile()))->Show(); |
- language_table_edited_ = true; |
- } else if (sender == enable_spellchecking_checkbox_) { |
- enable_spellcheck_checkbox_clicked_ = true; |
- } else if (sender == enable_autospellcorrect_checkbox_) { |
- enable_autospellcorrect_checkbox_clicked_ = true; |
- } |
-} |
- |
-void LanguagesPageView::OnAddLanguage(const std::string& new_language) { |
- if (language_order_table_model_->Add(new_language)) { |
- language_order_table_->Select(language_order_table_model_->RowCount() - 1); |
- OnSelectionChanged(); |
- } |
-} |
- |
-void LanguagesPageView::InitControlLayout() { |
- // Define the buttons. |
- add_button_ = new views::NativeButton( |
- this, |
- UTF16ToWide(l10n_util::GetStringUTF16( |
- IDS_FONT_LANGUAGE_SETTING_LANGUAGES_SELECTOR_ADD_BUTTON_LABEL))); |
- remove_button_ = new views::NativeButton( |
- this, |
- UTF16ToWide(l10n_util::GetStringUTF16( |
- IDS_FONT_LANGUAGE_SETTING_LANGUAGES_SELECTOR_REMOVE_BUTTON_LABEL))); |
- remove_button_->SetEnabled(false); |
- move_up_button_ = new views::NativeButton( |
- this, |
- UTF16ToWide(l10n_util::GetStringUTF16( |
- IDS_FONT_LANGUAGE_SETTING_LANGUAGES_SELECTOR_MOVEUP_BUTTON_LABEL))); |
- move_up_button_->SetEnabled(false); |
- move_down_button_ = new views::NativeButton( |
- this, |
- UTF16ToWide(l10n_util::GetStringUTF16( |
- IDS_FONT_LANGUAGE_SETTING_LANGUAGES_SELECTOR_MOVEDOWN_BUTTON_LABEL))); |
- move_down_button_->SetEnabled(false); |
- |
- languages_contents_ = new views::View; |
- using views::GridLayout; |
- using views::ColumnSet; |
- |
- GridLayout* layout = GridLayout::CreatePanel(this); |
- SetLayoutManager(layout); |
- |
- const int single_column_view_set_id = 0; |
- ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id); |
- |
- // Add the instructions label. |
- column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 1, |
- GridLayout::USE_PREF, 0, 0); |
- languages_instructions_ = new views::Label( |
- UTF16ToWide(l10n_util::GetStringUTF16( |
- IDS_FONT_LANGUAGE_SETTING_LANGUAGES_INSTRUCTIONS))); |
- languages_instructions_->SetMultiLine(true); |
- languages_instructions_->SetHorizontalAlignment( |
- views::Label::ALIGN_LEFT); |
- layout->StartRow(0, single_column_view_set_id); |
- layout->AddView(languages_instructions_); |
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- |
- // Add two columns - for table, and for button stack. |
- std::vector<TableColumn> columns; |
- columns.push_back(TableColumn()); |
- language_order_table_model_.reset(new LanguageOrderTableModel); |
- language_order_table_ = new views::TableView( |
- language_order_table_model_.get(), columns, |
- views::TEXT_ONLY, false, true, true); |
- language_order_table_->SetObserver(this); |
- |
- const int double_column_view_set_id = 1; |
- column_set = layout->AddColumnSet(double_column_view_set_id); |
- column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1, |
- GridLayout::USE_PREF, 0, 0); |
- column_set->AddPaddingColumn(0, views::kRelatedControlHorizontalSpacing); |
- column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 0, |
- GridLayout::USE_PREF, 0, 0); |
- |
- layout->StartRow(0, double_column_view_set_id); |
- |
- // Add the table to the the first column. |
- layout->AddView(language_order_table_); |
- |
- // Now add the four buttons to the second column. |
- button_stack_ = new views::View; |
- GridLayout* button_stack_layout = new GridLayout(button_stack_); |
- button_stack_->SetLayoutManager(button_stack_layout); |
- |
- column_set = button_stack_layout->AddColumnSet(single_column_view_set_id); |
- column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 1, |
- GridLayout::USE_PREF, 0, 0); |
- button_stack_layout->StartRow(0, single_column_view_set_id); |
- button_stack_layout->AddView(add_button_, 1, 1, GridLayout::FILL, |
- GridLayout::CENTER); |
- button_stack_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- button_stack_layout->StartRow(0, single_column_view_set_id); |
- button_stack_layout->AddView(remove_button_, 1, 1, GridLayout::FILL, |
- GridLayout::CENTER); |
- button_stack_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- button_stack_layout->StartRow(0, single_column_view_set_id); |
- button_stack_layout->AddView(move_up_button_, 1, 1, GridLayout::FILL, |
- GridLayout::CENTER); |
- button_stack_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- button_stack_layout->StartRow(0, single_column_view_set_id); |
- button_stack_layout->AddView(move_down_button_, 1, 1, GridLayout::FILL, |
- GridLayout::CENTER); |
- |
- layout->AddView(button_stack_); |
- |
- layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); |
- |
- language_info_label_ = new views::Label( |
- UTF16ToWide(l10n_util::GetStringUTF16(IDS_OPTIONS_CHROME_LANGUAGE_INFO))); |
- language_info_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
- ui_language_label_ = new views::Label( |
- UTF16ToWide(l10n_util::GetStringUTF16(IDS_OPTIONS_CHROME_UI_LANGUAGE))); |
- ui_language_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
- ui_language_model_.reset(new LanguageComboboxModel); |
- change_ui_language_combobox_ = |
- new views::Combobox(ui_language_model_.get()); |
- change_ui_language_combobox_->set_listener(this); |
- dictionary_language_label_ = new views::Label(UTF16ToWide( |
- l10n_util::GetStringUTF16(IDS_OPTIONS_CHROME_DICTIONARY_LANGUAGE))); |
- dictionary_language_label_->SetHorizontalAlignment( |
- views::Label::ALIGN_LEFT); |
- enable_spellchecking_checkbox_ = new views::Checkbox( |
- UTF16ToWide(l10n_util::GetStringUTF16(IDS_OPTIONS_ENABLE_SPELLCHECK))); |
- const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
- if (command_line.HasSwitch(switches::kExperimentalSpellcheckerFeatures)) { |
- enable_autospellcorrect_checkbox_ = new views::Checkbox(UTF16ToWide( |
- l10n_util::GetStringUTF16(IDS_OPTIONS_ENABLE_AUTO_SPELL_CORRECTION))); |
- enable_autospellcorrect_checkbox_->set_listener(this); |
- } |
- enable_spellchecking_checkbox_->set_listener(this); |
- enable_spellchecking_checkbox_->SetMultiLine(true); |
- |
- // Determine Locale Codes. |
- std::vector<std::string> spell_check_languages; |
- SpellCheckCommon::SpellCheckLanguages(&spell_check_languages); |
- dictionary_language_model_.reset(new LanguageComboboxModel(profile(), |
- spell_check_languages)); |
- change_dictionary_language_combobox_ = |
- new views::Combobox(dictionary_language_model_.get()); |
- change_dictionary_language_combobox_->set_listener(this); |
- |
- // SpellCheck language settings. |
- layout->StartRow(0, single_column_view_set_id); |
- layout->AddView(enable_spellchecking_checkbox_); |
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- if (command_line.HasSwitch(switches::kExperimentalSpellcheckerFeatures)) { |
- layout->StartRow(0, single_column_view_set_id); |
- layout->AddView(enable_autospellcorrect_checkbox_); |
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- } |
- const int double_column_view_set_2_id = 2; |
- column_set = layout->AddColumnSet(double_column_view_set_2_id); |
- column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 0, |
- GridLayout::USE_PREF, 0, 0); |
- column_set->AddPaddingColumn(0, views::kRelatedControlHorizontalSpacing); |
- column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1, |
- GridLayout::USE_PREF, 0, 0); |
- |
- layout->StartRow(0, double_column_view_set_2_id); |
- layout->AddView(dictionary_language_label_); |
- layout->AddView(change_dictionary_language_combobox_); |
- |
- // UI language settings. |
- layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); |
- layout->StartRow(0, single_column_view_set_id); |
- layout->AddView(language_info_label_); |
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- |
- layout->StartRow(0, double_column_view_set_2_id); |
- layout->AddView(ui_language_label_); |
- layout->AddView(change_ui_language_combobox_); |
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
- |
- // Init member prefs so we can update the controls if prefs change. |
- app_locale_.Init(prefs::kApplicationLocale, |
- g_browser_process->local_state(), this); |
- dictionary_language_.Init(prefs::kSpellCheckDictionary, |
- profile()->GetPrefs(), this); |
-} |
- |
-void LanguagesPageView::NotifyPrefChanged(const std::string* pref_name) { |
- if (!pref_name || *pref_name == prefs::kAcceptLanguages) { |
- language_order_table_model_->SetAcceptLanguagesString( |
- accept_languages_.GetValue()); |
- } |
- if (!pref_name || *pref_name == prefs::kApplicationLocale) { |
- int index = ui_language_model_->GetSelectedLanguageIndex( |
- prefs::kApplicationLocale); |
- if (-1 == index) { |
- // The pref value for locale isn't valid. Use the current app locale |
- // (which is what we're currently using). |
- index = ui_language_model_->GetIndexFromLocale( |
- g_browser_process->GetApplicationLocale()); |
- } |
- DCHECK(-1 != index); |
- change_ui_language_combobox_->SetSelectedItem(index); |
- starting_ui_language_index_ = index; |
- } |
- if (!pref_name || *pref_name == prefs::kSpellCheckDictionary) { |
- int index = dictionary_language_model_->GetSelectedLanguageIndex( |
- prefs::kSpellCheckDictionary); |
- |
- // If the index for the current language cannot be found, it is due to |
- // the fact that the pref-member value for the last dictionary language |
- // set by the user still uses the old format; i.e. language-region, even |
- // when region is not necessary. For example, if the user sets the |
- // dictionary language to be French, the pref-member value in the user |
- // profile is "fr-FR", whereas we now use only "fr". To resolve this issue, |
- // if "fr-FR" is read from the pref, the language code ("fr" here) is |
- // extracted, and re-written in the pref, so that the pref-member value for |
- // dictionary language in the user profile now correctly stores "fr" |
- // instead of "fr-FR". |
- if (index < 0) { |
- const std::string& lang_region = dictionary_language_.GetValue(); |
- dictionary_language_.SetValue( |
- SpellCheckCommon::GetLanguageFromLanguageRegion(lang_region)); |
- index = dictionary_language_model_->GetSelectedLanguageIndex( |
- prefs::kSpellCheckDictionary); |
- } |
- |
- change_dictionary_language_combobox_->SetSelectedItem(index); |
- spellcheck_language_index_selected_ = -1; |
- } |
- if (!pref_name || *pref_name == prefs::kEnableSpellCheck) { |
- enable_spellchecking_checkbox_->SetChecked( |
- enable_spellcheck_.GetValue()); |
- } |
- if (!pref_name || *pref_name == prefs::kEnableAutoSpellCorrect) { |
- const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
- if (command_line.HasSwitch(switches::kExperimentalSpellcheckerFeatures)) { |
- enable_autospellcorrect_checkbox_->SetChecked( |
- enable_autospellcorrect_.GetValue()); |
- } |
- } |
-} |
- |
-void LanguagesPageView::ItemChanged(views::Combobox* sender, |
- int prev_index, |
- int new_index) { |
- if (prev_index == new_index) |
- return; |
- |
- if (sender == change_ui_language_combobox_) { |
- if (new_index == starting_ui_language_index_) |
- ui_language_index_selected_ = -1; |
- else |
- ui_language_index_selected_ = new_index; |
- |
- if (!language_warning_shown_) { |
- RestartMessageBox::ShowMessageBox(GetWindow()->GetNativeWindow()); |
- language_warning_shown_ = true; |
- } |
- } else if (sender == change_dictionary_language_combobox_) { |
- // Set the spellcheck language selected. |
- spellcheck_language_index_selected_ = new_index; |
- |
- // Remove the previously added spell check language to the accept list. |
- if (!spellcheck_language_added_.empty()) { |
- int old_index = language_order_table_model_->GetIndex( |
- spellcheck_language_added_); |
- if (old_index > -1) |
- language_order_table_model_->Remove(old_index); |
- } |
- |
- // Add this new spell check language only if it is not already in the |
- // accept language list. |
- std::string language = |
- dictionary_language_model_->GetLocaleFromIndex(new_index); |
- int index = language_order_table_model_->GetIndex(language); |
- if (index == -1) { |
- // Add the new language. |
- OnAddLanguage(language); |
- language_table_edited_ = true; |
- spellcheck_language_added_ = language; |
- } else { |
- spellcheck_language_added_ = ""; |
- } |
- } |
-} |
- |
-void LanguagesPageView::OnSelectionChanged() { |
- move_up_button_->SetEnabled(language_order_table_->FirstSelectedRow() > 0 && |
- language_order_table_->SelectedRowCount() == 1); |
- move_down_button_->SetEnabled(language_order_table_->FirstSelectedRow() < |
- language_order_table_->RowCount() - 1 && |
- language_order_table_->SelectedRowCount() == |
- 1); |
- remove_button_->SetEnabled(language_order_table_->SelectedRowCount() > 0); |
-} |
- |
-void LanguagesPageView::OnRemoveLanguage() { |
- int item_selected = 0; |
- for (views::TableView::iterator i = |
- language_order_table_->SelectionBegin(); |
- i != language_order_table_->SelectionEnd(); ++i) { |
- language_order_table_model_->Remove(*i); |
- item_selected = *i; |
- } |
- |
- move_up_button_->SetEnabled(false); |
- move_down_button_->SetEnabled(false); |
- remove_button_->SetEnabled(false); |
- int items_left = language_order_table_model_->RowCount(); |
- if (items_left <= 0) |
- return; |
- if (item_selected > items_left - 1) |
- item_selected = items_left - 1; |
- language_order_table_->Select(item_selected); |
- OnSelectionChanged(); |
-} |
- |
-void LanguagesPageView::OnMoveDownLanguage() { |
- int item_selected = language_order_table_->FirstSelectedRow(); |
- language_order_table_model_->MoveDown(item_selected); |
- language_order_table_->Select(item_selected + 1); |
- OnSelectionChanged(); |
-} |
- |
-void LanguagesPageView::OnMoveUpLanguage() { |
- int item_selected = language_order_table_->FirstSelectedRow(); |
- language_order_table_model_->MoveUp(item_selected); |
- language_order_table_->Select(item_selected - 1); |
- |
- OnSelectionChanged(); |
-} |
- |
-void LanguagesPageView::SaveChanges() { |
- if (language_order_table_model_.get() && language_table_edited_) { |
- accept_languages_.SetValue( |
- language_order_table_model_->GetLanguageList()); |
- } |
- |
- if (ui_language_index_selected_ != -1) { |
- UserMetricsRecordAction(UserMetricsAction("Options_AppLanguage"), |
- g_browser_process->local_state()); |
- app_locale_.SetValue(ui_language_model_-> |
- GetLocaleFromIndex(ui_language_index_selected_)); |
- |
- // Remove pref values for spellcheck dictionaries forcefully. |
- PrefService* prefs = profile()->GetPrefs(); |
- if (prefs) |
- prefs->ClearPref(prefs::kSpellCheckDictionary); |
- } |
- |
- if (spellcheck_language_index_selected_ != -1) { |
- UserMetricsRecordAction(UserMetricsAction("Options_DictionaryLanguage"), |
- profile()->GetPrefs()); |
- dictionary_language_.SetValue(dictionary_language_model_-> |
- GetLocaleFromIndex(spellcheck_language_index_selected_)); |
- } |
- |
- if (enable_spellcheck_checkbox_clicked_) |
- enable_spellcheck_.SetValue(enable_spellchecking_checkbox_->checked()); |
- |
- if (enable_autospellcorrect_checkbox_clicked_) { |
- enable_autospellcorrect_.SetValue( |
- enable_autospellcorrect_checkbox_->checked()); |
- } |
-} |