mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
315940 - make the bookmarks menu work NPOB.
This commit is contained in:
parent
80680498d2
commit
107ba0a1a7
@ -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);
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user