move setImagePath logic into updateFrameData()
Summary:
make sure the framedata creation/destruction is
completely in updateFrameData, makes easier to track
and possible to use the repaintsblocked logic.
now only one framedata instance should be created at startup.
CCBUG:376754
Test Plan:
- autotests pass, plasma runs ok, crash on 376754 not reproducible anymore
- possible to have a plasmashell session start without the creation of a single svg renderer (startups after the first when the cache is generated)
- on qml profiler, framesvgitem creation is ~12 msecs the first one created, ~2-300 musecs the subsequent ones, seems to be a bit better than before the whole refactor started
- tried against the latest patches that remove the binding loops, still correct rendering and no binding loop
- tried with both empty and existing cache in place
Reviewers: Plasma, davidedmundson
Reviewed By: Plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, Frameworks
Tags: Frameworks, Plasma
Differential Revision: https://phabricator.kde.org/D4707