Fix alignment of icons in Places panel and Compact view mode

Authored by sharvey on Mar 28 2018, 1:46 PM.

Description

Fix alignment of icons in Places panel and Compact view mode

Summary:
Adjust calculation of icon pixmap Y value; now based off center of text label bounding rectangle. Previously, icons appeared top-aligned when text size was larger than icon size.

Centering is done by obtaining the center point of the text frame (m_textRect.center().y()) and setting the top Y point of the icon to one-half of the scaled icon height (m_scaled_PixmapSize.height()) Division is done by 2.0, to ensure calculations are done with floating-point math, in keeping with QPointF, which returns floating-point values.

Also includes an adjustment named midlineShift (contributed by @zzag), which takes into account the font's midline in respect to the center of the text frame. Certain fonts (i.e. Noto Sans) can have a slightly offset midline, resulting in imperfect alignment of the icon. This small adjustment resolves that potential issue.

See before and after screenshots.


Before, showing misalignment (with and without debugging wireframes)


After, showing correction

BUG: 390771

Test Plan:

  • Compile Dolphin with patch
  • Increase system font size by several points (i.e. 15pt)
  • Check that Places panel icons remain centered with the text label
  • Select Compact View mode
  • Adjust icon size slider to minimum
  • Ensure that icons also remain centered in file listing
  • Check several combinations of icon size & font size to ensure centering is consistent

Reviewers: Dolphin, ngraham, cfeck, elvisangelaccio

Reviewed By: Dolphin, ngraham, elvisangelaccio

Subscribers: zzag, elvisangelaccio, Dolphin

Differential Revision: https://phabricator.kde.org/D11650

Details

Committed
ngrahamMar 29 2018, 10:29 PM
Reviewer
Dolphin
Differential Revision
D11650: Fix alignment of icons in Places panel and Compact view mode
Parents
R318:eed695710d0e: Merge branch 'Applications/18.04'
Branches
Unknown
Tags
Unknown