Open bookmarks in a folder as tabs when a folder is dragged and dropped onto the tab bar.
The feature did not work on lately Firefox, like Firefox 45.0a1.
This commit is contained in:
parent
c710ecc0b2
commit
8cd426101a
@ -1172,6 +1172,9 @@ catch(e) {
|
|||||||
if (aURI.indexOf(this.BOOKMARK_FOLDER) == 0) {
|
if (aURI.indexOf(this.BOOKMARK_FOLDER) == 0) {
|
||||||
let newTabs = sv.getNewTabsWithOperation(function() {
|
let newTabs = sv.getNewTabsWithOperation(function() {
|
||||||
var data = aURI.replace(self.BOOKMARK_FOLDER, '');
|
var data = aURI.replace(self.BOOKMARK_FOLDER, '');
|
||||||
|
if (utils.isDebugging('tabbarDNDObserver'))
|
||||||
|
dump('TabbarDND::handleLinksOrBookmarks\n' +
|
||||||
|
' bookmark folder data: ' + data + '\n');
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
w.PlacesUIUtils._openTabset(data.children, { type : 'drop' }, w, data.title);
|
w.PlacesUIUtils._openTabset(data.children, { type : 'drop' }, w, data.title);
|
||||||
}, b);
|
}, b);
|
||||||
@ -1292,8 +1295,12 @@ catch(e) {
|
|||||||
{
|
{
|
||||||
let item = JSON.parse(aData);
|
let item = JSON.parse(aData);
|
||||||
if (item.type == 'text/x-moz-place-container') {
|
if (item.type == 'text/x-moz-place-container') {
|
||||||
// When a blank folder is dropped, just open a dummy tab with the folder name.
|
|
||||||
let children = item.children;
|
let children = item.children;
|
||||||
|
if (!children) {
|
||||||
|
children = item.children = this.retrieveBookmarksInFolder(item.id);
|
||||||
|
aData = JSON.stringify(item);
|
||||||
|
}
|
||||||
|
// When a blank folder is dropped, just open a dummy tab with the folder name.
|
||||||
if (children && children.length == 0) {
|
if (children && children.length == 0) {
|
||||||
let uri = this.treeStyleTab.getGroupTabURI({ title: item.title });
|
let uri = this.treeStyleTab.getGroupTabURI({ title: item.title });
|
||||||
return [uri];
|
return [uri];
|
||||||
@ -1328,6 +1335,20 @@ catch(e) {
|
|||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
},
|
},
|
||||||
|
retrieveBookmarksInFolder : function TabbarDND_retrieveBookmarksInFolder(aId)
|
||||||
|
{
|
||||||
|
var PlacesUtils = this.window.PlacesUtils;
|
||||||
|
var folder = PlacesUtils.getFolderContents(aId, false, true).root;
|
||||||
|
var children = [];
|
||||||
|
for (let i = 0; i < folder.childCount; i++) {
|
||||||
|
let child = folder.getChild(i);
|
||||||
|
if (PlacesUtils.nodeIsURI(child)) {
|
||||||
|
let item = PlacesUtils.wrapNode(child, 'text/x-moz-place');
|
||||||
|
children.push(JSON.parse(item));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return children;
|
||||||
|
},
|
||||||
|
|
||||||
init : function TabbarDND_init(aTabBrowser)
|
init : function TabbarDND_init(aTabBrowser)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user