www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 81e9a7010e64a8ae1cc14d5239870aeb01d5e771
parent 5fcbd914ae90ec9342b7b7b0aa276c100662057a
Author: Simon Kornblith <simon@simonster.com>
Date:   Mon,  6 Jun 2011 04:30:06 +0000

only use first 50 selected items when determining locate menu actions, to prevent a slowdown when accessing the context menu with a large number of items selected


Diffstat:
Mchrome/content/zotero/locateMenu.js | 19++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/chrome/content/zotero/locateMenu.js b/chrome/content/zotero/locateMenu.js @@ -42,7 +42,7 @@ var Zotero_LocateMenu = new function() { locateMenu.removeChild(locateMenu.firstChild); } - var selectedItems = [item for each(item in ZoteroPane_Local.getSelectedItems()) if(!item.isNote())]; + var selectedItems = _getSelectedItems(); if(selectedItems.length) { _addViewOptions(locateMenu, selectedItems, true, true); @@ -96,7 +96,7 @@ var Zotero_LocateMenu = new function() { */ this.buildContextMenu = function(menu) { // get selected items - var selectedItems = [item for each(item in ZoteroPane_Local.getSelectedItems()) if(!item.isNote())]; + var selectedItems = _getSelectedItems(); // if no items selected, stop now if(!selectedItems.length) return; @@ -271,7 +271,7 @@ var Zotero_LocateMenu = new function() { * Locate selected items */ function _locateItem(event) { - var selectedItems = ZoteroPane_Local.getSelectedItems(); + var selectedItems = _getSelectedItems(); // find selected engine var selectedEngine = Zotero.LocateManager.getEngineByName(event.target.label); @@ -311,6 +311,19 @@ var Zotero_LocateMenu = new function() { ); } + /** + * Get the first 50 selected items + */ + function _getSelectedItems() { + var allSelectedItems = ZoteroPane_Local.getSelectedItems(); + var selectedItems = []; + while(selectedItems.length < 50 && allSelectedItems.length) { + var item = allSelectedItems.shift(); + if(!item.isNote()) selectedItems.push(item); + } + return selectedItems; + } + var ViewOptions = {}; /**