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

Unified Diff: chrome/browser/bookmarks/bookmark_model.cc

Issue 8772064: Adds back BookmarkNode::IsVisible. Turns out we want to conditionally (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tweaks Created 9 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.h ('k') | chrome/browser/bookmarks/bookmark_model_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/bookmarks/bookmark_model.cc
diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc
index c45f87b477a231f33af81dd4131213611af9d2ab..b0dfadab951d836ec70173603f1d30baafe0dbd5 100644
--- a/chrome/browser/bookmarks/bookmark_model.cc
+++ b/chrome/browser/bookmarks/bookmark_model.cc
@@ -55,6 +55,10 @@ BookmarkNode::BookmarkNode(int64 id, const GURL& url)
BookmarkNode::~BookmarkNode() {
}
+bool BookmarkNode::IsVisible() const {
+ return true;
+}
+
void BookmarkNode::Initialize(int64 id) {
id_ = id;
type_ = url_.is_empty() ? FOLDER : URL;
@@ -68,8 +72,6 @@ void BookmarkNode::InvalidateFavicon() {
is_favicon_loaded_ = false;
}
-// BookmarkModel --------------------------------------------------------------
-
namespace {
// Comparator used when sorting bookmarks. Folders are sorted first, then
@@ -97,8 +99,40 @@ class SortComparator : public std::binary_function<const BookmarkNode*,
icu::Collator* collator_;
};
+// MobileNode ------------------------------------------------------------------
+
+// The visibility of the mobile node changes based on sync state, requiring a
+// special subclass.
+class MobileNode : public BookmarkNode {
+ public:
+ explicit MobileNode(int64 id);
+ virtual ~MobileNode();
+
+ // BookmarkNode overrides:
+ virtual bool IsVisible() const OVERRIDE;
+
+ private:
+ bool visible_;
+
+ DISALLOW_COPY_AND_ASSIGN(MobileNode);
+};
+
+MobileNode::MobileNode(int64 id)
+ : BookmarkNode(id, GURL()),
+ visible_(false) {
+}
+
+MobileNode::~MobileNode() {
+}
+
+bool MobileNode::IsVisible() const {
+ return visible_ || !empty();
+}
+
} // namespace
+// BookmarkModel --------------------------------------------------------------
+
BookmarkModel::BookmarkModel(Profile* profile)
: profile_(profile),
loaded_(false),
@@ -703,17 +737,23 @@ BookmarkNode* BookmarkModel::CreatePermanentNode(BookmarkNode::Type type) {
DCHECK(type == BookmarkNode::BOOKMARK_BAR ||
type == BookmarkNode::OTHER_NODE ||
type == BookmarkNode::MOBILE);
- BookmarkNode* node = new BookmarkNode(generate_next_node_id(), GURL());
- node->set_type(type);
- if (type == BookmarkNode::BOOKMARK_BAR) {
- node->set_title(l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_FOLDER_NAME));
- } else if (type == BookmarkNode::OTHER_NODE) {
- node->set_title(
- l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME));
- } else {
+ BookmarkNode* node;
+ if (type == BookmarkNode::MOBILE) {
+ node = new MobileNode(generate_next_node_id());
node->set_title(
l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME));
+ } else {
+ node = new BookmarkNode(generate_next_node_id(), GURL());
+ if (type == BookmarkNode::BOOKMARK_BAR) {
+ node->set_title(l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_FOLDER_NAME));
+ } else if (type == BookmarkNode::OTHER_NODE) {
+ node->set_title(
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME));
+ } else {
+ NOTREACHED();
+ }
}
+ node->set_type(type);
return node;
}
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.h ('k') | chrome/browser/bookmarks/bookmark_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698