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

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

Issue 118150: Linux bookmark manager first cut. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: 1 more file 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 | « no previous file | chrome/browser/bookmarks/bookmark_manager.h » ('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) 2009 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_context_menu.h" 5 #include "chrome/browser/bookmarks/bookmark_context_menu.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "chrome/browser/bookmarks/bookmark_editor.h" 9 #include "chrome/browser/bookmarks/bookmark_editor.h"
10 #include "chrome/browser/bookmarks/bookmark_manager.h"
10 #include "chrome/browser/bookmarks/bookmark_model.h" 11 #include "chrome/browser/bookmarks/bookmark_model.h"
11 #include "chrome/browser/bookmarks/bookmark_utils.h" 12 #include "chrome/browser/bookmarks/bookmark_utils.h"
12 #include "chrome/browser/browser.h" 13 #include "chrome/browser/browser.h"
13 #include "chrome/browser/browser_list.h" 14 #include "chrome/browser/browser_list.h"
14 #include "chrome/browser/input_window_dialog.h" 15 #include "chrome/browser/input_window_dialog.h"
15 #include "chrome/browser/metrics/user_metrics.h" 16 #include "chrome/browser/metrics/user_metrics.h"
16 #include "chrome/browser/profile.h" 17 #include "chrome/browser/profile.h"
17 #include "chrome/browser/tab_contents/page_navigator.h" 18 #include "chrome/browser/tab_contents/page_navigator.h"
18 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
19 #include "chrome/common/pref_service.h" 20 #include "chrome/common/pref_service.h"
20 #include "grit/generated_resources.h" 21 #include "grit/generated_resources.h"
21 22
22 // TODO(port): Port these files. 23 // TODO(port): Port these files.
23 #if defined(OS_WIN) 24 #if defined(OS_WIN)
24 #include "chrome/browser/tab_contents/tab_contents.h" 25 #include "chrome/browser/tab_contents/tab_contents.h"
25 #include "chrome/browser/views/bookmark_manager_view.h"
26 #include "views/window/window.h" 26 #include "views/window/window.h"
27 #endif 27 #endif
28 28
29 namespace { 29 namespace {
30 30
31 // Returns true if the specified node is of type URL, or has a descendant 31 // Returns true if the specified node is of type URL, or has a descendant
32 // of type URL. 32 // of type URL.
33 bool NodeHasURLs(BookmarkNode* node) { 33 bool NodeHasURLs(BookmarkNode* node) {
34 if (node->is_url()) 34 if (node->is_url())
35 return true; 35 return true;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 // InputWindowDialog::Delegate methods. 99 // InputWindowDialog::Delegate methods.
100 virtual bool IsValid(const std::wstring& text) { 100 virtual bool IsValid(const std::wstring& text) {
101 return !text.empty(); 101 return !text.empty();
102 } 102 }
103 103
104 virtual void InputAccepted(const std::wstring& text) { 104 virtual void InputAccepted(const std::wstring& text) {
105 if (is_new_) { 105 if (is_new_) {
106 ALLOW_UNUSED BookmarkNode* node = 106 ALLOW_UNUSED BookmarkNode* node =
107 model_->AddGroup(node_, node_->GetChildCount(), text); 107 model_->AddGroup(node_, node_->GetChildCount(), text);
108 if (show_in_manager_) { 108 if (show_in_manager_) {
109 #if defined(OS_WIN) 109 #if defined(OS_WIN) || defined(OS_LINUX)
110 BookmarkManagerView* manager = BookmarkManagerView::current(); 110 BookmarkManager::SelectInTree(profile_, node);
111 if (manager && manager->profile() == profile_)
112 manager->SelectInTree(node);
113 #else 111 #else
114 NOTIMPLEMENTED() << "BookmarkManagerView not yet implemented"; 112 NOTIMPLEMENTED() << "BookmarkManager not yet implemented";
115 #endif 113 #endif
116 } 114 }
117 } else { 115 } else {
118 model_->SetTitle(node_, text); 116 model_->SetTitle(node_, text);
119 } 117 }
120 } 118 }
121 119
122 virtual void InputCanceled() { 120 virtual void InputCanceled() {
123 } 121 }
124 122
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 // SelectOnCreationHandler ---------------------------------------------------- 186 // SelectOnCreationHandler ----------------------------------------------------
189 187
190 // Used when adding a new bookmark. If a new bookmark is created it is selected 188 // Used when adding a new bookmark. If a new bookmark is created it is selected
191 // in the bookmark manager. 189 // in the bookmark manager.
192 class SelectOnCreationHandler : public BookmarkEditor::Handler { 190 class SelectOnCreationHandler : public BookmarkEditor::Handler {
193 public: 191 public:
194 explicit SelectOnCreationHandler(Profile* profile) : profile_(profile) { 192 explicit SelectOnCreationHandler(Profile* profile) : profile_(profile) {
195 } 193 }
196 194
197 virtual void NodeCreated(BookmarkNode* new_node) { 195 virtual void NodeCreated(BookmarkNode* new_node) {
198 BookmarkManagerView* manager = BookmarkManagerView::current(); 196 BookmarkManager::SelectInTree(profile_, new_node);
199 if (!manager || manager->profile() != profile_)
200 return; // Manager no longer showing, or showing a different profile.
201
202 manager->SelectInTree(new_node);
203 } 197 }
204 198
205 private: 199 private:
206 Profile* profile_; 200 Profile* profile_;
207 201
208 DISALLOW_COPY_AND_ASSIGN(SelectOnCreationHandler); 202 DISALLOW_COPY_AND_ASSIGN(SelectOnCreationHandler);
209 }; 203 };
210 #endif // #if defined(OS_WIN) 204 #endif // #if defined(OS_WIN)
211 205
212 } // namespace 206 } // namespace
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 case IDS_BOOKMARK_BAR_RENAME_FOLDER: 323 case IDS_BOOKMARK_BAR_RENAME_FOLDER:
330 case IDS_BOOKMARK_BAR_EDIT: 324 case IDS_BOOKMARK_BAR_EDIT:
331 UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_Edit", profile_); 325 UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_Edit", profile_);
332 326
333 if (selection_.size() != 1) { 327 if (selection_.size() != 1) {
334 NOTREACHED(); 328 NOTREACHED();
335 return; 329 return;
336 } 330 }
337 331
338 if (selection_[0]->is_url()) { 332 if (selection_[0]->is_url()) {
339 #if defined(OS_WIN) 333 #if defined(OS_WIN) || defined(OS_LINUX)
340 BookmarkEditor::Configuration editor_config; 334 BookmarkEditor::Configuration editor_config;
341 if (configuration_ == BOOKMARK_BAR) 335 if (configuration_ == BOOKMARK_BAR)
342 editor_config = BookmarkEditor::SHOW_TREE; 336 editor_config = BookmarkEditor::SHOW_TREE;
343 else 337 else
344 editor_config = BookmarkEditor::NO_TREE; 338 editor_config = BookmarkEditor::NO_TREE;
345 BookmarkEditor::Show(wnd_, profile_, NULL, selection_[0], 339 BookmarkEditor::Show(wnd_, profile_, NULL, selection_[0],
346 editor_config, NULL); 340 editor_config, NULL);
347 #else 341 #else
348 NOTIMPLEMENTED(); 342 NOTIMPLEMENTED();
349 #endif 343 #endif
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 394
401 case IDS_BOOKMARK_MANAGER_SHOW_IN_FOLDER: 395 case IDS_BOOKMARK_MANAGER_SHOW_IN_FOLDER:
402 UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_ShowInFolder", 396 UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_ShowInFolder",
403 profile_); 397 profile_);
404 398
405 if (selection_.size() != 1) { 399 if (selection_.size() != 1) {
406 NOTREACHED(); 400 NOTREACHED();
407 return; 401 return;
408 } 402 }
409 403
410 #if defined(OS_WIN) 404 #if defined(OS_WIN) || defined(OS_LINUX)
411 if (BookmarkManagerView::current()) 405 BookmarkManager::SelectInTree(profile_, selection_[0]);
412 BookmarkManagerView::current()->SelectInTree(selection_[0]);
413 #else 406 #else
414 NOTIMPLEMENTED() << "Bookmark Manager not implemented"; 407 NOTIMPLEMENTED() << "Bookmark Manager not implemented";
415 #endif 408 #endif
416 break; 409 break;
417 410
418 case IDS_BOOKMARK_MANAGER: 411 case IDS_BOOKMARK_MANAGER:
419 UserMetrics::RecordAction(L"ShowBookmarkManager", profile_); 412 UserMetrics::RecordAction(L"ShowBookmarkManager", profile_);
420 #if defined(OS_WIN) 413 #if defined(OS_WIN) || defined(OS_LINUX)
421 BookmarkManagerView::Show(profile_); 414 BookmarkManager::Show(profile_);
422 #else 415 #else
423 NOTIMPLEMENTED() << "Bookmark Manager not implemented"; 416 NOTIMPLEMENTED() << "Bookmark Manager not implemented";
424 #endif 417 #endif
425 break; 418 break;
426 419
427 case IDS_BOOKMARK_MANAGER_SORT: 420 case IDS_BOOKMARK_MANAGER_SORT:
428 UserMetrics::RecordAction(L"BookmarkManager_Sort", profile_); 421 UserMetrics::RecordAction(L"BookmarkManager_Sort", profile_);
429 model_->SortChildren(parent_); 422 model_->SortChildren(parent_);
430 break; 423 break;
431 424
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 if (NodeHasURLs(selection_[i])) 548 if (NodeHasURLs(selection_[i]))
556 return true; 549 return true;
557 } 550 }
558 return false; 551 return false;
559 } 552 }
560 553
561 BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const { 554 BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const {
562 return (selection_.size() == 1 && selection_[0]->is_folder()) ? 555 return (selection_.size() == 1 && selection_[0]->is_folder()) ?
563 selection_[0] : parent_; 556 selection_[0] : parent_;
564 } 557 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/bookmarks/bookmark_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698