Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(442)

Unified Diff: chrome/browser/chromeos/options/language_config_model.cc

Issue 6336005: Remove unused language options code, which has been superseded by DOMUI. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/options/language_config_model.cc
diff --git a/chrome/browser/chromeos/options/language_config_model.cc b/chrome/browser/chromeos/options/language_config_model.cc
deleted file mode 100644
index cd400e5a281bc730c1d7bdd97f7232a27c6332a5..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/options/language_config_model.cc
+++ /dev/null
@@ -1,277 +0,0 @@
-// Copyright (c) 2010 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 "chrome/browser/chromeos/options/language_config_model.h"
-
-#include <algorithm>
-#include <functional>
-#include <utility>
-
-#include "app/l10n_util.h"
-#include "base/string_split.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/chromeos/cros/cros_library.h"
-#include "chrome/browser/chromeos/cros/input_method_library.h"
-#include "chrome/browser/chromeos/input_method/input_method_util.h"
-#include "chrome/browser/chromeos/preferences.h"
-#include "chrome/common/notification_type.h"
-#include "chrome/common/pref_names.h"
-#include "grit/generated_resources.h"
-
-namespace chromeos {
-
-AddLanguageComboboxModel::AddLanguageComboboxModel(
- Profile* profile,
- const std::vector<std::string>& locale_codes)
- : LanguageComboboxModel(profile, locale_codes) {
-}
-
-int AddLanguageComboboxModel::GetItemCount() {
- // +1 for "Add language".
- return get_languages_count() + 1 - ignore_set_.size();
-}
-
-string16 AddLanguageComboboxModel::GetItemAt(int index) {
- // Show "Add language" as the first item.
- if (index == 0) {
- return l10n_util::GetStringUTF16(
- IDS_OPTIONS_SETTINGS_LANGUAGES_ADD_LANGUAGE_COMBOBOX);
- }
- return GetLanguageNameAt(GetLanguageIndex(index));
-}
-
-int AddLanguageComboboxModel::GetLanguageIndex(int index) const {
- // The adjusted_index is counted while ignoring languages in ignore_set_.
- int adjusted_index = 0;
- for (int i = 0; i < get_languages_count(); ++i) {
- if (ignore_set_.count(GetLocaleFromIndex(i)) > 0) {
- continue;
- }
- // -1 for "Add language".
- if (adjusted_index == index - 1) {
- return i;
- }
- ++adjusted_index;
- }
- return 0;
-}
-
-void AddLanguageComboboxModel::SetIgnored(
- const std::string& language_code, bool ignored) {
- if (ignored) {
- // Add to the ignore_set_ if the language code is known (i.e. reject
- // unknown language codes just in case).
- if (GetIndexFromLocale(language_code) != -1) {
- ignore_set_.insert(language_code);
- } else {
- LOG(ERROR) << "Unknown language code: " << language_code;
- }
- } else {
- ignore_set_.erase(language_code);
- }
-}
-
-LanguageConfigModel::LanguageConfigModel(PrefService* pref_service)
- : pref_service_(pref_service) {
- // Initialize the maps and vectors.
- InitInputMethodIdVectors();
-
- preferred_languages_pref_.Init(
- prefs::kLanguagePreferredLanguages, pref_service_, this);
- preload_engines_pref_.Init(
- prefs::kLanguagePreloadEngines, pref_service_, this);
- // TODO(yusukes): It might be safer to call GetActiveLanguages() cros API
- // here and compare the result and preload_engines_pref_.GetValue().
- // If there's a discrepancy between IBus setting and Chrome prefs, we
- // can resolve it by calling preload_engines_pref_SetValue() here.
-
- // Initialize the language codes currently activated.
- NotifyPrefChanged();
-}
-
-size_t LanguageConfigModel::CountNumActiveInputMethods(
- const std::string& language_code) {
- int num_selected_active_input_methods = 0;
- std::vector<std::string> input_method_ids;
- input_method::GetInputMethodIdsFromLanguageCode(
- language_code, input_method::kAllInputMethods, &input_method_ids);
- for (size_t i = 0; i < input_method_ids.size(); ++i) {
- if (InputMethodIsActivated(input_method_ids[i])) {
- ++num_selected_active_input_methods;
- }
- }
- return num_selected_active_input_methods;
-}
-
-bool LanguageConfigModel::HasLanguageCode(
- const std::string& language_code) const {
- return std::find(preferred_language_codes_.begin(),
- preferred_language_codes_.end(),
- language_code) != preferred_language_codes_.end();
-}
-
-size_t LanguageConfigModel::AddLanguageCode(
- const std::string& language_code) {
- preferred_language_codes_.push_back(language_code);
- // Sort the language codes by names. This is not efficient, but
- // acceptable as the language list is about 40 item long at most. In
- // theory, we could find the position to insert rather than sorting, but
- // it would be complex as we need to use unicode string comparator.
- input_method::SortLanguageCodesByNames(&preferred_language_codes_);
- // Find the language code just added in the sorted language codes.
- const int added_at =
- std::distance(preferred_language_codes_.begin(),
- std::find(preferred_language_codes_.begin(),
- preferred_language_codes_.end(),
- language_code));
- preferred_languages_pref_.SetValue(
- JoinString(preferred_language_codes_, ','));
- return added_at;
-}
-
-void LanguageConfigModel::RemoveLanguageAt(size_t row) {
- preferred_language_codes_.erase(preferred_language_codes_.begin() + row);
- preferred_languages_pref_.SetValue(
- JoinString(preferred_language_codes_, ','));
-}
-
-void LanguageConfigModel::UpdateInputMethodPreferences(
- const std::vector<std::string>& in_new_input_method_ids) {
- std::vector<std::string> new_input_method_ids = in_new_input_method_ids;
- // Note: Since |new_input_method_ids| is alphabetically sorted and the sort
- // function below uses stable sort, the relateve order of input methods that
- // belong to the same language (e.g. "mozc" and "xkb:jp::jpn") is maintained.
- input_method::SortInputMethodIdsByNames(&new_input_method_ids);
- preload_engines_pref_.SetValue(JoinString(new_input_method_ids, ','));
-}
-
-void LanguageConfigModel::DeactivateInputMethodsFor(
- const std::string& language_code) {
- for (size_t i = 0; i < num_supported_input_method_ids(); ++i) {
- if (input_method::GetLanguageCodeFromInputMethodId(
- supported_input_method_id_at(i)) ==
- language_code) {
- // What happens if we disable the input method currently active?
- // IBus should take care of it, so we don't do anything special
- // here. See crosbug.com/2443.
- SetInputMethodActivated(supported_input_method_id_at(i), false);
- // Do not break; here in order to disable all engines that belong to
- // |language_code|.
- }
- }
-}
-
-void LanguageConfigModel::SetInputMethodActivated(
- const std::string& input_method_id, bool activated) {
- DCHECK(!input_method_id.empty());
- std::vector<std::string> input_method_ids;
- GetActiveInputMethodIds(&input_method_ids);
-
- std::set<std::string> input_method_id_set(input_method_ids.begin(),
- input_method_ids.end());
- if (activated) {
- // Add |id| if it's not already added.
- input_method_id_set.insert(input_method_id);
- } else {
- input_method_id_set.erase(input_method_id);
- }
-
- // Update Chrome's preference.
- std::vector<std::string> new_input_method_ids(input_method_id_set.begin(),
- input_method_id_set.end());
- UpdateInputMethodPreferences(new_input_method_ids);
-}
-
-bool LanguageConfigModel::InputMethodIsActivated(
- const std::string& input_method_id) {
- std::vector<std::string> input_method_ids;
- GetActiveInputMethodIds(&input_method_ids);
- return (std::find(input_method_ids.begin(), input_method_ids.end(),
- input_method_id) != input_method_ids.end());
-}
-
-void LanguageConfigModel::GetActiveInputMethodIds(
- std::vector<std::string>* out_input_method_ids) {
- const std::string value = preload_engines_pref_.GetValue();
- out_input_method_ids->clear();
- if (!value.empty())
- base::SplitString(value, ',', out_input_method_ids);
-}
-
-void LanguageConfigModel::GetPreferredLanguageCodes(
- std::vector<std::string>* out_language_codes) {
- const std::string value = preferred_languages_pref_.GetValue();
- out_language_codes->clear();
- if (!value.empty())
- base::SplitString(value, ',', out_language_codes);
-}
-
-void LanguageConfigModel::GetInputMethodIdsFromLanguageCode(
- const std::string& language_code,
- std::vector<std::string>* input_method_ids) const {
- DCHECK(input_method_ids);
- input_method_ids->clear();
- input_method::GetInputMethodIdsFromLanguageCode(
- language_code, input_method::kAllInputMethods, input_method_ids);
-}
-
-void LanguageConfigModel::NotifyPrefChanged() {
- GetPreferredLanguageCodes(&preferred_language_codes_);
-}
-
-void LanguageConfigModel::Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- if (type == NotificationType::PREF_CHANGED) {
- NotifyPrefChanged();
- }
-}
-
-void LanguageConfigModel::InitInputMethodIdVectors() {
- // The two sets are used to build lists without duplication.
- std::set<std::string> supported_language_code_set;
- std::set<std::string> supported_input_method_id_set;
- // Build the id to descriptor map for handling kExtraLanguages later.
- std::map<std::string, const InputMethodDescriptor*> id_to_descriptor_map;
-
- // GetSupportedLanguages() never return NULL.
- scoped_ptr<InputMethodDescriptors> supported_input_methods(
- CrosLibrary::Get()->GetInputMethodLibrary()->GetSupportedInputMethods());
- for (size_t i = 0; i < supported_input_methods->size(); ++i) {
- const InputMethodDescriptor& input_method = supported_input_methods->at(i);
- const std::string language_code =
- input_method::GetLanguageCodeFromDescriptor(input_method);
- // Add the language code and the input method id to the sets.
- supported_language_code_set.insert(language_code);
- supported_input_method_id_set.insert(input_method.id);
- // Remember the pair.
- id_to_descriptor_map.insert(
- std::make_pair(input_method.id, &input_method));
- }
-
- // Go through the languages listed in kExtraLanguages.
- for (size_t i = 0; i < arraysize(input_method::kExtraLanguages); ++i) {
- const char* language_code = input_method::kExtraLanguages[i].language_code;
- const char* input_method_id =
- input_method::kExtraLanguages[i].input_method_id;
- std::map<std::string, const InputMethodDescriptor*>::const_iterator iter =
- id_to_descriptor_map.find(input_method_id);
- // If the associated input method descriptor is found, add the
- // language code and the input method.
- if (iter != id_to_descriptor_map.end()) {
- const InputMethodDescriptor& input_method = *(iter->second);
- // Add the language code and the input method id to the sets.
- supported_language_code_set.insert(language_code);
- supported_input_method_id_set.insert(input_method.id);
- }
- }
-
- // Build the vectors from the sets.
- supported_language_codes_.assign(supported_language_code_set.begin(),
- supported_language_code_set.end());
- supported_input_method_ids_.assign(supported_input_method_id_set.begin(),
- supported_input_method_id_set.end());
-}
-
-} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698