hein added a comment.
So I worked out why this happens. We have API like this:
SvgItem {
svg: Svg { imagePath: "..." }
}
Without my patch, `Svg` is instanciated with a scale factor of 1.0 always.
Then `setImagePath` is called on it first. Then `SvgItem::setSvg` is called
with the `Svg` instance and calls `setScaleFactor` on it.
In this pattern, `SvgItem` doesn't get a chance to set the scale factor
before `imagePath`, because it's not the one setting the latter.
The only call site fix here would be to implement `QQmlParserStatus` in `Svg`
and then set `scaleFactor` from QML everywhere by accessing `Units`. But this
hygiene would be really hard to enforce, especially in third-party widgets.
I still consider my patch to be a fairly pragmatic solution to this.
REPOSITORY
R242 Plasma Framework (Library)
REVISION DETAIL
https://phabricator.kde.org/D9119
To: hein, #plasma, davidedmundson, broulik, mart
Cc: graesslin, plasma-devel, #frameworks, ZrenBot, progwolff, lesliezhai,
ali-mohamed, jensreuterberg, abetts, sebas, apol, mart