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

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

Issue 1730015: Windows/Views: delete native bookmark manager code. (Closed)
Patch Set: Patch with fixed file perms. Created 10 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/bookmarks/bookmark_folder_tree_model.cc
diff --git a/chrome/browser/bookmarks/bookmark_folder_tree_model.cc b/chrome/browser/bookmarks/bookmark_folder_tree_model.cc
deleted file mode 100644
index e8b3827e29df5ef975ab0b72905cb10162e8a314..0000000000000000000000000000000000000000
--- a/chrome/browser/bookmarks/bookmark_folder_tree_model.cc
+++ /dev/null
@@ -1,236 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/bookmarks/bookmark_folder_tree_model.h"
-
-#include "app/l10n_util.h"
-#include "app/resource_bundle.h"
-#include "chrome/browser/bookmarks/bookmark_model.h"
-#include "grit/generated_resources.h"
-#include "grit/theme_resources.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-
-BookmarkFolderTreeModel::BookmarkFolderTreeModel(BookmarkModel* model)
- : TreeNodeModel<FolderNode>(new FolderNode(NULL)),
- model_(model),
- recently_bookmarked_node_(new FolderNode(NULL)),
- search_node_(new FolderNode(NULL)) {
- recently_bookmarked_node_->SetTitle(
- l10n_util::GetString(IDS_BOOKMARK_TREE_RECENTLY_BOOKMARKED_NODE_TITLE));
- search_node_->SetTitle(
- l10n_util::GetString(IDS_BOOKMARK_TREE_SEARCH_NODE_TITLE));
- if (model_->IsLoaded())
- AddRootChildren();
- model_->AddObserver(this);
-}
-
-BookmarkFolderTreeModel::~BookmarkFolderTreeModel() {
- if (model_)
- model_->RemoveObserver(this);
-}
-
-BookmarkFolderTreeModel::NodeType BookmarkFolderTreeModel::GetNodeType(
- TreeModelNode* node) {
- if (node == recently_bookmarked_node_)
- return RECENTLY_BOOKMARKED;
- if (node == search_node_)
- return SEARCH;
- if (node == GetRoot())
- return NONE;
- return BOOKMARK;
-}
-
-FolderNode* BookmarkFolderTreeModel::GetFolderNodeForBookmarkNode(
- const BookmarkNode* node) {
- if (!node->is_folder())
- return NULL;
-
- return GetFolderNodeForBookmarkNode(AsNode(GetRoot()), node);
-}
-
-const BookmarkNode* BookmarkFolderTreeModel::TreeNodeAsBookmarkNode(
- TreeModelNode* node) {
- if (GetNodeType(node) != BOOKMARK)
- return NULL;
- return AsNode(node)->value;
-}
-
-void BookmarkFolderTreeModel::Loaded(BookmarkModel* model) {
- AddRootChildren();
-}
-
-void BookmarkFolderTreeModel::BookmarkModelBeingDeleted(BookmarkModel* model) {
- DCHECK(model_);
- model_->RemoveObserver(this);
- model_ = NULL;
-}
-
-void BookmarkFolderTreeModel::BookmarkNodeMoved(BookmarkModel* model,
- const BookmarkNode* old_parent,
- int old_index,
- const BookmarkNode* new_parent,
- int new_index) {
- const BookmarkNode* moved_node = new_parent->GetChild(new_index);
- if (!moved_node->is_folder())
- return; // We're only showing folders, so we can ignore this.
-
- FolderNode* moved_folder_node = GetFolderNodeForBookmarkNode(moved_node);
- DCHECK(moved_folder_node);
- int old_folder_index =
- moved_folder_node->GetParent()->IndexOfChild(moved_folder_node);
- Remove(moved_folder_node->GetParent(), old_folder_index);
- int new_folder_index = CalculateIndexForChild(moved_node);
- Add(GetFolderNodeForBookmarkNode(new_parent), new_folder_index,
- moved_folder_node);
-}
-
-void BookmarkFolderTreeModel::BookmarkNodeAdded(BookmarkModel* model,
- const BookmarkNode* parent,
- int index) {
- const BookmarkNode* new_node = parent->GetChild(index);
- if (!new_node->is_folder())
- return; // We're only showing folders, so we can ignore this.
-
- int folder_index = CalculateIndexForChild(new_node);
- Add(GetFolderNodeForBookmarkNode(parent), folder_index,
- CreateFolderNode(new_node));
-}
-
-void BookmarkFolderTreeModel::BookmarkNodeRemoved(BookmarkModel* model,
- const BookmarkNode* parent,
- int index,
- const BookmarkNode* node) {
- if (!node->is_folder())
- return; // We're only showing folders.
-
- FolderNode* folder_node = GetFolderNodeForBookmarkNode(parent);
- DCHECK(folder_node);
- for (int i = 0; i < folder_node->GetChildCount(); ++i) {
- if (folder_node->GetChild(i)->value == node) {
- scoped_ptr<FolderNode> removed_node(Remove(folder_node, i));
- return;
- }
- }
-
- // If we get here it means a folder was removed that we didn't know about,
- // which shouldn't happen.
- NOTREACHED();
-}
-
-void BookmarkFolderTreeModel::BookmarkNodeChanged(BookmarkModel* model,
- const BookmarkNode* node) {
- if (!node->is_folder())
- return;
-
- FolderNode* folder_node = GetFolderNodeForBookmarkNode(node);
- if (!folder_node)
- return;
-
- folder_node->SetTitle(node->GetTitle());
- FOR_EACH_OBSERVER(TreeModelObserver,
- observer_list(),
- TreeNodeChanged(this, folder_node));
-}
-
-void BookmarkFolderTreeModel::BookmarkNodeChildrenReordered(
- BookmarkModel* model,
- const BookmarkNode* node) {
- FolderNode* folder_node = GetFolderNodeForBookmarkNode(node);
- DCHECK(folder_node);
- if (folder_node->GetChildCount() <= 1)
- return; // Order won't have changed if 1 or fewer nodes.
-
- // Build a map between folder node and bookmark node.
- std::map<const BookmarkNode*, FolderNode*> bn_to_folder;
- for (int i = 0; i < folder_node->GetChildCount(); ++i)
- bn_to_folder[folder_node->GetChild(i)->value] = folder_node->GetChild(i);
-
- // Remove all the folder nodes.
- int original_count = folder_node->GetChildCount();
- folder_node->RemoveAll();
-
- // And add them back in the new order.
- for (int i = 0; i < node->GetChildCount(); ++i) {
- const BookmarkNode* child = node->GetChild(i);
- if (child->is_folder()) {
- DCHECK(bn_to_folder.find(child) != bn_to_folder.end());
- folder_node->Add(folder_node->GetChildCount(), bn_to_folder[child]);
- }
- }
- // The new count better match the original count, otherwise we're leaking and
- // treeview is likely to get way out of sync.
- DCHECK(original_count == folder_node->GetChildCount());
-
- // Finally, notify observers.
- FOR_EACH_OBSERVER(TreeModelObserver,
- observer_list(),
- TreeNodeChildrenReordered(this, folder_node));
-}
-
-void BookmarkFolderTreeModel::GetIcons(std::vector<SkBitmap>* icons) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- icons->push_back(*rb.GetBitmapNamed(IDR_BOOKMARK_MANAGER_RECENT_ICON));
- icons->push_back(*rb.GetBitmapNamed(IDR_BOOKMARK_MANAGER_SEARCH_ICON));
-}
-
-int BookmarkFolderTreeModel::GetIconIndex(TreeModelNode* node) {
- if (node == recently_bookmarked_node_)
- return 0;
- if (node == search_node_)
- return 1;
-
- // Return -1 to use the default.
- return -1;
-}
-
-void BookmarkFolderTreeModel::AddRootChildren() {
- Add(AsNode(GetRoot()), 0, CreateFolderNode(model_->GetBookmarkBarNode()));
- Add(AsNode(GetRoot()), 1, CreateFolderNode(model_->other_node()));
- Add(AsNode(GetRoot()), 2, recently_bookmarked_node_);
- Add(AsNode(GetRoot()), 3, search_node_);
-}
-
-FolderNode* BookmarkFolderTreeModel::GetFolderNodeForBookmarkNode(
- FolderNode* folder_node,
- const BookmarkNode* node) {
- DCHECK(node->is_folder());
- if (folder_node->value == node)
- return folder_node;
- for (int i = 0; i < folder_node->GetChildCount(); ++i) {
- FolderNode* result =
- GetFolderNodeForBookmarkNode(folder_node->GetChild(i), node);
- if (result)
- return result;
- }
- return NULL;
-}
-
-FolderNode* BookmarkFolderTreeModel::CreateFolderNode(
- const BookmarkNode* node) {
- DCHECK(node->is_folder());
- FolderNode* folder_node = new FolderNode(node);
- folder_node->SetTitle(node->GetTitle());
-
- // And clone the children folders.
- for (int i = 0; i < node->GetChildCount(); ++i) {
- const BookmarkNode* child = node->GetChild(i);
- if (child->is_folder())
- folder_node->Add(folder_node->GetChildCount(), CreateFolderNode(child));
- }
- return folder_node;
-}
-
-int BookmarkFolderTreeModel::CalculateIndexForChild(const BookmarkNode* node) {
- const BookmarkNode* parent = node->GetParent();
- DCHECK(parent);
- for (int i = 0, folder_count = 0; i < parent->GetChildCount(); ++i) {
- const BookmarkNode* child = parent->GetChild(i);
- if (child == node)
- return folder_count;
- if (child->is_folder())
- folder_count++;
- }
- NOTREACHED();
- return 0;
-}
« no previous file with comments | « chrome/browser/bookmarks/bookmark_folder_tree_model.h ('k') | chrome/browser/bookmarks/bookmark_folder_tree_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698