315940 - make the bookmarks menu work NPOB.

This commit is contained in:
beng%bengoodger.com 2005-11-28 07:53:12 +00:00
parent 80680498d2
commit 107ba0a1a7
3 changed files with 53 additions and 27 deletions

View File

@ -36,51 +36,39 @@
* ***** END LICENSE BLOCK ***** */
var PlacesBrowserShim = {
_bookmarks: null,
_bms: null,
_history: null,
};
PlacesBrowserShim.init = function PBS_init() {
var addBookmarkCmd = document.getElementById("Browser:AddBookmarkAs");
var addBookmarksCmd = document.getElementById("Browser:BookmarkAllTabs");
var addBookmarksItem = document.getElementById("bookmarkAllCmd");
var viewBookmarksItem = addBookmarksItem.nextSibling;
var endHistoryItem = document.getElementById("endHistorySeparator");
var viewHistoryItem = endHistoryItem.nextSibling;
addBookmarkCmd.setAttribute("oncommand", "PlacesBrowserShim.addBookmark()");
addBookmarksCmd.setAttribute("oncommand", "PlacesBrowserShim.addBookmarks()");
viewBookmarksItem.setAttribute("oncommand", "PlacesBrowserShim.showPlaces()");
//viewHistoryItem.setAttribute("oncommand", "PlacesBrowserShim.showPlaces");
PlacesBrowserShim._bookmarks =
this._bms =
Cc["@mozilla.org/browser/nav-bookmarks-service;1"].
getService(Ci.nsINavBookmarksService);
var oldMenu = document.getElementById("bookmarks-menu");
oldMenu.parentNode.removeChild(oldMenu);
var newMenuPopup = document.getElementById("bookmarksMenuPopup");
newMenuPopup.folderId = this._bms.bookmarksRoot;
};
PlacesBrowserShim.addBookmark = function PBS_addBookmark() {
var selectedBrowser = getBrowser().selectedBrowser;
this._bookmarkURI(this._bookmarks.bookmarksRoot, selectedBrowser.currentURI,
this._bookmarkURI(this._bms.bookmarksRoot, selectedBrowser.currentURI,
selectedBrowser.contentTitle);
};
PlacesBrowserShim.addBookmarks = function PBS_addBookmarks() {
var folder = this._bookmarks.createFolder(this._bookmarks.bookmarksRoot,
"Goats", -1);
var browsers = getBrowser().browsers;
for (var i = 0; i < browsers.length; ++i)
this._bookmarkURI(folder, browsers[i].currentURI,
browsers[i].contentTitle);
};
PlacesBrowserShim._bookmarkURI =
function PBS__bookmarkURI(folder, uri, title) {
this._bookmarks.insertItem(folder, uri, -1);
this._bookmarks.setItemTitle(uri, title);
this._bms.insertItem(folder, uri, -1);
this._bms.setItemTitle(uri, title);
};
PlacesBrowserShim.showPlaces = function PBS_showPlaces() {
loadURI("chrome://browser/content/places/places.xul", null, null);
};
addEventListener("load", PlacesBrowserShim.init, false);
addEventListener("load", function () { PlacesBrowserShim.init(); }, false);

View File

@ -26,6 +26,17 @@
<hbox id="bookmarksBarContent" flex="1" context="placesContext"/>
</toolbar>
</toolbox>
<menubar id="main-menubar">
<menu id="bookmarksMenu" insertafter="go-menu" label="Bookmarks">
<menupopup id="bookmarksMenuPopup" type="places">
<menuitem label="Add Bookmark" command="Browser:AddBookmarkAs"
key="addBookmarkAsKb"/>
<menuitem label="Show Places" oncommand="PlacesBrowserShim.showPlaces();"/>
<menuseparator builder="start"/>
</menupopup>
</menu>
</menubar>
</overlay>

View File

@ -45,10 +45,37 @@
]]></body>
</method>
<method name="_cleanMenu">
<body><![CDATA[
var foundStartMarker = false;
var foundEndMarker = false;
var items = [];
for (var i = 0; i < this.childNodes.length; ++i) {
var item = this.childNodes[i];
if (item.getAttribute("builder") == "start") {
foundStartMarker = true;
continue;
}
if (item.getAttribute("builder") == "end") {
foundEndMarker = true;
continue;
}
if (foundStartMarker && !foundEndMarker)
items.push(item);
}
for (var i = 0; i < items.length; ++i)
items[i].parentNode.removeChild(items[i]);
if (!foundStartMarker && !foundEndMarker) {
while (this.hasChildNodes())
this.removeChild(this.firstChild);
}
LOG("KIDS = " + this.childNodes.length);
]]></body>
</method>
<method name="_rebuild">
<body><![CDATA[
while (this.hasChildNodes())
this.removeChild(this.firstChild);
<body><![CDATA[
this._cleanMenu();
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
var cc = this._result.childCount;
for (var i = 0; i < cc; ++i) {