The cursor effect doesn't work reliably anywhere other than on Linux,
but external files can now be linked instead of stored with
Cmd-Option-drag on OS X and Ctrl-Shift-drag on Win/Linux.
- On manual sync or the first auto-sync of a session, check all files
- During other auto-syncs, check only files previously modified or
opened externally via Zotero (including Show File) within the last 3
hours
- Every 3 hours, do a full check of all files even if it's an auto-sync
- Spin event loop during synchronous file checks to avoid hanging the UI
- Zotero.Sync.Runner.sync() now takes an options object (e.g.,
options.background)
Todo:
- Provide feedback on last full check in sync icon tooltip?
- Auto-sync on app focus, if this speeds up syncs enough?
Avoid ambiguously implying that Linux users should be running Zotero as
root, and tell them to fix the permissions on the Zotero executable instead.
See https://forums.zotero.org/discussion/31020/
OS.File doesn't seem to work reliably before Firefox 23, so older
versions will continue to do mod time checking on the main thread.
Zotero.Sync.Storage.checkForUpdatedFiles() now returns a promise.
platformVersion is a string that needs to be checked with
nsIVersionComparator. platformMajorVersion is an integer that can be
checked with > and < when the major Gecko version is enough.
Task.jsm allows not only generators but also iterators to be yielded,
using ``typeof yielded == 'Function'`` as the test for an iterator, but
since the Q promise includes a send() method, yielding a Q promise
instead of a Mozilla promise results in an infinite loop. To fix this,
we disable Q's send() method, which is just an outdated synonym for
invoke() anyway.
This will have to be done every time we update Q until send() is
removed, Task.jsm is changed, or we stop using Task.jsm with Q promises.
The Zotero shortcut keys, and their event.preventDefault(), were bound
to keydown, so shortcuts bound to keypress were still be called. This
moves most of the shortcut handling code into the keypress handler.
Fixes#344