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

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

Issue 113882: Add a preference to enable/disable ID persistence in bookmark model and... (Closed) Base URL: svn://chrome-svn/chrome/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
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.h ('k') | chrome/browser/bookmarks/bookmark_storage.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_model.h" 5 #include "chrome/browser/bookmarks/bookmark_model.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/gfx/png_decoder.h" 8 #include "base/gfx/png_decoder.h"
9 #include "base/scoped_vector.h" 9 #include "base/scoped_vector.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
11 #include "chrome/browser/bookmarks/bookmark_index.h" 11 #include "chrome/browser/bookmarks/bookmark_index.h"
12 #include "chrome/browser/bookmarks/bookmark_utils.h" 12 #include "chrome/browser/bookmarks/bookmark_utils.h"
13 #include "chrome/browser/bookmarks/bookmark_storage.h" 13 #include "chrome/browser/bookmarks/bookmark_storage.h"
14 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
15 #include "chrome/browser/profile.h" 15 #include "chrome/browser/profile.h"
16 #include "chrome/common/notification_service.h" 16 #include "chrome/common/notification_service.h"
17 #include "chrome/common/pref_service.h"
17 #include "grit/generated_resources.h" 18 #include "grit/generated_resources.h"
18 19
19 using base::Time; 20 using base::Time;
20 21
21 // BookmarkNode --------------------------------------------------------------- 22 // BookmarkNode ---------------------------------------------------------------
22 23
23 BookmarkNode::BookmarkNode(const GURL& url) 24 BookmarkNode::BookmarkNode(const GURL& url)
24 : url_(url) { 25 : url_(url) {
25 Initialize(0); 26 Initialize(0);
26 } 27 }
(...skipping 20 matching lines...) Expand all
47 type_ = entry.type; 48 type_ = entry.type;
48 date_added_ = entry.date_added; 49 date_added_ = entry.date_added;
49 date_group_modified_ = entry.date_group_modified; 50 date_group_modified_ = entry.date_group_modified;
50 SetTitle(entry.title); 51 SetTitle(entry.title);
51 } 52 }
52 53
53 // BookmarkModel -------------------------------------------------------------- 54 // BookmarkModel --------------------------------------------------------------
54 55
55 namespace { 56 namespace {
56 57
58 // Constant for persist IDs prefernece.
59 const wchar_t kPrefPersistIDs[] = L"bookmarks.persist_ids";
60
57 // Comparator used when sorting bookmarks. Folders are sorted first, then 61 // Comparator used when sorting bookmarks. Folders are sorted first, then
58 // bookmarks. 62 // bookmarks.
59 class SortComparator : public std::binary_function<BookmarkNode*, 63 class SortComparator : public std::binary_function<BookmarkNode*,
60 BookmarkNode*, 64 BookmarkNode*,
61 bool> { 65 bool> {
62 public: 66 public:
63 explicit SortComparator(Collator* collator) : collator_(collator) { } 67 explicit SortComparator(Collator* collator) : collator_(collator) { }
64 68
65 // Returns true if lhs preceeds rhs. 69 // Returns true if lhs preceeds rhs.
66 bool operator() (BookmarkNode* n1, BookmarkNode* n2) { 70 bool operator() (BookmarkNode* n1, BookmarkNode* n2) {
(...skipping 10 matching lines...) Expand all
77 81
78 private: 82 private:
79 Collator* collator_; 83 Collator* collator_;
80 }; 84 };
81 85
82 } // namespace 86 } // namespace
83 87
84 BookmarkModel::BookmarkModel(Profile* profile) 88 BookmarkModel::BookmarkModel(Profile* profile)
85 : profile_(profile), 89 : profile_(profile),
86 loaded_(false), 90 loaded_(false),
91 persist_ids_(false),
87 root_(GURL()), 92 root_(GURL()),
88 bookmark_bar_node_(NULL), 93 bookmark_bar_node_(NULL),
89 other_node_(NULL), 94 other_node_(NULL),
90 next_node_id_(1), 95 next_node_id_(1),
91 observers_(ObserverList<BookmarkModelObserver>::NOTIFY_EXISTING_ONLY), 96 observers_(ObserverList<BookmarkModelObserver>::NOTIFY_EXISTING_ONLY),
92 loaded_signal_(TRUE, FALSE) { 97 loaded_signal_(TRUE, FALSE) {
93 if (!profile_) { 98 if (!profile_) {
94 // Profile is null during testing. 99 // Profile is null during testing.
95 DoneLoading(CreateLoadDetails()); 100 DoneLoading(CreateLoadDetails());
96 } 101 }
102 RegisterPreferences();
103 LoadPreferences();
97 } 104 }
98 105
99 BookmarkModel::~BookmarkModel() { 106 BookmarkModel::~BookmarkModel() {
100 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 107 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
101 BookmarkModelBeingDeleted(this)); 108 BookmarkModelBeingDeleted(this));
102 109
103 if (store_) { 110 if (store_) {
104 // The store maintains a reference back to us. We need to tell it we're gone 111 // The store maintains a reference back to us. We need to tell it we're gone
105 // so that it doesn't try and invoke a method back on us again. 112 // so that it doesn't try and invoke a method back on us again.
106 store_->BookmarkModelDeleted(); 113 store_->BookmarkModelDeleted();
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 return; 377 return;
371 378
372 index_->GetBookmarksWithTitlesMatching(text, max_count, matches); 379 index_->GetBookmarksWithTitlesMatching(text, max_count, matches);
373 } 380 }
374 381
375 void BookmarkModel::ClearStore() { 382 void BookmarkModel::ClearStore() {
376 registrar_.RemoveAll(); 383 registrar_.RemoveAll();
377 store_ = NULL; 384 store_ = NULL;
378 } 385 }
379 386
387 void BookmarkModel::SetPersistIDs(bool value) {
388 if (value == persist_ids_)
389 return;
390 persist_ids_ = value;
391 if (profile_) {
392 PrefService* pref_service = profile_->GetPrefs();
393 pref_service->SetBoolean(kPrefPersistIDs, persist_ids_);
394 }
395 }
396
380 bool BookmarkModel::IsBookmarkedNoLock(const GURL& url) { 397 bool BookmarkModel::IsBookmarkedNoLock(const GURL& url) {
381 BookmarkNode tmp_node(url); 398 BookmarkNode tmp_node(url);
382 return (nodes_ordered_by_url_set_.find(&tmp_node) != 399 return (nodes_ordered_by_url_set_.find(&tmp_node) !=
383 nodes_ordered_by_url_set_.end()); 400 nodes_ordered_by_url_set_.end());
384 } 401 }
385 402
386 void BookmarkModel::FavIconLoaded(BookmarkNode* node) { 403 void BookmarkModel::FavIconLoaded(BookmarkNode* node) {
387 // Send out notification to the observer. 404 // Send out notification to the observer.
388 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 405 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
389 BookmarkNodeFavIconLoaded(this, node)); 406 BookmarkNodeFavIconLoaded(this, node));
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 int BookmarkModel::generate_next_node_id() { 699 int BookmarkModel::generate_next_node_id() {
683 return next_node_id_++; 700 return next_node_id_++;
684 } 701 }
685 702
686 BookmarkStorage::LoadDetails* BookmarkModel::CreateLoadDetails() { 703 BookmarkStorage::LoadDetails* BookmarkModel::CreateLoadDetails() {
687 BookmarkNode* bb_node = CreateBookmarkNode(); 704 BookmarkNode* bb_node = CreateBookmarkNode();
688 BookmarkNode* other_folder_node = CreateOtherBookmarksNode(); 705 BookmarkNode* other_folder_node = CreateOtherBookmarksNode();
689 return new BookmarkStorage::LoadDetails( 706 return new BookmarkStorage::LoadDetails(
690 bb_node, other_folder_node, new BookmarkIndex(), next_node_id_); 707 bb_node, other_folder_node, new BookmarkIndex(), next_node_id_);
691 } 708 }
709
710 void BookmarkModel::RegisterPreferences() {
711 if (!profile_)
712 return;
713 PrefService* pref_service = profile_->GetPrefs();
714 if (!pref_service->IsPrefRegistered(kPrefPersistIDs))
715 pref_service->RegisterBooleanPref(kPrefPersistIDs, false);
716 }
717
718 void BookmarkModel::LoadPreferences() {
719 if (!profile_)
720 return;
721 PrefService* pref_service = profile_->GetPrefs();
722 persist_ids_ = pref_service->GetBoolean(kPrefPersistIDs);
723 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.h ('k') | chrome/browser/bookmarks/bookmark_storage.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698