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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_popup_model.cc

Issue 6258015: Remove wstring from autocomplete.... (Closed) Base URL: svn://chrome-svn/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/autocomplete/autocomplete_popup_model.h" 5 #include "chrome/browser/autocomplete/autocomplete_popup_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "unicode/ubidi.h" 9 #include "unicode/ubidi.h"
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 AutocompletePopupModel::~AutocompletePopupModel() { 42 AutocompletePopupModel::~AutocompletePopupModel() {
43 } 43 }
44 44
45 void AutocompletePopupModel::SetProfile(Profile* profile) { 45 void AutocompletePopupModel::SetProfile(Profile* profile) {
46 DCHECK(profile); 46 DCHECK(profile);
47 profile_ = profile; 47 profile_ = profile;
48 controller_->SetProfile(profile); 48 controller_->SetProfile(profile);
49 } 49 }
50 50
51 void AutocompletePopupModel::StartAutocomplete( 51 void AutocompletePopupModel::StartAutocomplete(
52 const std::wstring& text, 52 const string16& text,
53 const std::wstring& desired_tld, 53 const string16& desired_tld,
54 bool prevent_inline_autocomplete, 54 bool prevent_inline_autocomplete,
55 bool prefer_keyword, 55 bool prefer_keyword,
56 bool allow_exact_keyword_match) { 56 bool allow_exact_keyword_match) {
57 // The user is interacting with the edit, so stop tracking hover. 57 // The user is interacting with the edit, so stop tracking hover.
58 SetHoveredLine(kNoMatch); 58 SetHoveredLine(kNoMatch);
59 59
60 manually_selected_match_.Clear(); 60 manually_selected_match_.Clear();
61 61
62 controller_->Start(text, desired_tld, prevent_inline_autocomplete, 62 controller_->Start(text, desired_tld, prevent_inline_autocomplete,
63 prefer_keyword, allow_exact_keyword_match, false); 63 prefer_keyword, allow_exact_keyword_match, false);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 // selected line. 127 // selected line.
128 CHECK(selected_line_ != kNoMatch); 128 CHECK(selected_line_ != kNoMatch);
129 GURL current_destination(result.match_at(selected_line_).destination_url); 129 GURL current_destination(result.match_at(selected_line_).destination_url);
130 view_->InvalidateLine(selected_line_); 130 view_->InvalidateLine(selected_line_);
131 selected_line_ = line; 131 selected_line_ = line;
132 view_->InvalidateLine(selected_line_); 132 view_->InvalidateLine(selected_line_);
133 133
134 // Update the edit with the new data for this match. 134 // Update the edit with the new data for this match.
135 // TODO(pkasting): If |selected_line_| moves to the controller, this can be 135 // TODO(pkasting): If |selected_line_| moves to the controller, this can be
136 // eliminated and just become a call to the observer on the edit. 136 // eliminated and just become a call to the observer on the edit.
137 std::wstring keyword; 137 string16 keyword;
138 const bool is_keyword_hint = GetKeywordForMatch(match, &keyword); 138 const bool is_keyword_hint = GetKeywordForMatch(match, &keyword);
139 if (reset_to_default) { 139 if (reset_to_default) {
140 std::wstring inline_autocomplete_text; 140 string16 inline_autocomplete_text;
141 if ((match.inline_autocomplete_offset != std::wstring::npos) && 141 if ((match.inline_autocomplete_offset != string16::npos) &&
142 (match.inline_autocomplete_offset < match.fill_into_edit.length())) { 142 (match.inline_autocomplete_offset < match.fill_into_edit.length())) {
143 inline_autocomplete_text = 143 inline_autocomplete_text =
144 match.fill_into_edit.substr(match.inline_autocomplete_offset); 144 match.fill_into_edit.substr(match.inline_autocomplete_offset);
145 } 145 }
146 edit_model_->OnPopupDataChanged(inline_autocomplete_text, NULL, 146 edit_model_->OnPopupDataChanged(inline_autocomplete_text, NULL,
147 keyword, is_keyword_hint); 147 keyword, is_keyword_hint);
148 } else { 148 } else {
149 edit_model_->OnPopupDataChanged(match.fill_into_edit, &current_destination, 149 edit_model_->OnPopupDataChanged(match.fill_into_edit, &current_destination,
150 keyword, is_keyword_hint); 150 keyword, is_keyword_hint);
151 } 151 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 // called instead. 195 // called instead.
196 CHECK(!result->empty()); 196 CHECK(!result->empty());
197 CHECK(selected_line_ < result->size()); 197 CHECK(selected_line_ < result->size());
198 *match = result->match_at(selected_line_); 198 *match = result->match_at(selected_line_);
199 } 199 }
200 if (alternate_nav_url && manually_selected_match_.empty()) 200 if (alternate_nav_url && manually_selected_match_.empty())
201 *alternate_nav_url = result->alternate_nav_url(); 201 *alternate_nav_url = result->alternate_nav_url();
202 } 202 }
203 203
204 bool AutocompletePopupModel::GetKeywordForMatch(const AutocompleteMatch& match, 204 bool AutocompletePopupModel::GetKeywordForMatch(const AutocompleteMatch& match,
205 std::wstring* keyword) const { 205 string16* keyword) const {
206 // Assume we have no keyword until we find otherwise. 206 // Assume we have no keyword until we find otherwise.
207 keyword->clear(); 207 keyword->clear();
208 208
209 // If the current match is a keyword, return that as the selected keyword. 209 // If the current match is a keyword, return that as the selected keyword.
210 if (TemplateURL::SupportsReplacement(match.template_url)) { 210 if (TemplateURL::SupportsReplacement(match.template_url)) {
211 keyword->assign(UTF16ToWideHack(match.template_url->keyword())); 211 keyword->assign(match.template_url->keyword());
212 return false; 212 return false;
213 } 213 }
214 214
215 // See if the current match's fill_into_edit corresponds to a keyword. 215 // See if the current match's fill_into_edit corresponds to a keyword.
216 if (!profile_->GetTemplateURLModel()) 216 if (!profile_->GetTemplateURLModel())
217 return false; 217 return false;
218 profile_->GetTemplateURLModel()->Load(); 218 profile_->GetTemplateURLModel()->Load();
219 const string16 keyword_hint(TemplateURLModel::CleanUserInputKeyword( 219 const string16 keyword_hint(TemplateURLModel::CleanUserInputKeyword(
220 WideToUTF16Hack(match.fill_into_edit))); 220 match.fill_into_edit));
221 if (keyword_hint.empty()) 221 if (keyword_hint.empty())
222 return false; 222 return false;
223 223
224 // Don't provide a hint if this keyword doesn't support replacement. 224 // Don't provide a hint if this keyword doesn't support replacement.
225 const TemplateURL* const template_url = 225 const TemplateURL* const template_url =
226 profile_->GetTemplateURLModel()->GetTemplateURLForKeyword(keyword_hint); 226 profile_->GetTemplateURLModel()->GetTemplateURLForKeyword(keyword_hint);
227 if (!TemplateURL::SupportsReplacement(template_url)) 227 if (!TemplateURL::SupportsReplacement(template_url))
228 return false; 228 return false;
229 229
230 // Don't provide a hint for inactive/disabled extension keywords. 230 // Don't provide a hint for inactive/disabled extension keywords.
231 if (template_url->IsExtensionKeyword()) { 231 if (template_url->IsExtensionKeyword()) {
232 const Extension* extension = profile_->GetExtensionService()-> 232 const Extension* extension = profile_->GetExtensionService()->
233 GetExtensionById(template_url->GetExtensionId(), false); 233 GetExtensionById(template_url->GetExtensionId(), false);
234 if (!extension || 234 if (!extension ||
235 (profile_->IsOffTheRecord() && 235 (profile_->IsOffTheRecord() &&
236 !profile_->GetExtensionService()->IsIncognitoEnabled(extension))) 236 !profile_->GetExtensionService()->IsIncognitoEnabled(extension)))
237 return false; 237 return false;
238 } 238 }
239 239
240 keyword->assign(UTF16ToWideHack(keyword_hint)); 240 keyword->assign(keyword_hint);
241 return true; 241 return true;
242 } 242 }
243 243
244 void AutocompletePopupModel::FinalizeInstantQuery( 244 void AutocompletePopupModel::FinalizeInstantQuery(
245 const std::wstring& input_text, 245 const string16& input_text,
246 const std::wstring& suggest_text) { 246 const string16& suggest_text) {
247 if (IsOpen()) { 247 if (IsOpen()) {
248 SearchProvider* search_provider = controller_->search_provider(); 248 SearchProvider* search_provider = controller_->search_provider();
249 search_provider->FinalizeInstantQuery(input_text, suggest_text); 249 search_provider->FinalizeInstantQuery(input_text, suggest_text);
250 } 250 }
251 } 251 }
252 252
253 AutocompleteLog* AutocompletePopupModel::GetAutocompleteLog() { 253 AutocompleteLog* AutocompletePopupModel::GetAutocompleteLog() {
254 return new AutocompleteLog(controller_->input().text(), 254 return new AutocompleteLog(controller_->input().text(),
255 controller_->input().type(), selected_line_, 0, controller_->result()); 255 controller_->input().type(), selected_line_, 0, controller_->result());
256 } 256 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 } 322 }
323 323
324 const SkBitmap* AutocompletePopupModel::GetSpecialIconForMatch( 324 const SkBitmap* AutocompletePopupModel::GetSpecialIconForMatch(
325 const AutocompleteMatch& match) const { 325 const AutocompleteMatch& match) const {
326 if (!match.template_url || !match.template_url->IsExtensionKeyword()) 326 if (!match.template_url || !match.template_url->IsExtensionKeyword())
327 return NULL; 327 return NULL;
328 328
329 return &profile_->GetExtensionService()->GetOmniboxPopupIcon( 329 return &profile_->GetExtensionService()->GetOmniboxPopupIcon(
330 match.template_url->GetExtensionId()); 330 match.template_url->GetExtensionId());
331 } 331 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_popup_model.h ('k') | chrome/browser/autocomplete/autocomplete_popup_view_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698