> On Nov. 2, 2015, 12:05 p.m., Sebastian Kügler wrote:
> > I don't like this change, as it introduces a magic constant for a value 
> > that we completely control our own. (Well, to the degree that we say "a 
> > gridUnit is roughly the height of a line of text". The 1.6 constant looks 
> > weird here, and I'm against adding font specific hacks in, especially since 
> > at that point in the code, we don't even know what the font is.
> > 
> > This is not a structural solution, so -1.
> 
> David Rosca wrote:
>     I understand, but what is a structural solution?
>     The font metric is clearly wrong for Noto, Oxygen (and certainly some 
> other fonts) and this change is backwards compatible with current code.
>     
>     And this is not a font specific hack, this just scales the actual height 
> of M to the expected gridUnit value because gridUnit never was a height of M 
> character (it is like 1.6 * height of M = thus the magic number).
> 
> Sebastian Kügler wrote:
>     Well, problems arise as soon as you change the font -- the computation is 
> not based on the default font, but on the currently selected font. The funny 
> thing here is that the Oxygen font is actually the wrong one, as that 
> includes more height than the rendered character, but also some spacing above.
>     
>     What is the exact issue you see? I'm still not quite clear on that.
>     
>     The bug you're referring to should be fixed by not computing the font 
> manually, but use units.iconSizes.* instead. (I haven't tried, but that's the 
> semantically correct solution.)
> 
> David Rosca wrote:
>     > Well, problems arise as soon as you change the font
>     
>     In the current implementation, yes. Because 
> QFontMetrics::boundingRect(QString = "M").height() returns more than just 
> height of M character, and this extra size is different for various fonts - 
> it will return different value for 2 fonts even when the font size (eg. 
> actual height of M character) is the same in both.
>     
>     > The funny thing here is that the Oxygen font is actually the wrong one, 
> as that includes more height than the rendered character, but also some 
> spacing above.
>     
>     Yes, but that spacing is there for every font, but different and that's 
> exactly the whole problem. For DejaVu Sans font it returns value that plays 
> well with what we use as gridUnit (roughly M height * 1.6), but for Noto and 
> Oxygen it returns just too much (~ * 2). Only 
> QFontMetrics::boundingRect(QChar = 'M').height() returns the actual M height 
> without any spacing.
>     
>     > What is the exact issue you see? I'm still not quite clear on that.
>     
>     My issue is that units.gridUnit and theme.mSize is too big and that leads 
> to too big spacing relative to font size. You can see it on screenshots, it 
> shows the minimum size of system tray popup (it is calculated as x multiple 
> of units.gridUnit). You can see on the first screenshot that it is just too 
> big, and the same story is for every other plasma widget.
>     
>     Maybe I should have posted the whole screen, not just a snip. It looks 
> much worse when you see the whole screen and can compare the size to the rest 
> of screen (1920x1080).
>     
>     > The bug you're referring to should be fixed by not computing the font 
> manually, but use units.iconSizes.* instead.
>     
>     Yes, that would fix the linked bug - size of systemtray icons. But it 
> won't fix the general issue mentioned above.

also -1.
the sizing of systray icons should depend in a range between iconsizes, so from 
iconSizes.small to smallMedium (or medium, or whetever).
for the grid unit, adding that ratio to the m height, i get that you are trying 
to have pretty much the height of a line of text? could 
QFontMetrics::lineSpacing() work?


- Marco


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125773/#review87864
-----------------------------------------------------------


On Oct. 29, 2015, 6:16 p.m., David Rosca wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125773/
> -----------------------------------------------------------
> 
> (Updated Oct. 29, 2015, 6:16 p.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Bugs: 343349
>     http://bugs.kde.org/show_bug.cgi?id=343349
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> For some fonts, QFontMetrics::boundingRect(QString) returns too high rect 
> which makes the gridSize too big.
> It now returns correctly the actual height of M character. For backwards 
> compatibility, the value is multiplied with 1.6.
> 
> This affects eg. Noto Sans font that is now default for Plasma 5.5.
> 
> 
> Diffs
> -----
> 
>   src/declarativeimports/core/units.h fa2256e 
>   src/declarativeimports/core/units.cpp 4e2adae 
>   src/plasma/theme.cpp c49ad4c 
> 
> Diff: https://git.reviewboard.kde.org/r/125773/diff/
> 
> 
> Testing
> -------
> 
> When switching to Noto Sans font, I noticed that icons in system tray grow to 
> big size so it switched to 1 column in vertical panel. Basically everything 
> in Plasma grow too much (even though the font is visually the same or even 
> smaller than DejaVu Sans that I was using before - same font size 9 was used) 
> - too big spacing in task manager, too big popups (application menu, system 
> tray popups), etc ...
> 
> This fixes the issue. This may also fix BUG 343349
> 
> 
> File Attachments
> ----------------
> 
> systray + popup before
>   
> https://git.reviewboard.kde.org/media/uploaded/files/2015/10/29/d409b391-e35e-451f-bb5b-aa42e7eb2bf3__before.png
> after
>   
> https://git.reviewboard.kde.org/media/uploaded/files/2015/10/29/445009bc-a4a8-4998-8e82-996a0a4e33fb__after.png
> 
> 
> Thanks,
> 
> David Rosca
> 
>

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to