Extenders in libplasma2 (or.. not)

Aaron J. Seigo aseigo at kde.org
Tue Nov 15 14:48:10 UTC 2011


hi :)

i've been working a bit yesterday and today on the de-QGraphicsView-ification 
of libplasma2. Applet no longer uses any of the Plasma QGraphicsProxyWidgets 
and i believe i have it on a path towards proper abstraction so we can have a 
QGraphicsWidget and a QML Item based implementation.

however, one snag i ran into was Extender and ExtenderItem. they are both very 
much based on QGraphicsView classes and while this is not insurmountable, i 
decided to look at what uses them.

there is exactly *one* plasmoid that we ship that uses them directlly: 
Notifications. i believe some other applets use them implicitly as they are 
popup applets and don't provide their own widget. looking at kde-apps.org, it 
doesn't seem the situation is much different for 3rd party plasmoids either.

more plasmoids used to use them .. fewer do now for various reasons.

in libplasma, PopupApplet uses Extender, and of course Applet provides support 
for them. PopupApplet's use could be easily replaced with Plasma::Dialog 
(which will get both a QGraphicsView and a QML implementation...)

our users never seem to have caught on to them as a concept and they didn't 
prove nearly as useful as i had once hoped.

after today's research and reflecting on the situation, i consider them a 
failed experiment. not a terrible one, but it didn't exactly succeed. i 
suppose it's the same thing as the old tear-off menus -> neat idea, few used 
them, created as many problems as it solved.

so ... i'd like to propose that we kill Extender, ExtenderItem and 
ExtenderGroup in libplasma2.

this will:

* make the library lighter
* make it much easier to de-QGraphicsView-ize things

the cons are:

* it means anything using them needs to be revised; however, as i hope we will 
have a QML notifications plasmoid sooner rather than later and as pretty much 
nothing else uses it .. i don't think this is a big deal.

i can't just move extenders to the plasma QGraphicsView support library, 
either, as they are (by necessity) deeply entwined with Applet and 
Containment.

thoughts? +1s? -1s?

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Development Frameworks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20111115/5545e071/attachment.html>
-------------- 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/20111115/5545e071/attachment.sig>


More information about the Plasma-devel mailing list