Follow up from #440
- Convert curly single quotes to straight quotes before inserting
- Add General and Supplemental Unicode punctuation ranges to getClass()
(so that fancy punctuation doesn't end up in words)
- Move single-quote test from getClass() to semanticSplitter(), and
consider it a letter only if in the middle of a word
- Add comments to semanticSplitter()
This might be ever-so-slightly slower, but it's neglible. (War and Peace
seems to now take ~1570ms instead of ~1500ms for me.)
also deal with punctuation at the beginning of title
Also fix capitalizeTitle to work with quotation marks and Spanish beginning punctuation. Also adds ? and ! as punctuation after which it always capitalizes
switch sentence case conversion to a regex; I'm leaving capitalizeTitle as the substring routine, it's the same length and probably slightly more efficient.
document.location is null after the document is detached from its parent window (e.g. after we navigate to a different page in the same hidden browser)
If localstore.rdf has the tag selector persisted closed from before
zotero-persist, the 'state' attribute on the splitter that we now use
won't cause the tag selector to open.
This would previously have thrown an error. I'm not sure what these
documents would be, but it's a safe bet that they're not loaded in a
normal browser window.
Also fix weirdness trying to open collapsed tag selector after restart.
(The splitter's 'state' attribute has to be persisted, not the
'collapsed' state of the pane in question.)
If Zotero Standalone was opened before Firefox, closed, and opened
again, the user would see a message stating Zotero Standalone was open,
but the pane would not have closed. This was purely cosmetic.
- When opening the DB, always tell other Zotero instances to close it,
regardless of whether they are holding the lock.
- Don't let database re-open after it has been closed. This also fixes
some issues with connector switching.
This should make it much easier to debug startup errors, particularly in
Standalone.
This also adds a general mechanism to set Zotero initialization options via
command-line flags.
- Refresh Unfiled Items view when items are added
- Fix brief freeze ("too much recursion") adding an item to a search
where the new item doesn't appear. Now, select the library root
instead if a manually added item doesn't appear in the current view.
- Fix immediate closing of title field when adding an item to a
collection rather than the library root
nsISemanticUnitScanner doesn't seem to be able to deal with single
quotes, so protect those. (There might be other characters it doesn't
handle, but this is ancient code, so it stays as is for now.)
It might be possible to write non-UTF-8 data by passing another charset
to TextEncoder, but I haven't tried it.
Firefox 19+ only, and for now, at least, only if data is passed as
string rather than input stream
This isn't technically any slower than before, but if people were using
multiple computers, they might not have had their entire full-text index
on a single computer before full-text syncing.
"height: auto" (from another extension's fix for this) actually caused
the bottoms of tree rows to be cut off on Windows (and at least on one
Linux installation with Chinese characters).
- Close Zotero pane before database is closed prior to reload, instead
of waiting until reload is complete
- Show an error message if Zotero Standalone is not accessible when it
should be
FT sync is enabled by default for new users and configurable in the Sync
prefs.
Also disable downgrades once full-text sync is enabled, since otherwise
someone switching back and forth between old and new versions could miss
full-text content updates.
Full-text content is now synced to the server and other clients. Up to
~500K of content is transferred with each sync, so multiple syncs may be
necessary. Downloaded content is written to temporary files and
processed on idle (currently 5 seconds), so synced content may not be
immediately available.
Performance will improve with API syncing and async DB in 4.1.
This also includes some other full-text tweaks, such as storing
text converted from HTML in cache files, which may speed up phrase
searching.
Trigger a proxy authentication prompt at startup if a PAC file is
installed and one of a few randomly chosen big sites requires a proxy.
This also improves general proxy detection by not making a request
to S3 unless it would actually be proxied.