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

Side by Side Diff: chrome/browser/ui/search_engines/template_url_table_model.cc

Issue 2442953002: Remove stl_util's deletion function use from chrome/. (Closed)
Patch Set: fix Created 4 years, 2 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/search_engines/template_url_table_model.h" 5 #include "chrome/browser/ui/search_engines/template_url_table_model.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 template_url_service_(template_url_service), 124 template_url_service_(template_url_service),
125 favicon_service_(favicon_service) { 125 favicon_service_(favicon_service) {
126 DCHECK(template_url_service); 126 DCHECK(template_url_service);
127 template_url_service_->Load(); 127 template_url_service_->Load();
128 template_url_service_->AddObserver(this); 128 template_url_service_->AddObserver(this);
129 Reload(); 129 Reload();
130 } 130 }
131 131
132 TemplateURLTableModel::~TemplateURLTableModel() { 132 TemplateURLTableModel::~TemplateURLTableModel() {
133 template_url_service_->RemoveObserver(this); 133 template_url_service_->RemoveObserver(this);
134 base::STLDeleteElements(&entries_);
135 } 134 }
136 135
137 void TemplateURLTableModel::Reload() { 136 void TemplateURLTableModel::Reload() {
138 base::STLDeleteElements(&entries_); 137 entries_.clear();
139 138
140 TemplateURLService::TemplateURLVector urls = 139 TemplateURLService::TemplateURLVector urls =
141 template_url_service_->GetTemplateURLs(); 140 template_url_service_->GetTemplateURLs();
142 141
143 std::vector<ModelEntry*> default_entries, other_entries, extension_entries; 142 std::vector<std::unique_ptr<ModelEntry>> default_entries, other_entries,
143 extension_entries;
144 // Keywords that can be made the default first. 144 // Keywords that can be made the default first.
145 for (TemplateURLService::TemplateURLVector::iterator i = urls.begin(); 145 for (auto i = urls.begin(); i != urls.end(); ++i) {
Nico 2016/10/24 18:41:02 nit: foreach
Avi (use Gerrit) 2016/10/24 19:15:37 Done.
146 i != urls.end(); ++i) {
147 TemplateURL* template_url = *i; 146 TemplateURL* template_url = *i;
148 // NOTE: we don't use ShowInDefaultList here to avoid items bouncing around 147 // NOTE: we don't use ShowInDefaultList here to avoid items bouncing around
149 // the lists while editing. 148 // the lists while editing.
150 if (template_url->show_in_default_list()) 149 if (template_url->show_in_default_list())
151 default_entries.push_back(new ModelEntry(this, template_url)); 150 default_entries.push_back(
151 base::MakeUnique<ModelEntry>(this, template_url));
152 else if (template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION) 152 else if (template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION)
153 extension_entries.push_back(new ModelEntry(this, template_url)); 153 extension_entries.push_back(
154 base::MakeUnique<ModelEntry>(this, template_url));
154 else 155 else
155 other_entries.push_back(new ModelEntry(this, template_url)); 156 other_entries.push_back(base::MakeUnique<ModelEntry>(this, template_url));
156 } 157 }
157 158
158 last_search_engine_index_ = static_cast<int>(default_entries.size()); 159 last_search_engine_index_ = static_cast<int>(default_entries.size());
159 last_other_engine_index_ = last_search_engine_index_ + 160 last_other_engine_index_ = last_search_engine_index_ +
160 static_cast<int>(other_entries.size()); 161 static_cast<int>(other_entries.size());
161 162
162 entries_.insert(entries_.end(), 163 std::move(default_entries.begin(), default_entries.end(),
163 default_entries.begin(), 164 std::back_inserter(entries_));
164 default_entries.end());
165 165
166 entries_.insert(entries_.end(), 166 std::move(other_entries.begin(), other_entries.end(),
167 other_entries.begin(), 167 std::back_inserter(entries_));
168 other_entries.end());
169 168
170 entries_.insert(entries_.end(), 169 std::move(extension_entries.begin(), extension_entries.end(),
171 extension_entries.begin(), 170 std::back_inserter(entries_));
172 extension_entries.end());
173 171
174 if (observer_) 172 if (observer_)
175 observer_->OnModelChanged(); 173 observer_->OnModelChanged();
176 } 174 }
177 175
178 int TemplateURLTableModel::RowCount() { 176 int TemplateURLTableModel::RowCount() {
179 return static_cast<int>(entries_.size()); 177 return static_cast<int>(entries_.size());
180 } 178 }
181 179
182 base::string16 TemplateURLTableModel::GetText(int row, int col_id) { 180 base::string16 TemplateURLTableModel::GetText(int row, int col_id) {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 296
299 NotifyChanged(index); 297 NotifyChanged(index);
300 } 298 }
301 299
302 TemplateURL* TemplateURLTableModel::GetTemplateURL(int index) { 300 TemplateURL* TemplateURLTableModel::GetTemplateURL(int index) {
303 return entries_[index]->template_url(); 301 return entries_[index]->template_url();
304 } 302 }
305 303
306 int TemplateURLTableModel::IndexOfTemplateURL( 304 int TemplateURLTableModel::IndexOfTemplateURL(
307 const TemplateURL* template_url) { 305 const TemplateURL* template_url) {
308 for (std::vector<ModelEntry*>::iterator i = entries_.begin(); 306 for (auto i = entries_.begin(); i != entries_.end(); ++i) {
Nico 2016/10/24 18:41:02 nit: foreach?
Avi (use Gerrit) 2016/10/24 19:15:37 No, we need i on line 309.
309 i != entries_.end(); ++i) { 307 ModelEntry* entry = i->get();
310 ModelEntry* entry = *i;
311 if (entry->template_url() == template_url) 308 if (entry->template_url() == template_url)
312 return static_cast<int>(i - entries_.begin()); 309 return static_cast<int>(i - entries_.begin());
313 } 310 }
314 return -1; 311 return -1;
315 } 312 }
316 313
317 int TemplateURLTableModel::MoveToMainGroup(int index) { 314 int TemplateURLTableModel::MoveToMainGroup(int index) {
318 if (index < last_search_engine_index_) 315 if (index < last_search_engine_index_)
319 return index; // Already in the main group. 316 return index; // Already in the main group.
320 317
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 } 354 }
358 355
359 void TemplateURLTableModel::NotifyChanged(int index) { 356 void TemplateURLTableModel::NotifyChanged(int index) {
360 if (observer_) { 357 if (observer_) {
361 DCHECK_GE(index, 0); 358 DCHECK_GE(index, 0);
362 observer_->OnItemsChanged(index, 1); 359 observer_->OnItemsChanged(index, 1);
363 } 360 }
364 } 361 }
365 362
366 void TemplateURLTableModel::FaviconAvailable(ModelEntry* entry) { 363 void TemplateURLTableModel::FaviconAvailable(ModelEntry* entry) {
367 std::vector<ModelEntry*>::iterator i = 364 auto i = std::find_if(entries_.begin(), entries_.end(),
368 std::find(entries_.begin(), entries_.end(), entry); 365 [entry](const std::unique_ptr<ModelEntry>& ptr) {
366 return ptr.get() == entry;
367 });
369 DCHECK(i != entries_.end()); 368 DCHECK(i != entries_.end());
370 NotifyChanged(static_cast<int>(i - entries_.begin())); 369 NotifyChanged(static_cast<int>(i - entries_.begin()));
371 } 370 }
372 371
373 void TemplateURLTableModel::OnTemplateURLServiceChanged() { 372 void TemplateURLTableModel::OnTemplateURLServiceChanged() {
374 Reload(); 373 Reload();
375 } 374 }
376 375
377 std::unique_ptr<TemplateURLTableModel::ModelEntry> 376 std::unique_ptr<TemplateURLTableModel::ModelEntry>
378 TemplateURLTableModel::RemoveEntry(int index) { 377 TemplateURLTableModel::RemoveEntry(int index) {
379 std::unique_ptr<ModelEntry> entry(entries_[index]); 378 std::unique_ptr<ModelEntry> entry = std::move(entries_[index]);
380 entries_.erase(index + entries_.begin()); 379 entries_.erase(index + entries_.begin());
381 if (index < last_search_engine_index_) 380 if (index < last_search_engine_index_)
382 --last_search_engine_index_; 381 --last_search_engine_index_;
383 if (index < last_other_engine_index_) 382 if (index < last_other_engine_index_)
384 --last_other_engine_index_; 383 --last_other_engine_index_;
385 if (observer_) 384 if (observer_)
386 observer_->OnItemsRemoved(index, 1); 385 observer_->OnItemsRemoved(index, 1);
387 return entry; 386 return entry;
388 } 387 }
389 388
390 void TemplateURLTableModel::AddEntry(int index, 389 void TemplateURLTableModel::AddEntry(int index,
391 std::unique_ptr<ModelEntry> entry) { 390 std::unique_ptr<ModelEntry> entry) {
392 entries_.insert(entries_.begin() + index, entry.release()); 391 entries_.insert(entries_.begin() + index, std::move(entry));
393 if (index <= last_other_engine_index_) 392 if (index <= last_other_engine_index_)
394 ++last_other_engine_index_; 393 ++last_other_engine_index_;
395 if (observer_) 394 if (observer_)
396 observer_->OnItemsAdded(index, 1); 395 observer_->OnItemsAdded(index, 1);
397 } 396 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698