Fix items-count updating in right-hand pane

And some other tweaks to ZoteroPane.itemSelected()
This commit is contained in:
Dan Stillman 2015-05-08 16:01:25 -04:00
parent 84ff141edd
commit a64282118b
3 changed files with 72 additions and 15 deletions

View file

@ -48,16 +48,7 @@ var loadZoteroPane = Zotero.Promise.coroutine(function* () {
// there or it should be good enough here.
yield Zotero.Promise.delay(52);
var zp = win.ZoteroPane;
var cv = zp.collectionsView;
var resolve1, resolve2;
var promise1 = new Zotero.Promise(() => resolve1 = arguments[0]);
var promise2 = new Zotero.Promise(() => resolve2 = arguments[0]);
cv.addEventListener('load', () => resolve1())
yield promise1;
cv.selection.select(0);
zp.addEventListener('itemsLoaded', () => resolve2());
yield promise2;
yield waitForItemsLoad(win, 0);
return win;
});
@ -85,6 +76,22 @@ function waitForWindow(uri) {
return deferred.promise;
}
var waitForItemsLoad = function (win, collectionRowToSelect) {
var resolve;
var promise = new Zotero.Promise(() => resolve = arguments[0]);
var zp = win.ZoteroPane;
var cv = zp.collectionsView;
cv.addEventListener('load', function () {
if (collectionRowToSelect !== undefined) {
cv.selection.select(collectionRowToSelect);
}
zp.addEventListener('itemsLoaded', function () {
resolve();
});
});
return promise;
}
/**
* Waits for a single item event. Returns a promise for the item ID(s).
*/