Commit graph

9248 commits

Author SHA1 Message Date
Dan Stillman
d0635e12cb
Add disableFontSizeScaling prop to HTML tree (#2155)
Removes `defaultRowHeight` prop added in adb8aa39f in favor of a prop
that disables font size scaling. A non-default row height can still be
specified with `rowHeight`.

Most of our existing trees need to disable font size scaling, but the
idea is that pretty much everything _should_ scale with font size for
accessibility, and it's a limitation of the current prefs and other UIs
that they don't currently, so it's better to default to scaling and
gradually remove uses of this prop.

This fixes a bug where the HTML trees other than the collection and item
trees would have larger rows but without larger text when font size was
increased.

Also:

- Fixes #2157 by fixing line height adjustment on macOS when at the
  default font size, applying it to all trees, and moving the explicit
  `rowHeight` override from the item tree to the collection tree, which
  should have more spacing than all other trees (rather than the item tree
  having less).
2021-08-25 01:53:22 -04:00
Adomas Venčkauskas
462af98380 Restore libraries-to-sync UX. Closes #2156 2021-08-24 17:15:17 +03:00
Adomas Venčkauskas
6010390525 HTML Tree: Fix column separators misaligned at startup. Closes #2153 2021-08-24 16:44:55 +03:00
Dan Stillman
d4e3a437fd Reduce width of icon column in libraries-to-sync dialog
Changed during HTMLification
2021-08-24 01:25:47 -04:00
Martynas Bagdonas
85b142ccb2
Restore tabs state (#2148) 2021-08-23 13:02:57 -04:00
Dan Stillman
f9035c8fda Show emoji colored tags directly in items list
We can do fun things now.

Also:

- Make colored tag swatches resize with the font size
- Increase border radius for color swatches, and adjust with size
2021-08-22 04:41:34 -04:00
Dan Stillman
cc4225db1a Restore localized date in Styles list in Cite prefs
With the new tree, this was showing the full timestamp from the style
object.
2021-08-21 06:58:12 -04:00
Dan Stillman
adb8aa39f8 Reduce item tree row spacing
This matches the previous tree on macOS.
2021-08-21 06:58:12 -04:00
Dan Stillman
7ef7943a17 Reduce item pane message font size
E.g., "Loading items…"

Maybe we want this bigger, but this is roughly what we had before and
matches the tag selector and item pane messages.
2021-08-21 06:58:12 -04:00
Dan Stillman
ec35291060 Decrease item tree indent
Roughly center child item icons between the parent item icon and text,
which looks a bit less awkward than the previous tree's positioning. An
alternative would be to align with the beginning of the parent item text
(a value of 21), but that's a bit spaced out, at least until we have
multiple levels with additional twisties.
2021-08-21 06:58:12 -04:00
Dan Stillman
c85a434eb6 Reduce collection tree indent
At least on macOS, this brings it back in line roughly with the previous
version.
2021-08-21 06:58:12 -04:00
Dan Stillman
c965e6159a Fix collection tree header indentation on macOS 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
881ab5f59e Store column prefs to a dedicated file in a profile dir instead of XPCOM prefs 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
a2062bf011 Fix selection not being maintained when collapsing/expanding rows 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
55c758c9d0 Fix header columns being misaligned with table columns in item tree
And reindent _virtualized-table.scss
2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
431d7e1eaa Fix alternating-row colours switching upon child expand-collapse 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
efc009f724 Fix collection tree header alignment on macOS 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
7ec89c44ce Improve column sorting speed 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
ff627b7d3f Ensure column order and width prefs are properly retained 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
9e04250142 Do not sort a column on mouseup if mousedown occurred on a different one 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
4cea4519b8 Fix column resizing weirdness with fixed with columns 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
277503f879 Fix rows not being properly redrawn in duplicates view 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
a15fb83cc4 Fix feed sort being wrong 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
c496b5e367 Fix crash message not getting locked 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
8ebf1609b6 Item tree selection changes and fixes
- Fixes selection events always being debounced
- Fixes some failing tests
- Ensures Select All command selects search matching children of
collapsed parents. Adds tests for this case
2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
6dce19d546 Expand search parents whith Select All shortcut in item tree 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
1db2eb4aea Ensure disabled item tree rows are not selectible with Select All 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
7265393be9 Fix item PDF not opening on double click in tree 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
9c7f28b126 Fix trees not properly redrawing on drag events 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
b671611b51 Fix item tree message not being centered outside of main window 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
d83ec19c23 Do not try to open/close empty collection tree rows on + and - hotkeys
Causes performance issues
2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
b5dc0e7630 Add a comment for how to open the data generator 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
87014451de Fix item tree selection issues when using + and - hotkeys 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
cc97545bd6 Fix advanced search item tree being invisible on open 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
700ac31eef Ensure \n\n in itemPaneMessage is displayed as a newline 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
82f87a0d8d Add a Restore Column Order choice in the column picker 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
2b6c7277f7 Item Tree: Do not display Title in the columnpicker 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
af597d943b Move js-tree files out from /containers subfolder 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
e68685521b Do not change selection on macOS when using PageUp/Down 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
f773f79d10 Documentation adjustments for virtualized-table 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
82914a9583 JSWindow - WindowedList 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
67d9e87c55 Icons.getDomElement() -> Icons.getDOMElement() 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
47094fc4c3 Misc new tree cleanup 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
d26eba2d2c Adjustments and documentation for Utilities.Internal.makeClassEventDispatcher 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
bcd9d777c9 Remove unused Debug._setLevel() 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
51f13412b9 Documentation for the tree selection 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
5a97f2bdd8 ReactDom -> ReactDOM 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
1e75425698 Fix highlighted collection not unhighlighting 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
2f72ed17b7 Ensure columns with different visibility group retain their config 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
cbbff600a6 XUL -> JS tree megacommit
- Just a single huge commit. This has been developed over too long a
time, required many tiny changes across too many files and has seen too
many iterations to be separated into separate commits.
The original branch with all the messy commits will be kept around for
posterity
bb220ad0f2...adomasven:feature/react-item-tree
- Replaces XUL <tree> element across the whole zotero client codebase
with a custom supermegafast virtualized-table inspired by
react-virtualized yet mimicking old XUL treeview API. The
virtualized-table sits on top on a raw-to-the-metal,
interpreted-at-runtime JS based windowing solution inspired by
react-window. React-based solutions could not be used because they were
slow and Zotero UI needs to be responsive and be able to
display thousands of rows in a treeview without any slowdowns.
- Attempts were made at making this screen-reader friendly, but yet to
be tested with something like JAWS
- RTL-friendly
- Styling and behaviour across all platforms was copied as closely as
possible to the original XUL tree
- Instead of row-based scroll snapping this has smooth-scrolling. If
you're using arrow keys to browse through the tree then it effectively
snap-scrolls. Current CSS snap scroll attributes do not seem to work in
the way we would require even on up-to-date browsers, yet alone the ESR
version of FX that Zotero is on. JS solutions are either terrible for
performance or produce inexcusable jitter.
- When dragging-and-dropping items the initial drag freezes the UI for
a fairly jarring amount of time. Does not seem to be fixable due to
the synchronous code that needs to be run in the dragstart handler.
Used to be possible to run that code async with the XUL tree.
- Item tree column picker no longer has a dedicated button. Just
right-click the columns. The column preferences (width, order, etc) are
no longer handled by XUL, which required a custom serialization and
storage solution that throws warnings in the developer console due to
the amount of data being stored. Might cause temporary freezing on HDDs
upon column resize/reorder/visibility toggling.
- Context menu handling code basically unchanged, but any UI changes
that plugins may have wanted to do (including adding new columns) will
have to be redone by them. No serious thought has gone into how plugin
developers would achieve that yet.
- Opens up the possibility for awesome alternative ways to render the
tree items, including things like multiple-row view for the item tree,
which has been requested for a long while especially by users switching
from other referencing software
2021-08-21 06:58:12 -04:00