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

Side by Side Diff: chrome/browser/dom_ui/options/search_engine_manager_handler.cc

Issue 6248015: DOMUI Prefs: Split search engines into two lists (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/dom_ui/options/search_engine_manager_handler.h" 5 #include "chrome/browser/dom_ui/options/search_engine_manager_handler.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 OnModelChanged(); 43 OnModelChanged();
44 } 44 }
45 } 45 }
46 46
47 void SearchEngineManagerHandler::GetLocalizedValues( 47 void SearchEngineManagerHandler::GetLocalizedValues(
48 DictionaryValue* localized_strings) { 48 DictionaryValue* localized_strings) {
49 DCHECK(localized_strings); 49 DCHECK(localized_strings);
50 50
51 localized_strings->SetString("searchEngineManagerPage", 51 localized_strings->SetString("searchEngineManagerPage",
52 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_WINDOW_TITLE)); 52 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_WINDOW_TITLE));
53 localized_strings->SetString("defaultSearchEngineListTitle",
54 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_MAIN_SEPARATOR));
55 localized_strings->SetString("otherSearchEngineListTitle",
56 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_OTHER_SEPARATOR));
53 localized_strings->SetString("searchEngineTableNameHeader", 57 localized_strings->SetString("searchEngineTableNameHeader",
54 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN)); 58 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN));
55 localized_strings->SetString("searchEngineTableKeywordHeader", 59 localized_strings->SetString("searchEngineTableKeywordHeader",
56 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN)); 60 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN));
57 localized_strings->SetString("searchEngineTableURLHeader", 61 localized_strings->SetString("searchEngineTableURLHeader",
58 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_EDIT_BUTTON)); 62 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_EDIT_BUTTON));
59 localized_strings->SetString("makeDefaultSearchEngineButton", 63 localized_strings->SetString("makeDefaultSearchEngineButton",
60 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_MAKE_DEFAULT_BUTTON)); 64 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINES_EDITOR_MAKE_DEFAULT_BUTTON));
61 localized_strings->SetString("searchEngineTableNamePlaceholder", 65 localized_strings->SetString("searchEngineTableNamePlaceholder",
62 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINE_ADD_NEW_NAME_PLACEHOLDER)); 66 l10n_util::GetStringUTF16(IDS_SEARCH_ENGINE_ADD_NEW_NAME_PLACEHOLDER));
(...skipping 28 matching lines...) Expand all
91 NewCallback(this, &SearchEngineManagerHandler::EditCancelled)); 95 NewCallback(this, &SearchEngineManagerHandler::EditCancelled));
92 dom_ui_->RegisterMessageCallback( 96 dom_ui_->RegisterMessageCallback(
93 "searchEngineEditCompleted", 97 "searchEngineEditCompleted",
94 NewCallback(this, &SearchEngineManagerHandler::EditCompleted)); 98 NewCallback(this, &SearchEngineManagerHandler::EditCompleted));
95 } 99 }
96 100
97 void SearchEngineManagerHandler::OnModelChanged() { 101 void SearchEngineManagerHandler::OnModelChanged() {
98 if (!list_controller_->loaded()) 102 if (!list_controller_->loaded())
99 return; 103 return;
100 104
101 ListValue engine_list;
102
103 // Find the default engine. 105 // Find the default engine.
104 const TemplateURL* default_engine = 106 const TemplateURL* default_engine =
105 list_controller_->url_model()->GetDefaultSearchProvider(); 107 list_controller_->url_model()->GetDefaultSearchProvider();
106 int default_index = list_controller_->table_model()->IndexOfTemplateURL( 108 int default_index = list_controller_->table_model()->IndexOfTemplateURL(
107 default_engine); 109 default_engine);
108 110
109 // Add the first group (default search engine options). 111 // Build the first list (default search engine options).
110 engine_list.Append(CreateDictionaryForHeading(0)); 112 ListValue defaults_list;
111 int last_default_engine_index = 113 int last_default_engine_index =
112 list_controller_->table_model()->last_search_engine_index(); 114 list_controller_->table_model()->last_search_engine_index();
113 for (int i = 0; i < last_default_engine_index; ++i) { 115 for (int i = 0; i < last_default_engine_index; ++i) {
114 engine_list.Append(CreateDictionaryForEngine(i, i == default_index)); 116 defaults_list.Append(CreateDictionaryForEngine(i, i == default_index));
115 } 117 }
116 118
117 // Add the second group (other search templates). 119 // Build the second list (other search templates).
118 engine_list.Append(CreateDictionaryForHeading(1)); 120 ListValue others_list;
119 if (last_default_engine_index < 0) 121 if (last_default_engine_index < 0)
120 last_default_engine_index = 0; 122 last_default_engine_index = 0;
121 int engine_count = list_controller_->table_model()->RowCount(); 123 int engine_count = list_controller_->table_model()->RowCount();
122 for (int i = last_default_engine_index; i < engine_count; ++i) { 124 for (int i = last_default_engine_index; i < engine_count; ++i) {
123 engine_list.Append(CreateDictionaryForEngine(i, i == default_index)); 125 others_list.Append(CreateDictionaryForEngine(i, i == default_index));
124 } 126 }
125 127
126 dom_ui_->CallJavascriptFunction(L"SearchEngineManager.updateSearchEngineList", 128 dom_ui_->CallJavascriptFunction(L"SearchEngineManager.updateSearchEngineList",
127 engine_list); 129 defaults_list, others_list);
128 } 130 }
129 131
130 void SearchEngineManagerHandler::OnItemsChanged(int start, int length) { 132 void SearchEngineManagerHandler::OnItemsChanged(int start, int length) {
131 OnModelChanged(); 133 OnModelChanged();
132 } 134 }
133 135
134 void SearchEngineManagerHandler::OnItemsAdded(int start, int length) { 136 void SearchEngineManagerHandler::OnItemsAdded(int start, int length) {
135 OnModelChanged(); 137 OnModelChanged();
136 } 138 }
137 139
138 void SearchEngineManagerHandler::OnItemsRemoved(int start, int length) { 140 void SearchEngineManagerHandler::OnItemsRemoved(int start, int length) {
139 OnModelChanged(); 141 OnModelChanged();
140 } 142 }
141 143
142 DictionaryValue* SearchEngineManagerHandler::CreateDictionaryForHeading(
143 int group_index) {
144 ui::TableModel::Groups groups = list_controller_->table_model()->GetGroups();
145
146 DictionaryValue* dict = new DictionaryValue();
147 dict->SetString("heading", groups[group_index].title);
148 return dict;
149 }
150
151 DictionaryValue* SearchEngineManagerHandler::CreateDictionaryForEngine( 144 DictionaryValue* SearchEngineManagerHandler::CreateDictionaryForEngine(
152 int index, bool is_default) { 145 int index, bool is_default) {
153 TemplateURLTableModel* table_model = list_controller_->table_model(); 146 TemplateURLTableModel* table_model = list_controller_->table_model();
154 147
155 DictionaryValue* dict = new DictionaryValue(); 148 DictionaryValue* dict = new DictionaryValue();
156 dict->SetString("name", table_model->GetText( 149 dict->SetString("name", table_model->GetText(
157 index, IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN)); 150 index, IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN));
158 dict->SetString("keyword", table_model->GetText( 151 dict->SetString("keyword", table_model->GetText(
159 index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN)); 152 index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN));
160 const TemplateURL* template_url = list_controller_->GetTemplateURL(index); 153 const TemplateURL* template_url = list_controller_->GetTemplateURL(index);
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 string16 keyword; 263 string16 keyword;
271 std::string url; 264 std::string url;
272 if (!args->GetString(ENGINE_NAME, &name) || 265 if (!args->GetString(ENGINE_NAME, &name) ||
273 !args->GetString(ENGINE_KEYWORD, &keyword) || 266 !args->GetString(ENGINE_KEYWORD, &keyword) ||
274 !args->GetString(ENGINE_URL, &url)) { 267 !args->GetString(ENGINE_URL, &url)) {
275 NOTREACHED(); 268 NOTREACHED();
276 return; 269 return;
277 } 270 }
278 edit_controller_->AcceptAddOrEdit(name, keyword, url); 271 edit_controller_->AcceptAddOrEdit(name, keyword, url);
279 } 272 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698