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

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

Issue 6799017: Changes 'Open all' bookmarks to not recurse through nested folders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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_utils.cc
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc
index 2709a27e8fd928b1990f7492a3f95d146bf6e551..aa25b63b8bc4c2c36126702e1e9ae25e924f7829 100644
--- a/chrome/browser/bookmarks/bookmark_utils.cc
+++ b/chrome/browser/bookmarks/bookmark_utils.cc
@@ -14,9 +14,6 @@
#include "base/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model.h"
#include "chrome/browser/bookmarks/bookmark_node_data.h"
-#if defined(OS_MACOSX)
-#include "chrome/browser/bookmarks/bookmark_pasteboard_helper_mac.h"
-#endif
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/history/query_parser.h"
@@ -36,13 +33,19 @@
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/models/tree_node_iterator.h"
+#if defined(OS_MACOSX)
+#include "chrome/browser/bookmarks/bookmark_pasteboard_helper_mac.h"
+#endif
+
#if defined(TOOLKIT_VIEWS)
#include "ui/base/dragdrop/os_exchange_data.h"
#include "views/drag_utils.h"
#include "views/events/event.h"
#include "views/widget/native_widget.h"
#include "views/widget/widget.h"
-#elif defined(TOOLKIT_GTK)
+#endif
+
+#if defined(TOOLKIT_GTK)
#include "chrome/browser/ui/gtk/custom_drag.h"
#endif
@@ -69,7 +72,7 @@ class NewBrowserPageNavigator : public PageNavigator {
virtual void OpenURL(const GURL& url,
const GURL& referrer,
WindowOpenDisposition disposition,
- PageTransition::Type transition) {
+ PageTransition::Type transition) OVERRIDE {
if (!browser_) {
Profile* profile = (disposition == OFF_THE_RECORD) ?
profile_->GetOffTheRecordProfile() : profile_;
@@ -102,25 +105,23 @@ void CloneBookmarkNodeImpl(BookmarkModel* model,
}
}
-// Returns the number of descendants of node that are of type url.
-int DescendantURLCount(const BookmarkNode* node) {
+// Returns the number of children of |node| that are of type url.
+int ChildURLCount(const BookmarkNode* node) {
int result = 0;
for (int i = 0; i < node->child_count(); ++i) {
const BookmarkNode* child = node->GetChild(i);
if (child->is_url())
result++;
- else
- result += DescendantURLCount(child);
}
return result;
}
-// Implementation of OpenAll. Opens all nodes of type URL and recurses for
-// folders. |navigator| is the PageNavigator used to open URLs. After the first
-// url is opened |opened_url| is set to true and |navigator| is set to the
-// PageNavigator of the last active tab. This is done to handle a window
-// disposition of new window, in which case we want subsequent tabs to open in
-// that window.
+// Implementation of OpenAll. Opens all nodes of type URL and any children of
+// |node| that are of type URL. |navigator| is the PageNavigator used to open
+// URLs. After the first url is opened |opened_url| is set to true and
+// |navigator| is set to the PageNavigator of the last active tab. This is done
+// to handle a window disposition of new window, in which case we want
+// subsequent tabs to open in that window.
void OpenAllImpl(const BookmarkNode* node,
WindowOpenDisposition initial_disposition,
PageNavigator** navigator,
@@ -146,25 +147,26 @@ void OpenAllImpl(const BookmarkNode* node,
} // else, new_browser == NULL, which happens during testing.
}
} else {
- // Folder, recurse through children.
+ // For folders only open direct children.
for (int i = 0; i < node->child_count(); ++i) {
- OpenAllImpl(node->GetChild(i), initial_disposition, navigator,
- opened_url);
+ const BookmarkNode* child_node = node->GetChild(i);
+ if (child_node->is_url())
+ OpenAllImpl(child_node, initial_disposition, navigator, opened_url);
}
}
}
bool ShouldOpenAll(gfx::NativeWindow parent,
const std::vector<const BookmarkNode*>& nodes) {
- int descendant_count = 0;
+ int child_count = 0;
for (size_t i = 0; i < nodes.size(); ++i)
- descendant_count += DescendantURLCount(nodes[i]);
- if (descendant_count < bookmark_utils::num_urls_before_prompting)
+ child_count += ChildURLCount(nodes[i]);
+ if (child_count < bookmark_utils::num_urls_before_prompting)
return true;
string16 message = l10n_util::GetStringFUTF16(
IDS_BOOKMARK_BAR_SHOULD_OPEN_ALL,
- base::IntToString16(descendant_count));
+ base::IntToString16(child_count));
string16 title = l10n_util::GetStringUTF16(IDS_PRODUCT_NAME);
return platform_util::SimpleYesNoBox(parent, title, message);
}
« no previous file with comments | « chrome/browser/bookmarks/bookmark_utils.h ('k') | chrome/browser/ui/views/bookmarks/bookmark_context_menu_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698