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