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

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

Issue 8273041: Permanent folders changes (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: "Post-review changes." Created 9 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 | 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 #ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ 5 #ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_
6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ 6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 favicon_load_handle_ = handle; 108 favicon_load_handle_ = handle;
109 } 109 }
110 110
111 // Accessor method for controlling the visibility of a bookmark node/sub-tree. 111 // Accessor method for controlling the visibility of a bookmark node/sub-tree.
112 // Note that visibility is not propagated down the tree hierarchy so if a 112 // Note that visibility is not propagated down the tree hierarchy so if a
113 // parent node is marked as invisible, a child node may return "Visible". This 113 // parent node is marked as invisible, a child node may return "Visible". This
114 // function is primarily useful when traversing the model to generate a UI 114 // function is primarily useful when traversing the model to generate a UI
115 // representation but we may want to suppress some nodes. 115 // representation but we may want to suppress some nodes.
116 // TODO(yfriedman): Remove this when enable-synced-bookmarks-folder is 116 // TODO(yfriedman): Remove this when enable-synced-bookmarks-folder is
117 // no longer a command line flag. 117 // no longer a command line flag.
118 bool IsVisible() const; 118 virtual bool IsVisible() const;
119 119
120 // TODO(sky): Consider adding last visit time here, it'll greatly simplify 120 // TODO(sky): Consider adding last visit time here, it'll greatly simplify
121 // HistoryContentsProvider. 121 // HistoryContentsProvider.
122 122
123 private: 123 private:
124 friend class BookmarkModel; 124 friend class BookmarkModel;
125 125
126 // A helper function to initialize various fields during construction. 126 // A helper function to initialize various fields during construction.
127 void Initialize(int64 id); 127 void Initialize(int64 id);
128 128
(...skipping 22 matching lines...) Expand all
151 // Whether the favicon has been loaded. 151 // Whether the favicon has been loaded.
152 bool is_favicon_loaded_; 152 bool is_favicon_loaded_;
153 153
154 // If non-zero, it indicates we're loading the favicon and this is the handle 154 // If non-zero, it indicates we're loading the favicon and this is the handle
155 // from the HistoryService. 155 // from the HistoryService.
156 HistoryService::Handle favicon_load_handle_; 156 HistoryService::Handle favicon_load_handle_;
157 157
158 DISALLOW_COPY_AND_ASSIGN(BookmarkNode); 158 DISALLOW_COPY_AND_ASSIGN(BookmarkNode);
159 }; 159 };
160 160
161 // BookmarkPermanentNode ------------------------------------------------------
162
163 // The permanent nodes are the three special top level nodes "bookmark_bar",
164 // "synced" and "other". Their visibility is dependent on information from the
165 // profile, hence this special subclass to accomodate them.
166 class BookmarkPermanentNode : public BookmarkNode {
167 public:
168 // Creates a new node with |id| and |url|.
169 BookmarkPermanentNode(int64 id, const GURL& url, Profile* profile);
170
171 virtual ~BookmarkPermanentNode();
172 virtual bool IsVisible() const;
173
174 private:
175 Profile* profile_;
176
177 DISALLOW_COPY_AND_ASSIGN(BookmarkPermanentNode);
178 };
179
161 // BookmarkModel -------------------------------------------------------------- 180 // BookmarkModel --------------------------------------------------------------
162 181
163 // BookmarkModel provides a directed acyclic graph of URLs and folders. 182 // BookmarkModel provides a directed acyclic graph of URLs and folders.
164 // Three graphs are provided for the three entry points: those on the 'bookmarks 183 // Three graphs are provided for the three entry points: those on the 'bookmarks
165 // bar', those in the 'other bookmarks' folder and those in the 'synced' folder. 184 // bar', those in the 'other bookmarks' folder and those in the 'synced' folder.
166 // 185 //
167 // An observer may be attached to observe relevant events. 186 // An observer may be attached to observe relevant events.
168 // 187 //
169 // You should NOT directly create a BookmarkModel, instead go through the 188 // You should NOT directly create a BookmarkModel, instead go through the
170 // Profile. 189 // Profile.
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 scoped_ptr<BookmarkIndex> index_; 473 scoped_ptr<BookmarkIndex> index_;
455 474
456 base::WaitableEvent loaded_signal_; 475 base::WaitableEvent loaded_signal_;
457 476
458 scoped_ptr<BookmarkExpandedStateTracker> expanded_state_tracker_; 477 scoped_ptr<BookmarkExpandedStateTracker> expanded_state_tracker_;
459 478
460 DISALLOW_COPY_AND_ASSIGN(BookmarkModel); 479 DISALLOW_COPY_AND_ASSIGN(BookmarkModel);
461 }; 480 };
462 481
463 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ 482 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/bookmarks/bookmark_model.cc » ('j') | chrome/browser/bookmarks/bookmark_model.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698