Skip to content

widgets: Use GridView for font rows

Due to the use of FlowBox to draw the font row grid the performance of the application suffers. Starting with launch time and ending with overall performance of scrolling. This moves away from FlowBox to GridView to present both System and Explore (Google) fonts.

Another part is the change to the way font rows present each font. Instead of drawing the different styles the row now presents a neutral text (subject to change) that presents the font enough for a user to get an idea what is the font like.

Additional changes have been done (e.g., sorting of fonts in models) that try to make the application simply look better or to make the performance better. Some of these decisions have an adverse affect on the presentation (unsorted font rows) but those should be fixable by further work. Already, the start time went from about 15 seconds down to 5 seconds.

NOTE: There are some graphical glitches while scrolling in the Explore part of the app. That is partially fixed in !24.

Includes !23 and !24

TODO:

  • unbinding of font rows
  • proper handling of not installed fonts - not ideal solution
    • not installed font does not have a font family pango attribute set, leading to a lot of font rows with totally uniform preview text (the attributes are set if a font is installed)
    • a solution could be an alternative state to the preview when the font is not available accompanied by a transition effect showing of the preview after a font is downloaded on demand in the background
  • style fixes

Before: Screenshot_from_2022-03-08_23-04-07

After: Screenshot_from_2022-03-10_02-39-02

Edited by Ondřej Míchal

Merge request reports