#include "base/prefs/pref_service.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/bookmarks/bookmark_model.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
-#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/history/history_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/bookmarks/bookmark_utils.h"
#include "chrome/browser/ui/views/constrained_window_views.h"
-#include "chrome/common/net/url_fixer_upper.h"
+#include "chrome/grit/generated_resources.h"
+#include "chrome/grit/locale_settings.h"
+#include "components/bookmarks/browser/bookmark_model.h"
+#include "components/bookmarks/browser/bookmark_utils.h"
+#include "components/url_fixer/url_fixer.h"
#include "components/user_prefs/user_prefs.h"
-#include "grit/chromium_strings.h"
-#include "grit/generated_resources.h"
-#include "grit/locale_settings.h"
#include "ui/accessibility/ax_view_state.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/events/event.h"
#include "ui/views/window/dialog_client_view.h"
#include "url/gurl.h"
+using bookmarks::BookmarkExpandedStateTracker;
using views::GridLayout;
namespace {
title_tf_(NULL),
parent_(parent),
details_(details),
+ bb_model_(BookmarkModelFactory::GetForProfile(profile)),
running_menu_for_root_(false),
show_tree_(configuration == SHOW_TREE) {
DCHECK(profile);
+ DCHECK(bb_model_);
+ DCHECK(bb_model_->client()->CanBeEditedByUser(parent));
Init();
}
return true;
}
-gfx::Size BookmarkEditorView::GetPreferredSize() {
+gfx::Size BookmarkEditorView::GetPreferredSize() const {
if (!show_tree_)
return views::View::GetPreferredSize();
if (!node)
return;
if (node->value != 0) {
- const BookmarkNode* b_node = bb_model_->GetNodeByID(node->value);
+ const BookmarkNode* b_node =
+ bookmarks::GetBookmarkNodeByID(bb_model_, node->value);
if (!b_node->empty() &&
!chrome::ConfirmDeleteBookmarkNode(b_node,
GetWidget()->GetNativeWindow())) {
(tree_model_->GetParent(tree_view_->GetSelectedNode()) ==
tree_model_->GetRoot());
- context_menu_runner_.reset(new views::MenuRunner(GetMenuModel()));
+ context_menu_runner_.reset(new views::MenuRunner(
+ GetMenuModel(),
+ views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU));
if (context_menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
- NULL, gfx::Rect(point, gfx::Size()), views::MenuItemView::TOPRIGHT,
- source_type,
- views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPRIGHT,
+ source_type) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
void BookmarkEditorView::Init() {
- bb_model_ = BookmarkModelFactory::GetForProfile(profile_);
- DCHECK(bb_model_);
bb_model_->AddObserver(this);
title_label_ = new views::Label(
Reset();
}
-void BookmarkEditorView::BookmarkNodeRemoved(BookmarkModel* model,
- const BookmarkNode* parent,
- int index,
- const BookmarkNode* node) {
+void BookmarkEditorView::BookmarkNodeRemoved(
+ BookmarkModel* model,
+ const BookmarkNode* parent,
+ int index,
+ const BookmarkNode* node,
+ const std::set<GURL>& removed_urls) {
if ((details_.type == EditDetails::EXISTING_NODE &&
details_.existing_node->HasAncestor(node)) ||
(parent_ && parent_->HasAncestor(node))) {
}
}
-void BookmarkEditorView::BookmarkAllNodesRemoved(BookmarkModel* model) {
+void BookmarkEditorView::BookmarkAllUserNodesRemoved(
+ BookmarkModel* model,
+ const std::set<GURL>& removed_urls) {
Reset();
}
void BookmarkEditorView::BookmarkNodeChildrenReordered(
- BookmarkModel* model, const BookmarkNode* node) {
+ BookmarkModel* model,
+ const BookmarkNode* node) {
Reset();
}
GURL BookmarkEditorView::GetInputURL() const {
if (details_.GetNodeType() == BookmarkNode::FOLDER)
return GURL();
- return URLFixerUpper::FixupURL(
- base::UTF16ToUTF8(url_tf_->text()), std::string());
+ return url_fixer::FixupURL(base::UTF16ToUTF8(url_tf_->text()), std::string());
}
void BookmarkEditorView::UserInputChanged() {
EditorNode* root_node = new EditorNode(base::string16(), 0);
const BookmarkNode* bb_root_node = bb_model_->root_node();
CreateNodes(bb_root_node, root_node);
- DCHECK(root_node->child_count() >= 2 && root_node->child_count() <= 3);
+ DCHECK(root_node->child_count() >= 2 && root_node->child_count() <= 4);
DCHECK_EQ(BookmarkNode::BOOKMARK_BAR, bb_root_node->GetChild(0)->type());
DCHECK_EQ(BookmarkNode::OTHER_NODE, bb_root_node->GetChild(1)->type());
- if (root_node->child_count() == 3)
+ if (root_node->child_count() >= 3)
DCHECK_EQ(BookmarkNode::MOBILE, bb_root_node->GetChild(2)->type());
return root_node;
}
BookmarkEditorView::EditorNode* b_node) {
for (int i = 0; i < bb_node->child_count(); ++i) {
const BookmarkNode* child_bb_node = bb_node->GetChild(i);
- if (child_bb_node->IsVisible() && child_bb_node->is_folder()) {
+ if (child_bb_node->IsVisible() && child_bb_node->is_folder() &&
+ bb_model_->client()->CanBeEditedByUser(child_bb_node)) {
EditorNode* new_b_node = new EditorNode(child_bb_node->GetTitle(),
child_bb_node->id());
b_node->Add(new_b_node, b_node->child_count());
// Remove the folders that were removed. This has to be done after all the
// other changes have been committed.
- bookmark_utils::DeleteBookmarkFolders(bb_model_, deletes_);
+ bookmarks::DeleteBookmarkFolders(bb_model_, deletes_);
}
void BookmarkEditorView::ApplyNameChangesAndCreateNewFolders(
if (!tree_view_->IsExpanded(editor_node))
return;
- if (editor_node->value != 0) // The root is 0
- expanded_nodes->insert(bb_model_->GetNodeByID(editor_node->value));
+ // The root is 0.
+ if (editor_node->value != 0) {
+ expanded_nodes->insert(
+ bookmarks::GetBookmarkNodeByID(bb_model_, editor_node->value));
+ }
+
for (int i = 0; i < editor_node->child_count(); ++i)
UpdateExpandedNodes(editor_node->GetChild(i), expanded_nodes);
}