Review Request 116065: Implement FontLoader type.

Nikita Skovoroda chalkerx at gmail.com
Sat Apr 12 23:38:53 UTC 2014



> On April 12, 2014, 11:22 p.m., Anton Kreuzkamp wrote:
> > src/qtcore.js, line 2113
> > <https://git.reviewboard.kde.org/r/116065/diff/6/?file=264614#file264614line2113>
> >
> >     why do we need lastName === fontName and inTouchName, doesn't the first render the second redundant?

No, it doesn't.
Removing it will break the loadFont() inhibiting while in touchName().

touchName() sets the name:
1) from 'myfont' to 'sans-serif',
2) then back from 'sans-serif' to 'myfont'.

While in (1), lastName === 'myfont', fontName === 'sans-serif' (new font name), connected in this.nameChanged.connect(this, loadFont).
That would attempt to load 'sans-serif' font, which is not desired.

The same for (2).


- Nikita


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


On April 10, 2014, 8:19 p.m., Nikita Skovoroda wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/116065/
> -----------------------------------------------------------
> 
> (Updated April 10, 2014, 8:19 p.m.)
> 
> 
> Review request for QML Web and Anton Kreuzkamp.
> 
> 
> Repository: qmlweb
> 
> 
> Description
> -------
> 
> Implement FontLoader type.
> 
> See http://qt-project.org/doc/qt-5/qml-qtquick-fontloader.html and http://qt-project.org/doc/qt-4.7/qml-fontloader.html
> 
> This currently depends on smnh's MIT-licensed FontLoader.js library
> to get notifications when a font is loaded and trigger all events in time.
> 
> Elements that are using that font through 'font.family: fontId.name' get their dimensions recalculated correctly when the font loads.
> 
> If FontLoader.js is not provided the font is still loaded, but 'status' property is set to Error and dimensions recalculation is triggered after a fixed timeout (3 seconds).
> In this case the user gets a notice in console.log.
> 
> 
> Timeout (3 seconds) is the maximum time for a font to load. If font isn't loaded in this time, status is set to Error.
> Without FontLoader.js dimensions recalculations for elements are triggered after that time.
> 
> For both cases (with and without FontLoader.js) if the font takes more than this time to load, dimensions recalculations for elements that are using this font will not be triggered or will have no effect.
> 
> On the other hand, if the font could not be loaded (with FontLoader.js enabled), the Error status will be set only when this timeout expires.
> 
> 
> Diffs
> -----
> 
>   src/qtcore.js a3f408e 
> 
> Diff: https://git.reviewboard.kde.org/r/116065/diff/
> 
> 
> Testing
> -------
> 
> Works as expected (as described above) with or without FontLoader.js.
> Tested cases when the font should load and when it should fail to load.
> 
> Tested «Text {font.family: fontId.name}» dimensions recalculations.
> 
> Works well for me.
> 
> 
> Thanks,
> 
> Nikita Skovoroda
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/qmlweb/attachments/20140412/ed7af38c/attachment.html>


More information about the QmlWeb mailing list