[Kmymoney-devel] String pixel widths differ

Jack ostroffjh at sbcglobal.net
Tue Sep 23 00:26:05 UTC 2014


On 2014.09.22 18:12, Allan wrote:
> On 22/09/14 22:25, Jack wrote:
>> On 2014.09.22 15:17, Allan wrote:
>>> On 22/09/14 19:04, Jack wrote:
>>>> On 2014.09.22 13:08, Allan wrote:
>>>> [snip....]
>>>>> I don't think it really matters what font the system is using, as
>>>>> long as that font is available.  I'm using DejaVu Sans at the
>>>>> moment, but I understand that if that is not available, the system
>>>>> will substitute a similar one.
>>>> 
>>>> I'm not sure you understand my question.  If the system is  
>>>> displaying
>>>> a font other than the one you specify but doing the size  
>>>> calculation
>>>> based on the font you specified, then the calculation may not match
>>>> the display.  I'm just trying to be sure the size calculations are
>>>> being done with whatever font is actually being displayed.
>>> 
>>> As I specify the same font for both, wouldn't that avoid the  
>>> situation
>>> you foresee?
>> Not necessarily.  You specify font X for display, but the system uses
>> font Y.  You specify font X for doing font matrix calculations, and  
>> my
>> question is whether you know for sure that it is doing those
>> calculations on font X or on font Y.  Since those calculations are  
>> not
>> necessarily tied to the active display, I can imagine the system not
>> doing the font substitution.
> 
> My non-expert view is that, if I specify font X, but the system  
> substitutes font Y, then the system would only have cause to do that  
> if font X was not available.  So, I don't see how, some nano-seconds  
> later, font X has suddenly become available and now gets used.  I  
> hope I don't need to keep checking?
I'm no more an expert than you, but I take a slightly paranoid approach  
here.  First, I don't know that non-availability is the only reason for  
a system to use a font other than the one requested.  I can imagine a  
use case where user preference takes precedence, for example.  (Think  
css.)  I can also imagine that when asked for font metrics for a  
non-available font, the system might use some defaults, and not  
necessarily those for the font it substituted in a particular instance.
>> 
>>> So far, all looks well on both systems now.  The column widths are
>>> identical, and the only difference is in the overall width of the
>>> tableWidget.  That, I believe, comes from the margins, which do
>>> differ, but I have already taken that into account.  The aspect  
>>> ratios
>>> of the two screens are different, too.
Again, taking the paranoid view, I'm not sure "both systems" is a  
sufficient sample.  I take Cristian's view here that it is generally  
not a good idea to override the user's choice of system default font.   
Think of a vision impaired user who has chosen a particularly large  
font, or a font chosen specifically for readability.  If you can query  
what font was actually used, and then use that to request the metric  
calculations, shouldn't that give equivalent results?
> 
>> Are the fonts identical?
> 
> I take it you mean between my two systems?  Again, my non-expert view  
> is that if the two fonts have the same name, then the are identical.  
> Otherwise, they would not be the same font.
I accept that - but if those two systems are both using the font you  
requested, then what happens when a system does not have that font  
available?
> 
>> If not, then why should the column widths be identical?
> 
> If the columns contain the same data and use the same font, then that  
> gives me the information needed to calculate/obtain the pixel width,  
> and therefore I use that to set the column width.
Again, the question is whether you can be sure that is the font that  
will always be used?  New train of thought - what about non-Roman  
character sets?  Greek?  Cyrillic?  Arabic?  It may be that the  
procedure you use will set up appropriate column widths, but if that is  
the case, then what have you actually gained from specifying a font?
> 
>> I assume the point is for the column to display the text in it  
>> without clipping and without wasting space.  To me, different fonts  
>> are likely to need different column widths.
> 
> Yes, that was exactly the problem I had, which led me to specify the  
> actual font to use for both calculations and display, within the  
> plugin, to avoid the idiosyncrasies of different distros.  It seems  
> to be working.
> 
While my argument is certainly more academic than practical, the  
minimalist in me asks why you would specify more than you need to.  My  
paranoid self asks whether your font specification has really done what  
you expect, or if it simply happens to achieve the expected results in  
the cases you have tested.  (Just for context, I have several friends  
that would call this exchange a "violent agreement.")

Jack


More information about the KMyMoney-devel mailing list