Add getSelectedObjects() and limit getSelectedItems() to items
This adds an explicit function on ZoteroPane and the item tree for getting objects -- including collections and searches in the trash -- and limits `getSelectedItems()` to returning actual items from the selection. We shim various item properties on the collections and searches in the trash, but code that's getting the selection should be explicit about what it wants. Outside of the trash, they're equivalent, except `getSelectedObjects()` does have an `asIDs` mode. This switches to using getSelectedObjects() in various places and fixes collections in the trash appearing as belonging to My Publications when using the collections-containing-an-item highlight [1]. This also adds support for highlighting the parent collections of collections in the trash. [1] https://forums.zotero.org/discussion/115449/zotero-7-beta-deleted-collection-appears-as-belonging-to-my-publications
This commit is contained in:
parent
a612c1227e
commit
c384fef867
4 changed files with 137 additions and 59 deletions
|
@ -1544,4 +1544,27 @@ describe("Zotero.ItemTree", function() {
|
|||
assert.equal(OS.Path.basename(path), originalFileName);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe("#_restoreSelection()", function () {
|
||||
it("should reselect collection in trash", async function () {
|
||||
var userLibraryID = Zotero.Libraries.userLibraryID;
|
||||
var collection = await createDataObject('collection', { deleted: true });
|
||||
var item = await createDataObject('item', { deleted: true });
|
||||
await cv.selectByID("T" + userLibraryID);
|
||||
await waitForItemsLoad(win);
|
||||
|
||||
var collectionRow = zp.itemsView.getRowIndexByID(collection.treeViewID)
|
||||
var itemRow = zp.itemsView.getRowIndexByID(item.id)
|
||||
zp.itemsView.selection.toggleSelect(collectionRow);
|
||||
zp.itemsView.selection.toggleSelect(itemRow);
|
||||
|
||||
var selection = zp.itemsView.getSelectedObjects();
|
||||
assert.lengthOf(selection, 2);
|
||||
zp.itemsView.selection.clearSelection();
|
||||
assert.lengthOf(zp.itemsView.getSelectedObjects(), 0);
|
||||
zp.itemsView._restoreSelection(selection);
|
||||
assert.lengthOf(zp.itemsView.getSelectedObjects(), 2);
|
||||
});
|
||||
});
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue