# ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is the Places Menupopup View. # # The Initial Developer of the Original Code is Google Inc. # Portions created by the Initial Developer are Copyright (C) 2005-2006 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Annie Sullivan # Ben Goodger # Asaf Romano # # Alternatively, the contents of this file may be used under the terms of # either the GNU General Public License Version 2 or later (the "GPL"), or # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** false false null 0) --this._endMarker; } } // If no static items were found at the beginning, remove all items before // the static items at the end. if (aPopup._startMarker == -1) { var end = aPopup._endMarker == -1 ? aPopup.childNodes.length - 1 : aPopup._endMarker - 1; for (var i = end; i >=0; i--) { // skip the empty menu item if (aPopup._emptyMenuItem != aPopup.childNodes[i]) { aPopup.removeChild(aPopup.childNodes[i]); if (aPopup._endMarker > 0) --aPopup._endMarker; } } } ]]> 0) { if (aPopup._emptyMenuItem) aPopup._emptyMenuItem.hidden = true; for (var i = 0; i < cc; ++i) { var child = aPopup._resultNode.getChild(i); this.insertNewItem(child, aPopup, null); } } else { // This menu is empty. If there is no static content, add // an element to show it is empty. if (aPopup._startMarker == -1 && aPopup._endMarker == -1) this._showEmptyMenuItem(aPopup); } aPopup._built = true; ]]> domNodes. There's only one map per // result/viewer, the field is initialized once for the root menu, // for sub menus it is set to the root's map (see insertNewItem) this._containerNodesMap = []; this.setAttribute("place", val); var queries = { }, options = { }; PlacesUtils.history.queryStringToQueries(val, queries, { }, options); if (!queries.value.length) queries.value = [PlacesUtils.history.getNewQuery()]; this._result = PlacesUtils.history.executeQueries(queries.value, queries.value.length, options.value); this._result.viewer = this._viewer; this._resultNode = this._result.root; return val; ]]> PlacesUtils.GENERIC_VIEW_DROP_TYPES PlacesUtils.GENERIC_VIEW_DROP_TYPES this._ensureInitialized(); if (event.target._resultNode) this.onPopupShowing(event); var popup = event.target; if (!popup._resultNode) return; // UI performance: folder queries are cheap, keep the resultnode open // so we don't rebuild its contents whenever the popup is reopened. if (!PlacesUtils.nodeIsFolder(popup._resultNode)) popup._resultNode.containerOpen = false; // The autoopened attribute is set for folders which have been // automatically opened when dragged over. Turn off this attribute // when the folder closes because it is no longer applicable. popup.removeAttribute("autoopened");