mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-24 11:27:49 +00:00
Bug 128629 -- speed up personal toolbar a bit. Patch by
neil@parkwaycc.co.uk, r=pierrechanial@netscape.net, sr=ben
This commit is contained in:
parent
a288b8e184
commit
328b5f5978
@ -496,7 +496,7 @@ function LoadBookmarksCallback()
|
||||
.getService(Components.interfaces.nsIBookmarksService);
|
||||
gBookmarksService.ReadBookmarks();
|
||||
// tickle personal toolbar to load personal toolbar items
|
||||
var personalToolbar = document.getElementById("innermostBox");
|
||||
var personalToolbar = document.getElementById("NC:PersonalToolbarFolder");
|
||||
personalToolbar.builder.rebuild();
|
||||
} catch (e) {
|
||||
}
|
||||
|
@ -242,7 +242,6 @@ Contributor(s):
|
||||
|
||||
<toolbar id="PersonalToolbar" class="chromeclass-directories" persist="collapsed"
|
||||
grippytooltiptext="&personalToolbar.tooltip;" tbalign="stretch"
|
||||
oncommand="OpenBookmarkURL(event.target,document.getElementById('BookmarksMenu').database)"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event, personalToolbarDNDObserver)"
|
||||
ondragdrop="nsDragAndDrop.drop(event, personalToolbarDNDObserver); event.preventBubble()"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event, personalToolbarDNDObserver); event.preventBubble()"
|
||||
@ -265,6 +264,7 @@ Contributor(s):
|
||||
persist="hidden" label="&bookmarksButton.label;"
|
||||
datasources="rdf:bookmarks rdf:files rdf:localsearch rdf:internetsearch"
|
||||
ref="NC:BookmarksRoot" container="true" flags="dont-test-empty"
|
||||
oncommand="OpenBookmarkURL(event.target, this.database)"
|
||||
template="bookmarksMenuTemplate"
|
||||
ondraggesture="if (event.target.id=='bookmarks-button') event.preventBubble()">
|
||||
<menupopup onpopupshowing="checkBookmarksMenuTemplateBuilder(); updateGroupmarkMenuitem('PT_bookmarks_groupmark');">
|
||||
@ -278,9 +278,10 @@ Contributor(s):
|
||||
</toolbarbutton>
|
||||
|
||||
<!-- Personal toolbar items -->
|
||||
<hbox id="innermostBox" flex="1" style="min-width: 1px;" context="bmContext"
|
||||
<hbox id="NC:PersonalToolbarFolder" flex="1" style="min-width: 1px;" context="bmContext"
|
||||
datasources="rdf:bookmarks rdf:files rdf:localsearch rdf:internetsearch"
|
||||
ref="NC:PersonalToolbarFolder" flags="dont-test-empty"
|
||||
oncommand="OpenBookmarkURL(event.target, this.database)"
|
||||
rdf:type="http://home.netscape.com/NC-rdf#Folder">
|
||||
<tooltip id="ptTooltip" noautohide="true" onpopupshowing="return FillInPTTooltip(document.tooltipNode)">
|
||||
<vbox id="ptTooltipTextBox" flex="1">
|
||||
|
@ -252,7 +252,7 @@ var personalToolbarDNDObserver = {
|
||||
return;
|
||||
|
||||
//PCH: cleanup needed here, url is already calculated in isBookmark()
|
||||
var db = document.getElementById("innermostBox").database;
|
||||
var db = document.getElementById("NC:PersonalToolbarFolder").database;
|
||||
var url = RDFUtils.getTarget(db, uri, NC_RDF("URL"));
|
||||
if (url)
|
||||
url = url.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
|
||||
@ -323,7 +323,7 @@ var personalToolbarDNDObserver = {
|
||||
return;
|
||||
var elementRes = RDFUtils.getResource(xferData[0]);
|
||||
|
||||
var childDB = document.getElementById("innermostBox").database;
|
||||
var childDB = document.getElementById("NC:PersonalToolbarFolder").database;
|
||||
var rdfContainer = Components.classes["@mozilla.org/rdf/container;1"].createInstance(Components.interfaces.nsIRDFContainer);
|
||||
|
||||
// if dragged url is already bookmarked, remove it from current location first
|
||||
@ -362,8 +362,6 @@ var personalToolbarDNDObserver = {
|
||||
if (aEvent.target.id == "bookmarks-button")
|
||||
// dropPosition is always DROP_ON
|
||||
parentContainer = RDFUtils.getResource("NC:BookmarksRoot");
|
||||
else if (aEvent.target.id == "innermostBox")
|
||||
parentContainer = RDFUtils.getResource("NC:PersonalToolbarFolder");
|
||||
else if (dropPosition == this.DROP_ON)
|
||||
parentContainer = RDFUtils.getResource(aEvent.target.id);
|
||||
else {
|
||||
@ -431,7 +429,7 @@ var personalToolbarDNDObserver = {
|
||||
{
|
||||
var children = aNode.childNodes;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
if (children[i].id == "innermostBox") {
|
||||
if (children[i].id == "NC:PersonalToolbarFolder") {
|
||||
this.onDragCloseMenu(children[i]);
|
||||
}
|
||||
else if (this.isContainer(children[i]) && children[i].getAttribute("open") == "true") {
|
||||
@ -450,7 +448,7 @@ var personalToolbarDNDObserver = {
|
||||
return
|
||||
}
|
||||
// The bookmark button is not a sibling of the folders in the PT
|
||||
if (this.mCurrentDragOverTarget.parentNode.id == "innermostBox")
|
||||
if (this.mCurrentDragOverTarget.parentNode.id == "NC:PersonalToolbarFolder")
|
||||
this.onDragCloseMenu(document.getElementById("PersonalToolbar"));
|
||||
else
|
||||
this.onDragCloseMenu(this.mCurrentDragOverTarget.parentNode);
|
||||
@ -642,7 +640,7 @@ var personalToolbarDNDObserver = {
|
||||
{
|
||||
if (!aURI)
|
||||
return false;
|
||||
var db = document.getElementById("innermostBox").database;
|
||||
var db = document.getElementById("NC:PersonalToolbarFolder").database;
|
||||
var typeValue = RDFUtils.getTarget(db, aURI, _RDF("type"));
|
||||
typeValue = RDFUtils.getValueFromResource(typeValue);
|
||||
return (typeValue == NC_RDF("BookmarkSeparator") ||
|
||||
|
@ -297,7 +297,7 @@
|
||||
<menu id="BookmarksMenu" label="&bookmarksMenu.label;" accesskey="&bookmarksMenu.accesskey;"
|
||||
datasources="rdf:bookmarks rdf:files rdf:localsearch rdf:internetsearch"
|
||||
ref="NC:BookmarksRoot" flags="dont-test-empty" template="bookmarksMenuTemplate"
|
||||
oncommand="OpenBookmarkURL(event.target, document.getElementById('BookmarksMenu').database)">
|
||||
oncommand="OpenBookmarkURL(event.target, this.database)">
|
||||
<template id="bookmarksMenuTemplate" xmlns:nc="http://home.netscape.com/NC-rdf#">
|
||||
<rule nc:FolderGroup="true" iscontainer="true">
|
||||
<menupopup>
|
||||
|
@ -120,9 +120,7 @@ BookmarksToolbar.prototype = {
|
||||
// needs to be modified in the datasource.
|
||||
postModifyCallback: function (aParams)
|
||||
{
|
||||
var aShell = aParams[0];
|
||||
var selItemURI = NODE_ID(aParams[1]);
|
||||
aShell.propertySet(selItemURI, aParams[2], aParams[3]);
|
||||
aParams[0].propertySet(aParams[1].id, aParams[2], aParams[3]);
|
||||
},
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
@ -151,12 +149,12 @@ BookmarksToolbar.prototype = {
|
||||
var parentNode = relativeNode ? gBookmarksShell.findRDFNode(relativeNode, false) : gBookmarksShell.element;
|
||||
|
||||
var args = [{ property: NC_NS + "parent",
|
||||
resource: NODE_ID(parentNode) },
|
||||
resource: parentNode.id },
|
||||
{ property: NC_NS + "Name",
|
||||
literal: stringValue.value }];
|
||||
|
||||
const kBMDS = gBookmarksShell.RDF.GetDataSource("rdf:bookmarks");
|
||||
var relId = relativeNode ? NODE_ID(relativeNode) : "NC:PersonalToolbarFolder";
|
||||
var relId = relativeNode ? relativeNode.id : "NC:PersonalToolbarFolder";
|
||||
BookmarksUtils.doBookmarksCommand(relId, NC_NS_CMD + "newfolder", args);
|
||||
}
|
||||
|
||||
@ -213,12 +211,11 @@ BookmarksToolbar.prototype = {
|
||||
}
|
||||
|
||||
var args = [{ property: NC_NS + "parent",
|
||||
resource: NODE_ID(parentNode) },
|
||||
resource: parentNode.id },
|
||||
{ property: NC_NS + "Name",
|
||||
literal: name }];
|
||||
|
||||
BookmarksUtils.doBookmarksCommand(NODE_ID(relativeNode),
|
||||
NC_NS_CMD + "newfolder", args);
|
||||
BookmarksUtils.doBookmarksCommand(relativeNode.id, NC_NS_CMD + "newfolder", args);
|
||||
// We need to do this because somehow focus shifts and no commands
|
||||
// operate any more.
|
||||
//gBookmarksShell._focusElt.focus();
|
||||
@ -388,7 +385,7 @@ BookmarksToolbar.prototype = {
|
||||
case "cmd_bm_cut":
|
||||
case "cmd_bm_copy":
|
||||
case "cmd_bm_delete":
|
||||
return (document.popupNode != null) && (NODE_ID(document.popupNode) != "NC:PersonalToolbarFolder");
|
||||
return document.popupNode && document.popupNode.id != "NC:PersonalToolbarFolder";
|
||||
case "cmd_bm_selectAll":
|
||||
return false;
|
||||
case "cmd_bm_open":
|
||||
@ -413,17 +410,17 @@ BookmarksToolbar.prototype = {
|
||||
seln = gBookmarksShell.getSelection();
|
||||
if (!seln.length) return false;
|
||||
var folderType = seln[0].getAttributeNS(RDF_NS, "type") == (NC_NS + "Folder");
|
||||
return document.popupNode != null && !(NODE_ID(seln[0]) == "NC:NewBookmarkFolder") && folderType;
|
||||
return document.popupNode && seln[0].id != "NC:NewBookmarkFolder" && folderType;
|
||||
case "cmd_bm_setpersonaltoolbarfolder":
|
||||
seln = gBookmarksShell.getSelection();
|
||||
if (!seln.length) return false;
|
||||
folderType = seln[0].getAttributeNS(RDF_NS, "type") == (NC_NS + "Folder");
|
||||
return document.popupNode != null && !(NODE_ID(seln[0]) == "NC:PersonalToolbarFolder") && folderType;
|
||||
return document.popupNode && seln[0].id != "NC:PersonalToolbarFolder" && folderType;
|
||||
case "cmd_bm_setnewsearchfolder":
|
||||
seln = gBookmarksShell.getSelection();
|
||||
if (!seln.length) return false;
|
||||
folderType = seln[0].getAttributeNS(RDF_NS, "type") == (NC_NS + "Folder");
|
||||
return document.popupNode != null && !(NODE_ID(seln[0]) == "NC:NewSearchFolder") && folderType;
|
||||
return document.popupNode && seln[0].id != "NC:NewSearchFolder" && folderType;
|
||||
case "cmd_bm_fileBookmark":
|
||||
seln = gBookmarksShell.getSelection();
|
||||
return seln.length > 0;
|
||||
@ -477,7 +474,7 @@ BookmarksToolbar.prototype = {
|
||||
function BM_navigatorLoad(aEvent)
|
||||
{
|
||||
if (!gBookmarksShell) {
|
||||
gBookmarksShell = new BookmarksToolbar("innermostBox");
|
||||
gBookmarksShell = new BookmarksToolbar("NC:PersonalToolbarFolder");
|
||||
controllers.appendController(gBookmarksShell.controller);
|
||||
removeEventListener("load", BM_navigatorLoad, false);
|
||||
}
|
||||
|
@ -62,15 +62,10 @@ const NC_NS_CMD = NC_NS + "command?cmd=";
|
||||
* and I WILL come after you with a knife.
|
||||
*/
|
||||
|
||||
function NODE_ID (aElement)
|
||||
{
|
||||
return aElement.getAttribute("ref") || aElement.id;
|
||||
}
|
||||
|
||||
function LITERAL (aDB, aElement, aPropertyID)
|
||||
{
|
||||
var RDF = BookmarksUIElement.prototype.RDF;
|
||||
var rSource = RDF.GetResource(NODE_ID(aElement));
|
||||
var rSource = RDF.GetResource(aElement.id);
|
||||
var rProperty = RDF.GetResource(aPropertyID);
|
||||
var node = aDB.GetTarget(rSource, rProperty, true);
|
||||
return node ? node.QueryInterface(Components.interfaces.nsIRDFLiteral).Value : "";
|
||||
@ -134,8 +129,7 @@ BookmarksUIElement.prototype = {
|
||||
var selection = this.getContextSelection (itemNode);
|
||||
var commonCommands = [];
|
||||
for (var i = 0; i < selection.length; ++i) {
|
||||
var nodeURI = NODE_ID(selection[i]);
|
||||
var commands = this.getAllCmds(nodeURI);
|
||||
var commands = this.getAllCmds(selection[i].id);
|
||||
if (!commands) {
|
||||
aEvent.preventDefault();
|
||||
return;
|
||||
@ -333,8 +327,7 @@ BookmarksUIElement.prototype = {
|
||||
case "bm_setnewbookmarkfolder":
|
||||
case "bm_setpersonaltoolbarfolder":
|
||||
case "bm_setnewsearchfolder":
|
||||
BookmarksUtils.doBookmarksCommand(NODE_ID(selectedItem),
|
||||
NC_NS_CMD + aCommandID, args);
|
||||
BookmarksUtils.doBookmarksCommand(selectedItem.id, NC_NS_CMD + aCommandID, args);
|
||||
// XXX - The containing node seems to be closed here and the
|
||||
// focus/selection is destroyed.
|
||||
this.selectElement(selectedItem);
|
||||
@ -364,16 +357,16 @@ BookmarksUIElement.prototype = {
|
||||
"centerscreen,chrome,modal=yes,dialog=yes,resizable=yes", null, null, folder, null, "selectFolder", rv);
|
||||
if (rv.selectedFolder) {
|
||||
for (var k = 0; k < selection.length; ++k) {
|
||||
if (NODE_ID(selection[k]) == rv.selectedFolder)
|
||||
if (selection[k].id == rv.selectedFolder)
|
||||
return; // Selection contains the target folder. Just fail silently.
|
||||
}
|
||||
var additiveFlag = false;
|
||||
var selectedItems = [].concat(this.getSelection())
|
||||
for (var i = 0; i < selectedItems.length; ++i) {
|
||||
var currItem = selectedItems[i];
|
||||
var currURI = NODE_ID(currItem);
|
||||
var currURI = currItem.id;
|
||||
var parent = gBookmarksShell.findRDFNode(currItem, false);
|
||||
gBookmarksShell.moveBookmark(currURI, NODE_ID(parent), rv.selectedFolder);
|
||||
gBookmarksShell.moveBookmark(currURI, parent.id, rv.selectedFolder);
|
||||
gBookmarksShell.selectFolderItem(rv.selectedFolder, currURI, additiveFlag);
|
||||
if (!additiveFlag) additiveFlag = true;
|
||||
}
|
||||
@ -393,9 +386,8 @@ BookmarksUIElement.prototype = {
|
||||
nfseln = this.getBestItem();
|
||||
var parentNode = this.findRDFNode(nfseln, false);
|
||||
args = [{ property: NC_NS + "parent",
|
||||
resource: NODE_ID(parentNode) }];
|
||||
BookmarksUtils.doBookmarksCommand(NODE_ID(nfseln),
|
||||
NC_NS_CMD + "newseparator", args);
|
||||
resource: parentNode.id }];
|
||||
BookmarksUtils.doBookmarksCommand(nfseln.id, NC_NS_CMD + "newseparator", args);
|
||||
break;
|
||||
case "bm_import":
|
||||
case "bm_export":
|
||||
@ -420,7 +412,7 @@ BookmarksUIElement.prototype = {
|
||||
}
|
||||
var seln = this.getBestItem();
|
||||
args = [{ property: NC_NS + "URL", literal: fileName}];
|
||||
BookmarksUtils.doBookmarksCommand(NODE_ID(seln), NC_NS_CMD + aCommandID, args);
|
||||
BookmarksUtils.doBookmarksCommand(seln.id, NC_NS_CMD + aCommandID, args);
|
||||
break;
|
||||
}
|
||||
},
|
||||
@ -428,7 +420,7 @@ BookmarksUIElement.prototype = {
|
||||
openFolderInNewWindow: function (aSelectedItem)
|
||||
{
|
||||
openDialog("chrome://communicator/content/bookmarks/bookmarks.xul",
|
||||
"", "chrome,all,dialog=no", NODE_ID(aSelectedItem));
|
||||
"", "chrome,all,dialog=no", aSelectedItem.id);
|
||||
},
|
||||
|
||||
copySelection: function (aSelection)
|
||||
@ -447,7 +439,7 @@ BookmarksUIElement.prototype = {
|
||||
for (var i = 0; i < aSelection.length; ++i) {
|
||||
var url = LITERAL(this.db, aSelection[i], NC_NS + "URL");
|
||||
var name = LITERAL(this.db, aSelection[i], NC_NS + "Name");
|
||||
sBookmarkItem += NODE_ID(aSelection[i]) + "\n";
|
||||
sBookmarkItem += aSelection[i].id + "\n";
|
||||
sTextUnicode += url + "\n";
|
||||
sTextHTML += "<A HREF=\"" + url + "\">" + name + "</A>";
|
||||
}
|
||||
@ -509,8 +501,8 @@ BookmarksUIElement.prototype = {
|
||||
|
||||
const lastSelected = aSelection[aSelection.length-1];
|
||||
const kParentNode = this.resolvePasteFolder(aSelection);
|
||||
const krParent = this.RDF.GetResource(NODE_ID(kParentNode));
|
||||
const krSource = this.RDF.GetResource(NODE_ID(lastSelected));
|
||||
const krParent = this.RDF.GetResource(kParentNode.id);
|
||||
const krSource = this.RDF.GetResource(lastSelected.id);
|
||||
|
||||
const kRDFCContractID = "@mozilla.org/rdf/container;1";
|
||||
const kRDFCIID = Components.interfaces.nsIRDFContainer;
|
||||
@ -616,7 +608,7 @@ BookmarksUIElement.prototype = {
|
||||
var selectionLength = aSelection.length;
|
||||
while (aSelection.length && aSelection[count]) {
|
||||
const currParent = this.findRDFNode(aSelection[count], false);
|
||||
const kSelectionURI = NODE_ID(aSelection[count]);
|
||||
const kSelectionURI = aSelection[count].id;
|
||||
|
||||
// Disallow the removal of certain 'special' nodes
|
||||
if (kSelectionURI == "NC:BookmarksRoot") {
|
||||
@ -634,7 +626,7 @@ BookmarksUIElement.prototype = {
|
||||
kPrefSvc.setBoolPref("browser.bookmarks.import_system_favorites", false);
|
||||
}
|
||||
|
||||
const krParent = this.RDF.GetResource(NODE_ID(currParent));
|
||||
const krParent = this.RDF.GetResource(currParent.id);
|
||||
const krBookmark = this.RDF.GetResource(kSelectionURI);
|
||||
const kBMDS = this.RDF.GetDataSource("rdf:bookmarks");
|
||||
|
||||
@ -693,8 +685,7 @@ BookmarksUIElement.prototype = {
|
||||
{
|
||||
if (aBookmarkItem.getAttribute("type") != NC_NS + "BookmarkSeparator")
|
||||
openDialog("chrome://communicator/content/bookmarks/bm-props.xul",
|
||||
"", "centerscreen,chrome,resizable=no",
|
||||
NODE_ID(aBookmarkItem));
|
||||
"", "centerscreen,chrome,resizable=no", aBookmarkItem.id);
|
||||
},
|
||||
|
||||
findInBookmarks: function ()
|
||||
|
Loading…
x
Reference in New Issue
Block a user