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);