commit 937c0a3a3a0e34c986b9c28a49026e2a84477c2f
parent ab1d7a0f2542ff116a120452f1d6f56ddceb9344
Author: Dan Stillman <dstillman@zotero.org>
Date: Fri, 22 Feb 2013 18:41:49 -0500
Fix error in in Error Conosle when clicking on some items
Diffstat:
1 file changed, 75 insertions(+), 66 deletions(-)
diff --git a/chrome/content/zotero/zoteroPane.js b/chrome/content/zotero/zoteroPane.js
@@ -2380,11 +2380,11 @@ var ZoteroPane = new function()
return;
}
- var itemGroup = ZoteroPane_Local.collectionsView._getItemAtRow(row.value);
-
- // Prevent the tree's select event from being called for a click
- // on a library sync error icon
if (tree.id == 'zotero-collections-tree') {
+ let itemGroup = ZoteroPane_Local.collectionsView._getItemAtRow(row.value);
+
+ // Prevent the tree's select event from being called for a click
+ // on a library sync error icon
if (itemGroup.isLibrary(true)) {
if (col.value.id == 'zotero-collections-sync-status-column') {
var libraryID = itemGroup.isLibrary() ? 0 : itemGroup.ref.libraryID;
@@ -2399,37 +2399,41 @@ var ZoteroPane = new function()
// Automatically select all equivalent items when clicking on an item
// in duplicates view
- else if (tree.id == 'zotero-items-tree' && itemGroup.isDuplicates()) {
- // Trigger only on primary-button single clicks with modifiers
- // (so that items can still be selected and deselected manually)
- if (!event || event.detail != 1 || event.button != 0 || event.metaKey || event.shiftKey) {
- return;
- }
-
- var t = event.originalTarget;
-
- if (t.localName != 'treechildren') {
- return;
- }
-
- var tree = t.parentNode;
-
- var row = {}, col = {}, obj = {};
- tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, obj);
+ else if (tree.id == 'zotero-items-tree') {
+ let itemGroup = ZoteroPane_Local.getItemGroup();
- // obj.value == 'cell'/'text'/'image'/'twisty'
- if (!obj.value) {
- return;
+ if (itemGroup.isDuplicates()) {
+ // Trigger only on primary-button single clicks with modifiers
+ // (so that items can still be selected and deselected manually)
+ if (!event || event.detail != 1 || event.button != 0 || event.metaKey || event.shiftKey) {
+ return;
+ }
+
+ var t = event.originalTarget;
+
+ if (t.localName != 'treechildren') {
+ return;
+ }
+
+ var tree = t.parentNode;
+
+ var row = {}, col = {}, obj = {};
+ tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, obj);
+
+ // obj.value == 'cell'/'text'/'image'/'twisty'
+ if (!obj.value) {
+ return;
+ }
+
+ // Duplicated in itemTreeView.js::notify()
+ var itemID = ZoteroPane_Local.itemsView._getItemAtRow(row.value).ref.id;
+ var setItemIDs = itemGroup.ref.getSetItemsByItemID(itemID);
+ ZoteroPane_Local.itemsView.selectItems(setItemIDs);
+
+ // Prevent the tree's select event from being called here,
+ // since it's triggered by the multi-select
+ event.stopPropagation();
}
-
- // Duplicated in itemTreeView.js::notify()
- var itemID = ZoteroPane_Local.itemsView._getItemAtRow(row.value).ref.id;
- var setItemIDs = itemGroup.ref.getSetItemsByItemID(itemID);
- ZoteroPane_Local.itemsView.selectItems(setItemIDs);
-
- // Prevent the tree's select event from being called here,
- // since it's triggered by the multi-select
- event.stopPropagation();
}
}
@@ -2452,32 +2456,34 @@ var ZoteroPane = new function()
if (row.value == -1) {
return;
}
- var itemGroup = ZoteroPane_Local.collectionsView._getItemAtRow(row.value);
- // Show the error panel when clicking a library-specific
- // sync error icon
- if (itemGroup.isLibrary(true)) {
- if (col.value.id == 'zotero-collections-sync-status-column') {
- var libraryID = itemGroup.isLibrary() ? 0 : itemGroup.ref.libraryID;
- var errors = Zotero.Sync.Runner.getErrors(libraryID);
- if (!errors) {
- return;
+ if (tree.id == 'zotero-collections-tree') {
+ let itemGroup = ZoteroPane_Local.collectionsView._getItemAtRow(row.value);
+
+ // Show the error panel when clicking a library-specific
+ // sync error icon
+ if (itemGroup.isLibrary(true)) {
+ if (col.value.id == 'zotero-collections-sync-status-column') {
+ var libraryID = itemGroup.isLibrary() ? 0 : itemGroup.ref.libraryID;
+ var errors = Zotero.Sync.Runner.getErrors(libraryID);
+ if (!errors) {
+ return;
+ }
+
+ var panel = Zotero.Sync.Runner.updateErrorPanel(window.document, errors);
+
+ var anchor = document.getElementById('zotero-collections-tree-shim');
+
+ var x = {}, y = {}, width = {}, height = {};
+ tree.treeBoxObject.getCoordsForCellItem(row.value, col.value, 'image', x, y, width, height);
+
+ x = x.value + Math.round(width.value / 2);
+ y = y.value + height.value + 3;
+
+ panel.openPopup(anchor, "after_start", x, y, false, false);
}
-
- var panel = Zotero.Sync.Runner.updateErrorPanel(window.document, errors);
-
- var anchor = document.getElementById('zotero-collections-tree-shim');
-
- var x = {}, y = {}, width = {}, height = {};
- tree.treeBoxObject.getCoordsForCellItem(row.value, col.value, 'image', x, y, width, height);
-
- x = x.value + Math.round(width.value / 2);
- y = y.value + height.value + 3;
-
- panel.openPopup(anchor, "after_start", x, y, false, false);
+ return;
}
-
- return;
}
// The Mozilla tree binding fires select() in mousedown(),
@@ -2485,17 +2491,20 @@ var ZoteroPane = new function()
// what it expects (say, because multiple items had been
// selected during mousedown(), as is the case in duplicates mode),
// it fires select() again. We prevent that here.
- else if (itemGroup.isDuplicates() && tree.id == 'zotero-items-tree') {
- if (event.metaKey || event.shiftKey) {
- return;
- }
-
- if (obj.value == 'twisty') {
- return;
+ else if (tree.id == 'zotero-items-tree') {
+ let itemGroup = ZoteroPane_Local.getItemGroup();
+ if (itemGroup.isDuplicates()) {
+ if (event.metaKey || event.shiftKey) {
+ return;
+ }
+
+ if (obj.value == 'twisty') {
+ return;
+ }
+
+ event.stopPropagation();
+ event.preventDefault();
}
-
- event.stopPropagation();
- event.preventDefault();
}
return;