[go: up one dir, main page]

Font list tree view update

This MR brings many changes and improvements to the text dialog. Some of them made possible by upgrading to new ListView and GridView containers.

  • Replace tree view with a ListView.
  • Replace IconGrid with a GridView.
  • Replace model implementation with Gio store and filters.
  • Fix font samples being cut-off.
  • Add tree view mode to collapse fonts in families.
  • Make font grid view more usable.
  • Move settings to the popup.
  • Allow font size and variations widgets to be hosted at the top.
  • Limit variation axes widget height, so it doesn't cover up font list.
  • Faster font filtering thanks to new container widgets "virtual" mode support.

New tree view mode showing font families. Badge shows the number of styles.

image image


Tree view mode:

image

In a tree view mode fonts are sorted alphabetically. Any other sort option automatically uses flat list to present results.


Grid view mode has been enhanced. Its size and preview text can be adjusted independently of list view. It can now also show font name.

image. image


Options have been migrated to a popup. Selecting list or grid mode first allows tweaking their settings (independently).

image image


Font size and variations can be placed at the top or at the bottom (options popup):

image

image image

With new list scrolling behavior it became impossible to keep content location fixed while growing/shrinking variable font widget. Thus it is no longer important to plant font size at the bottom.


Font variation axes size limit.

After analyzing 138 free variable fonts I have found them to generally vary in a number of axis to tweak from 1 to 4 with two exceptions: one with 15 and another with 13 axes. As such, the UI is optimized to handle common use cases and automatically resizes itself to accommodate up to 4 axes. Beyond that a scrollbar appears and axes widget is limited in size, so it doesn't obscure the list of fonts.

font-variations-size-limit font-variations-size-limit-2


Display should now adapt better to the size requested by fonts. Size of rows and tiles is now variable.

image. image


Regressions

While the new list and grid containers are an unequivocal improvement over their predecessors, they are not perfect. One serious weakness is their scrolling behavior. It is jittery with content jumping and moving unpredictably at times.

TODO

  • Remove preference to adjust row size; it's sized automatically
  • Consider defaulting to a new unified font text dialog
  • More testing required
  • Bug fixing
Edited by Mike Kowalski

Merge request reports

Loading