OLD | NEW |
1 // Copyright (c) 2009 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/search_engines/keyword_editor_controller.h" | 5 #include "chrome/browser/search_engines/keyword_editor_controller.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/metrics/user_metrics.h" | 8 #include "chrome/browser/metrics/user_metrics.h" |
9 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
11 #include "chrome/browser/search_engines/template_url.h" | 11 #include "chrome/browser/search_engines/template_url.h" |
(...skipping 18 matching lines...) Expand all Loading... |
30 | 30 |
31 int KeywordEditorController::AddTemplateURL(const string16& title, | 31 int KeywordEditorController::AddTemplateURL(const string16& title, |
32 const string16& keyword, | 32 const string16& keyword, |
33 const std::string& url) { | 33 const std::string& url) { |
34 DCHECK(!url.empty()); | 34 DCHECK(!url.empty()); |
35 | 35 |
36 UserMetrics::RecordAction(UserMetricsAction("KeywordEditor_AddKeyword"), | 36 UserMetrics::RecordAction(UserMetricsAction("KeywordEditor_AddKeyword"), |
37 profile_); | 37 profile_); |
38 | 38 |
39 TemplateURL* template_url = new TemplateURL(); | 39 TemplateURL* template_url = new TemplateURL(); |
40 template_url->set_short_name(UTF16ToWideHack(title)); | 40 template_url->set_short_name(title); |
41 template_url->set_keyword(UTF16ToWideHack(keyword)); | 41 template_url->set_keyword(keyword); |
42 template_url->SetURL(url, 0, 0); | 42 template_url->SetURL(url, 0, 0); |
43 | 43 |
44 // There's a bug (1090726) in TableView with groups enabled such that newly | 44 // There's a bug (1090726) in TableView with groups enabled such that newly |
45 // added items in groups ALWAYS appear at the end, regardless of the index | 45 // added items in groups ALWAYS appear at the end, regardless of the index |
46 // passed in. Worse yet, the selected rows get messed up when this happens | 46 // passed in. Worse yet, the selected rows get messed up when this happens |
47 // causing other problems. As a work around we always add the item to the end | 47 // causing other problems. As a work around we always add the item to the end |
48 // of the list. | 48 // of the list. |
49 const int new_index = table_model_->RowCount(); | 49 const int new_index = table_model_->RowCount(); |
50 table_model_->Add(new_index, template_url); | 50 table_model_->Add(new_index, template_url); |
51 | 51 |
52 return new_index; | 52 return new_index; |
53 } | 53 } |
54 | 54 |
55 void KeywordEditorController::ModifyTemplateURL(const TemplateURL* template_url, | 55 void KeywordEditorController::ModifyTemplateURL(const TemplateURL* template_url, |
56 const string16& title, | 56 const string16& title, |
57 const string16& keyword, | 57 const string16& keyword, |
58 const std::string& url) { | 58 const std::string& url) { |
59 const int index = table_model_->IndexOfTemplateURL(template_url); | 59 const int index = table_model_->IndexOfTemplateURL(template_url); |
60 if (index == -1) { | 60 if (index == -1) { |
61 // Will happen if url was deleted out from under us while the user was | 61 // Will happen if url was deleted out from under us while the user was |
62 // editing it. | 62 // editing it. |
63 return; | 63 return; |
64 } | 64 } |
65 | 65 |
66 // Don't do anything if the entry didn't change. | 66 // Don't do anything if the entry didn't change. |
67 if (template_url->short_name() == UTF16ToWideHack(title) && | 67 if (template_url->short_name() == title && |
68 template_url->keyword() == UTF16ToWideHack(keyword) && | 68 template_url->keyword() == keyword && |
69 ((url.empty() && !template_url->url()) || | 69 ((url.empty() && !template_url->url()) || |
70 (!url.empty() && template_url->url() && | 70 (!url.empty() && template_url->url() && |
71 template_url->url()->url() == url))) { | 71 template_url->url()->url() == url))) { |
72 return; | 72 return; |
73 } | 73 } |
74 | 74 |
75 table_model_->ModifyTemplateURL(index, title, keyword, url); | 75 table_model_->ModifyTemplateURL(index, title, keyword, url); |
76 | 76 |
77 UserMetrics::RecordAction(UserMetricsAction("KeywordEditor_ModifiedKeyword"), | 77 UserMetrics::RecordAction(UserMetricsAction("KeywordEditor_ModifiedKeyword"), |
78 profile_); | 78 profile_); |
(...skipping 26 matching lines...) Expand all Loading... |
105 return url_model()->loaded(); | 105 return url_model()->loaded(); |
106 } | 106 } |
107 | 107 |
108 const TemplateURL* KeywordEditorController::GetTemplateURL(int index) const { | 108 const TemplateURL* KeywordEditorController::GetTemplateURL(int index) const { |
109 return &table_model_->GetTemplateURL(index); | 109 return &table_model_->GetTemplateURL(index); |
110 } | 110 } |
111 | 111 |
112 TemplateURLModel* KeywordEditorController::url_model() const { | 112 TemplateURLModel* KeywordEditorController::url_model() const { |
113 return table_model_->template_url_model(); | 113 return table_model_->template_url_model(); |
114 } | 114 } |
OLD | NEW |