The Task Manager button delegates currently use a custom C++
QQuickPaintedItem to display text. This is undesirable because
it causes a lot of texture traffic and bypasses the glyph cache
of Qt Quick's OpenGL renderer. However, the C++ code does
complex things - like per-line fadeouts and shadowing - that are
not easily recreated in pure QML, which has kept the C++ label
around up until now`.
This patch gets us on the way by putting the existing label
implementation behind a Loader, and making a pure-QML label
implementation available via an experimental config option.
I'd like to have this in the 5.7 branch because one of our
downstreams (Netrunner Linux) used to ship similar code in
a fork of the applet for visual reasons, and since what they
want to ship aligns with our long-term plans, this will allow
them to avoid the fork while getting us an early tester for
upstream code.
As a nice bonus it ends up being a performance optimization
for Icontasks users, as TextLabel will no longer even be
instanciated there.