> On Feb. 18, 2016, 1:05 vorm., David Edmundson wrote:
> > applets/digital-clock/package/contents/ui/DigitalClock.qml, line 555
> > <https://git.reviewboard.kde.org/r/127102/diff/1/?file=444552#file444552line555>
> >
> >     rather than looping, can we use FontMetric's maximumCharacterWidth
> >     
> >      * numChars.
> >     
> >     Then we could kill sizeHelper competely (FontMetric's didn't exist when 
> > this was written)
> 
> Marco Martin wrote:
>     hoping maximumCharacterWidth is reliable for all fonts, this loop really 
> needs to go
> 
> Daniel Faust wrote:
>     As far as I understand maximumCharacterWidth returns the width of the 
> widest character of the font - which can be ridiculously wide given that the 
> font supports some wild unicode characters.
>     I did a quick test and maximumCharacterWidth returned about twice the 
> width actually needed.
> 
> Martin Klapetek wrote:
>     You still don't need this whole loop though, just find the biggest in 0-9 
> and use that for all the numbers (except year).

Since I don't know the time format in advance, I have to construct different 
times and process them with Qt.formatTime.
That means, I have to test 0-9 for hours/minutes/seconds, 0-2 for tens of hours 
and 0-5 for tens of minutes/seconds. Otherwise the constructed times will be 
invalid.
This can be done with three loops and it would bring down the amount of 
advanceWidth and formatTime calls from 24+60=84 to 3+6+10=19.


- Daniel


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


On Feb. 17, 2016, 5:23 nachm., Daniel Faust wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127102/
> -----------------------------------------------------------
> 
> (Updated Feb. 17, 2016, 5:23 nachm.)
> 
> 
> Review request for kde-workspace and Plasma.
> 
> 
> Bugs: 347724
>     https://bugs.kde.org/show_bug.cgi?id=347724
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> Currently the width of the date label is not fixed but changes depending on 
> the text. This causes the entire applet to change its width (if the time is 
> the widest displayed item). This in turn can cause all other applets in the 
> same panel to move whenever the displayed time changes.
> 
> This patch uses FontMetrics to iterate over all possible time strings (with 
> different width) and chooses the widest of them as reference for the fixed 
> width of the time label.
> 
> This way the width of the applet stays the same (unless the date is displayed 
> and changes). The text remains centered though, which means that it can still 
> move within the applet when the time changes.
> 
> 
> Diffs
> -----
> 
>   applets/digital-clock/package/contents/ui/DigitalClock.qml 95bb071 
> 
> Diff: https://git.reviewboard.kde.org/r/127102/diff/
> 
> 
> Testing
> -------
> 
> Works with horizontal and vertical panel.
> Also displaying different combinations of "seconds", "date" and "timezone" 
> works.
> 
> 
> Thanks,
> 
> Daniel Faust
> 
>

Reply via email to