| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/default_encoding_combo_model.h" | 5 #include "chrome/browser/default_encoding_combo_model.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "app/l10n_util_collator.h" | 8 #include "app/l10n_util_collator.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
| 11 #include "chrome/browser/prefs/pref_member.h" | 11 #include "chrome/browser/prefs/pref_member.h" |
| 12 #include "chrome/browser/profile.h" | 12 #include "chrome/browser/profile.h" |
| 13 #include "chrome/common/pref_names.h" | 13 #include "chrome/common/pref_names.h" |
| 14 | 14 |
| 15 DefaultEncodingComboboxModel::DefaultEncodingComboboxModel() { | 15 DefaultEncodingComboboxModel::DefaultEncodingComboboxModel() { |
| 16 // Initialize the vector of all sorted encodings according to current | 16 // Initialize the vector of all sorted encodings according to current |
| 17 // UI locale. | 17 // UI locale. |
| 18 std::string locale = g_browser_process->GetApplicationLocale(); | 18 std::string locale = g_browser_process->GetApplicationLocale(); |
| 19 int size = CharacterEncoding::GetSupportCanonicalEncodingCount(); | 19 int size = CharacterEncoding::GetSupportCanonicalEncodingCount(); |
| 20 for (int i = 0; i < size; ++i) { | 20 for (int i = 0; i < size; ++i) { |
| 21 sorted_encoding_list_.push_back(CharacterEncoding::EncodingInfo( | 21 sorted_encoding_list_.push_back(CharacterEncoding::EncodingInfo( |
| 22 CharacterEncoding::GetEncodingCommandIdByIndex(i))); | 22 CharacterEncoding::GetEncodingCommandIdByIndex(i))); |
| 23 } | 23 } |
| 24 l10n_util::SortVectorWithStringKey(locale, &sorted_encoding_list_, true); | 24 l10n_util::SortVectorWithStringKey(locale, &sorted_encoding_list_, true); |
| 25 } | 25 } |
| 26 | 26 |
| 27 DefaultEncodingComboboxModel::~DefaultEncodingComboboxModel() { |
| 28 } |
| 29 |
| 30 int DefaultEncodingComboboxModel::GetItemCount() { |
| 31 return static_cast<int>(sorted_encoding_list_.size()); |
| 32 } |
| 33 |
| 27 string16 DefaultEncodingComboboxModel::GetItemAt(int index) { | 34 string16 DefaultEncodingComboboxModel::GetItemAt(int index) { |
| 28 DCHECK(index >= 0 && index < GetItemCount()); | 35 DCHECK(index >= 0 && index < GetItemCount()); |
| 29 return WideToUTF16Hack(sorted_encoding_list_[index].encoding_display_name); | 36 return WideToUTF16Hack(sorted_encoding_list_[index].encoding_display_name); |
| 30 } | 37 } |
| 31 | 38 |
| 32 std::string DefaultEncodingComboboxModel::GetEncodingCharsetByIndex(int index) { | 39 std::string DefaultEncodingComboboxModel::GetEncodingCharsetByIndex(int index) { |
| 33 DCHECK(index >= 0 && index < GetItemCount()); | 40 DCHECK(index >= 0 && index < GetItemCount()); |
| 34 int encoding_id = sorted_encoding_list_[index].encoding_id; | 41 int encoding_id = sorted_encoding_list_[index].encoding_id; |
| 35 return CharacterEncoding::GetCanonicalEncodingNameByCommandId(encoding_id); | 42 return CharacterEncoding::GetCanonicalEncodingNameByCommandId(encoding_id); |
| 36 } | 43 } |
| 37 | 44 |
| 38 int DefaultEncodingComboboxModel::GetSelectedEncodingIndex(Profile* profile) { | 45 int DefaultEncodingComboboxModel::GetSelectedEncodingIndex(Profile* profile) { |
| 39 StringPrefMember current_encoding_string; | 46 StringPrefMember current_encoding_string; |
| 40 current_encoding_string.Init(prefs::kDefaultCharset, | 47 current_encoding_string.Init(prefs::kDefaultCharset, |
| 41 profile->GetPrefs(), | 48 profile->GetPrefs(), |
| 42 NULL); | 49 NULL); |
| 43 const std::string current_encoding = current_encoding_string.GetValue(); | 50 const std::string current_encoding = current_encoding_string.GetValue(); |
| 44 for (int i = 0; i < GetItemCount(); ++i) { | 51 for (int i = 0; i < GetItemCount(); ++i) { |
| 45 if (GetEncodingCharsetByIndex(i) == current_encoding) | 52 if (GetEncodingCharsetByIndex(i) == current_encoding) |
| 46 return i; | 53 return i; |
| 47 } | 54 } |
| 48 | 55 |
| 49 return 0; | 56 return 0; |
| 50 } | 57 } |
| OLD | NEW |