libplasma2 and Wallpaper
Aaron J. Seigo
aseigo at kde.org
Tue Sep 25 07:49:16 UTC 2012
hello ...
Plasma::Wallpaper has a number of limitations that are a result of the times
it came from :)
namely, it directly paints using QPainter and forwards in a rather artifical
means various mouse events. nothing else was really possible without dong the
wallpapers in individual Containments, which obviously wasn't an option.
but now we are heading to a QML centric world. i think it would be far more
useful to rip out the Wallpaper C++ plugin support and replace it instead with
a solution using QML that lives outside of libplasma2.
this new approach would:
* use Plasma::Package to contain individual wallpaper engines
* have a set API made available to it by a QML component providing e.g. access
to configuration options, a way to load configuration using QML (including a
standardized item view that can be populated with a model provided by the QML
wallpaper)
the benefits:
* no API in libplasma
* still available to all shells (and all QML apps, for that matter)
* full access to user interaction
* OpenGL rendering (at least in QML2)
* greater consistency by providing a way to make things like the config item
view available to all plugins
* easier to make beautiful and interactive wallpapers (with good performance)
the drawbacks:
* all existing wallpapers will break
* any app / plasma shell that does not use QML will not benefit from this; but
that # for plasma apps should be zero in the near future
the re-assuring:
* we can maintain configuration compatibility with the old plugins, so a
configuration that uses the image plugin (for instance) would contnue to work
with the same configuration as-is
to implement this, we would take some of the code in apol's recent plugin, add
access to a small set of the existing QML bindings for config (e.g.) and
provide a QML component in runtime to make it easy to use and write new
wallpapers.
we may even want to put support for these new plugins into the QML helper for
Containment so that shells don't need to do anything at all. this is the
design we have right now in libplasma for Wallpapers and Containments and that
part works rather well.
thoughts?
--
Aaron J. Seigo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20120925/3960f50a/attachment-0001.sig>
More information about the Plasma-devel
mailing list