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

Unified Diff: chrome/browser/resources/md_bookmarks/store.js

Issue 2668693007: [MD Bookmarks] Double Click (Closed)
Patch Set: renaming Created 3 years, 11 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
« no previous file with comments | « chrome/browser/resources/md_bookmarks/item.js ('k') | chrome/common/extensions/api/_api_features.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/md_bookmarks/store.js
diff --git a/chrome/browser/resources/md_bookmarks/store.js b/chrome/browser/resources/md_bookmarks/store.js
index 16a22a44ddb95fbbe919a4f34491a7938e48318c..5c2718aa8ada50dc8589b61dca479afe2c03bd39 100644
--- a/chrome/browser/resources/md_bookmarks/store.js
+++ b/chrome/browser/resources/md_bookmarks/store.js
@@ -45,6 +45,9 @@ var BookmarksStore = Polymer({
/** @type {Set<string>} */
searchResultSet_: Object,
+
+ /** @type {Set<number>} */
+ selectedIndexSet_: Object,
},
/** @private {Object} */
@@ -54,6 +57,7 @@ var BookmarksStore = Polymer({
attached: function() {
this.documentListeners_ = {
'folder-open-changed': this.onFolderOpenChanged_.bind(this),
+ 'open-item': this.onItemOpened_.bind(this),
'search-term-changed': this.onSearchTermChanged_.bind(this),
'select-item': this.onItemSelected_.bind(this),
'selected-folder-changed': this.onSelectedFolderChanged_.bind(this),
@@ -92,6 +96,7 @@ var BookmarksStore = Polymer({
this.rootNode = rootNode;
this.idToNodeMap_ = {};
this.rootNode.path = 'rootNode';
+ this.selectedIndexSet_ = new Set();
BookmarksStore.generatePaths(rootNode, 0);
BookmarksStore.initNodes(this.rootNode, this.idToNodeMap_);
@@ -187,6 +192,8 @@ var BookmarksStore = Polymer({
if (!this.displayedList)
return;
+ this.selectedIndexSet_.clear();
+
for (var i = 0; i < this.displayedList.length; i++) {
if (!this.displayedList[i].isSelectedItem)
continue;
@@ -250,8 +257,10 @@ var BookmarksStore = Polymer({
startIndex = Math.min(this.anchorIndex_, selectedIndex);
endIndex = Math.max(this.anchorIndex_, selectedIndex);
}
- for (var i = startIndex; i <= endIndex; i++)
+ for (var i = startIndex; i <= endIndex; i++) {
this.set('displayedList.#' + i + '.isSelectedItem', true);
+ this.selectedIndexSet_.add(i);
+ }
},
/**
@@ -262,6 +271,7 @@ var BookmarksStore = Polymer({
selectItem_: function(item) {
this.anchorIndex_ = this.getIndexInList_(item);
this.set('displayedList.#' + this.anchorIndex_ + '.isSelectedItem', true);
+ this.selectedIndexSet_.add(this.anchorIndex_);
},
//////////////////////////////////////////////////////////////////////////////
@@ -360,9 +370,19 @@ var BookmarksStore = Polymer({
if (!this.idToNodeMap_[id] || this.idToNodeMap_[id].url)
id = this.rootNode.children[0].id;
- var newFolder = this.idToNodeMap_[id];
- this.set(newFolder.path + '.isSelectedFolder', true);
+ var folder = this.idToNodeMap_[id];
+ this.set(folder.path + '.isSelectedFolder', true);
this.selectedId = id;
+ while (folder.parentId) {
+ folder = this.idToNodeMap_[folder.parentId];
+ if (folder.isOpen)
+ continue;
+
+ this.fire('folder-open-changed', {
+ id: folder.id,
+ open: true,
+ });
+ }
},
/**
@@ -391,6 +411,28 @@ var BookmarksStore = Polymer({
else
this.selectItem_(e.detail.item);
},
+
+ /**
+ * @param {CustomEvent} e
+ * @private
+ */
+ onItemOpened_: function(e) {
+ if (this.selectedIndexSet_.size == 1) {
+ var item = /** BookmarkTreeNode */ (e.detail);
+ // do the single event here
+ if (!item.url)
+ this.fire('selected-folder-changed', item.id);
+ else
+ chrome.tabs.create({url: item.url});
+ } else {
+ for (let index of this.selectedIndexSet_) {
tsergeant 2017/02/02 02:02:38 Chris and I just tried the old bookmark manager an
jiaxi 2017/02/02 03:07:03 Done.
+ if (!this.displayedList[index].url)
+ continue;
+
+ chrome.tabs.create({url: this.displayedList[index].url});
+ }
+ }
+ },
});
////////////////////////////////////////////////////////////////////////////////
« no previous file with comments | « chrome/browser/resources/md_bookmarks/item.js ('k') | chrome/common/extensions/api/_api_features.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698