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

Side by Side Diff: chrome/browser/bookmarks/bookmark_table_model.cc

Issue 113815: Support for searching bookmarks for IDN.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 6 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/bookmarks/bookmark_table_model.h" 5 #include "chrome/browser/bookmarks/bookmark_table_model.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 } 218 }
219 219
220 DISALLOW_COPY_AND_ASSIGN(RecentlyBookmarkedTableModel); 220 DISALLOW_COPY_AND_ASSIGN(RecentlyBookmarkedTableModel);
221 }; 221 };
222 222
223 // BookmarkSearchTableModel ---------------------------------------------------- 223 // BookmarkSearchTableModel ----------------------------------------------------
224 224
225 class BookmarkSearchTableModel : public VectorBackedBookmarkTableModel { 225 class BookmarkSearchTableModel : public VectorBackedBookmarkTableModel {
226 public: 226 public:
227 BookmarkSearchTableModel(BookmarkModel* model, 227 BookmarkSearchTableModel(BookmarkModel* model,
228 const std::wstring& search_text) 228 const std::wstring& search_text,
229 const std::wstring& languages)
229 : VectorBackedBookmarkTableModel(model), 230 : VectorBackedBookmarkTableModel(model),
230 search_text_(search_text) { 231 search_text_(search_text),
232 languages_(languages) {
231 bookmark_utils::GetBookmarksContainingText( 233 bookmark_utils::GetBookmarksContainingText(
232 model, search_text, std::numeric_limits<int>::max(), &nodes()); 234 model, search_text, std::numeric_limits<int>::max(),
235 languages, &nodes());
233 } 236 }
234 237
235 virtual void BookmarkNodeAdded(BookmarkModel* model, 238 virtual void BookmarkNodeAdded(BookmarkModel* model,
236 BookmarkNode* parent, 239 BookmarkNode* parent,
237 int index) { 240 int index) {
238 BookmarkNode* node = parent->GetChild(index); 241 BookmarkNode* node = parent->GetChild(index);
239 if (bookmark_utils::DoesBookmarkContainText(node, search_text_)) { 242 if (bookmark_utils::DoesBookmarkContainText(
243 node, search_text_, languages_)) {
240 nodes().push_back(node); 244 nodes().push_back(node);
241 if (observer()) 245 if (observer())
242 observer()->OnItemsAdded(static_cast<int>(nodes().size() - 1), 1); 246 observer()->OnItemsAdded(static_cast<int>(nodes().size() - 1), 1);
243 } 247 }
244 } 248 }
245 249
246 virtual void BookmarkNodeRemoved(BookmarkModel* model, 250 virtual void BookmarkNodeRemoved(BookmarkModel* model,
247 BookmarkNode* parent, 251 BookmarkNode* parent,
248 int index, 252 int index,
249 BookmarkNode* node) { 253 BookmarkNode* node) {
250 int internal_index = IndexOfNode(node); 254 int internal_index = IndexOfNode(node);
251 if (internal_index == -1) 255 if (internal_index == -1)
252 return; 256 return;
253 257
254 nodes().erase(nodes().begin() + static_cast<int>(internal_index)); 258 nodes().erase(nodes().begin() + static_cast<int>(internal_index));
255 if (observer()) 259 if (observer())
256 observer()->OnItemsRemoved(internal_index, 1); 260 observer()->OnItemsRemoved(internal_index, 1);
257 } 261 }
258 262
259 private: 263 private:
260 const std::wstring search_text_; 264 const std::wstring search_text_;
265 const std::wstring languages_;
261 266
262 DISALLOW_COPY_AND_ASSIGN(BookmarkSearchTableModel); 267 DISALLOW_COPY_AND_ASSIGN(BookmarkSearchTableModel);
263 }; 268 };
264 269
265 } // namespace 270 } // namespace
266 271
267 // BookmarkTableModel ---------------------------------------------------------- 272 // BookmarkTableModel ----------------------------------------------------------
268 273
269 // static 274 // static
270 BookmarkTableModel* BookmarkTableModel::CreateRecentlyBookmarkedModel( 275 BookmarkTableModel* BookmarkTableModel::CreateRecentlyBookmarkedModel(
271 BookmarkModel* model) { 276 BookmarkModel* model) {
272 return new RecentlyBookmarkedTableModel(model); 277 return new RecentlyBookmarkedTableModel(model);
273 } 278 }
274 279
275 // static 280 // static
276 BookmarkTableModel* BookmarkTableModel::CreateBookmarkTableModelForFolder( 281 BookmarkTableModel* BookmarkTableModel::CreateBookmarkTableModelForFolder(
277 BookmarkModel* model, BookmarkNode* node) { 282 BookmarkModel* model, BookmarkNode* node) {
278 return new FolderBookmarkTableModel(model, node); 283 return new FolderBookmarkTableModel(model, node);
279 } 284 }
280 285
281 // static 286 // static
282 BookmarkTableModel* BookmarkTableModel::CreateSearchTableModel( 287 BookmarkTableModel* BookmarkTableModel::CreateSearchTableModel(
283 BookmarkModel* model, 288 BookmarkModel* model,
284 const std::wstring& text) { 289 const std::wstring& text,
285 return new BookmarkSearchTableModel(model, text); 290 const std::wstring& languages) {
291 return new BookmarkSearchTableModel(model, text, languages);
286 } 292 }
287 293
288 BookmarkTableModel::BookmarkTableModel(BookmarkModel* model) 294 BookmarkTableModel::BookmarkTableModel(BookmarkModel* model)
289 : model_(model), 295 : model_(model),
290 observer_(NULL) { 296 observer_(NULL) {
291 model_->AddObserver(this); 297 model_->AddObserver(this);
292 } 298 }
293 299
294 BookmarkTableModel::~BookmarkTableModel() { 300 BookmarkTableModel::~BookmarkTableModel() {
295 if (model_) 301 if (model_)
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 return; 402 return;
397 } 403 }
398 if (node == model()->other_node()) { 404 if (node == model()->other_node()) {
399 *path = l10n_util::GetString(IDS_BOOKMARK_TABLE_OTHER_BOOKMARKS_PATH); 405 *path = l10n_util::GetString(IDS_BOOKMARK_TABLE_OTHER_BOOKMARKS_PATH);
400 return; 406 return;
401 } 407 }
402 BuildPath(node->GetParent(), path); 408 BuildPath(node->GetParent(), path);
403 path->append(l10n_util::GetString(IDS_BOOKMARK_TABLE_PATH_SEPARATOR)); 409 path->append(l10n_util::GetString(IDS_BOOKMARK_TABLE_PATH_SEPARATOR));
404 path->append(node->GetTitle()); 410 path->append(node->GetTitle());
405 } 411 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_table_model.h ('k') | chrome/browser/bookmarks/bookmark_table_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698