From f73e2ceb58fb7ffca37d9013f851b2aba081f2bc Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Mon, 18 May 2009 19:51:36 +0000 Subject: [PATCH] Closes #955, Don't generate bibliography when dragging many items Default limit set to 50, configurable in the Export pane --- .../zotero/preferences/preferences.xul | 10 ++++++++++ chrome/content/zotero/xpcom/itemTreeView.js | 20 ++++++++++--------- chrome/content/zotero/xpcom/quickCopy.js | 5 +++++ defaults/preferences/zotero.js | 1 + 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/chrome/content/zotero/preferences/preferences.xul b/chrome/content/zotero/preferences/preferences.xul index 991adaace..adc8afdda 100644 --- a/chrome/content/zotero/preferences/preferences.xul +++ b/chrome/content/zotero/preferences/preferences.xul @@ -455,6 +455,7 @@ To add a new preference: + @@ -503,6 +504,15 @@ To add a new preference: + + + + + + diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js index fcc642164..34a98c0cb 100644 --- a/chrome/content/zotero/xpcom/itemTreeView.js +++ b/chrome/content/zotero/xpcom/itemTreeView.js @@ -1715,17 +1715,19 @@ Zotero.ItemTreeView.prototype.onDragStart = function (event, transferData, actio } else if (mode.indexOf('bibliography') == 0) { var content = Zotero.QuickCopy.getContentFromItems(items, format, null, event.shiftKey); - if (oldMethod) { - if (content.html) { - transferData.data.addDataForFlavour("text/html", content.html); + if (content) { + if (oldMethod) { + if (content.html) { + transferData.data.addDataForFlavour("text/html", content.html); + } + transferData.data.addDataForFlavour("text/unicode", content.text); } - transferData.data.addDataForFlavour("text/unicode", content.text); - } - else { - if (content.html) { - event.dataTransfer.setData("text/html", content.html); + else { + if (content.html) { + event.dataTransfer.setData("text/html", content.html); + } + event.dataTransfer.setData("text/plain", content.text); } - event.dataTransfer.setData("text/plain", content.text); } } else { diff --git a/chrome/content/zotero/xpcom/quickCopy.js b/chrome/content/zotero/xpcom/quickCopy.js index 6c3f33ea7..22daf86f2 100644 --- a/chrome/content/zotero/xpcom/quickCopy.js +++ b/chrome/content/zotero/xpcom/quickCopy.js @@ -132,6 +132,11 @@ Zotero.QuickCopy = new function() { * contain properties 'text' and 'html' is returned. */ function getContentFromItems(items, format, callback, modified) { + if (items.length > Zotero.Prefs.get('export.quickCopy.dragLimit')) { + Zotero.debug("Skipping quick copy for " + items.length + " items"); + return false; + } + var [mode, format] = format.split('='); var [mode, contentType] = mode.split('/'); diff --git a/defaults/preferences/zotero.js b/defaults/preferences/zotero.js index 7bbff2111..9a7174a2a 100644 --- a/defaults/preferences/zotero.js +++ b/defaults/preferences/zotero.js @@ -81,6 +81,7 @@ pref("extensions.zotero.rtfScan.lastInputFile", ""); pref("extensions.zotero.rtfScan.lastOutputFile", ""); pref("extensions.zotero.export.quickCopy.setting", 'bibliography=http://www.zotero.org/styles/chicago-note'); +pref("extensions.zotero.export.quickCopy.dragLimit", 50); // Integration settings pref("extensions.zotero.integration.port", 50001);