Extender api review round 4
Rob Scheepmaker
r.scheepmaker at student.utwente.nl
Tue Sep 2 13:58:15 CEST 2008
Hello all,
I think it's a good idea to finalize the extender api discussion. I've scanned
through the previous threat, and I believe the following suggestions are still
'open' (please say so if I've missed anything):
- allow using qgraphicsitems in ExtenderItems instead of just QGWs. I agree
with this suggestion, just haven't implemented it yet. I will soon.
- No virtual initExtenderItem in Applet. I really doubt this is a good idea.
It would either mean moving this virtual to another class, and I really don't
want to require people to have to re-implement other classes then Applet (or
PopupApplet). Other solution would be a signal/slot mechanism. Advantage of
this would be that it won't break binary compatibility, but that isn't really
an issue since I believe it's kind of decided that binary compatibility would
only be an issue after 4.2.
- No extender() in Applet. That is certainly a possibility. This point is
mainly an aesthetic one. Personally, I think having the extender() function
leads to nicer code. In practice, I can't think of a situation where you don't
need a pointer to your extender after creating it. So why don't track that for
your applet, and spare your applet the hassle of having an extra member for
something that is already known internally?
Of course, this entire point is more a matter of taste, and if a lot of people
object to having this function, I'll remove it. I just think it's nice to
have. And just being able to do
new Extender(this)
rocks... ;)
Then there are 2 things that I wanted to bring under your attention, because
I'm not sure it's done the right way... these are:
- Theming. Currently the dragger svg, contains a preferred-icon-size-hint
element. This decides which size the icons in the draghandle will get, and
also decides which vertical size the draghandle gets (iconsize + margins). I
can certainly see different themes having different emphasis on saving screen
real estate vs having nice, big, easy to hit with you mouse icons, and this
makes it possible. It does however feel a bit hackish, and was wondering if
there's a nicer way to accomplish this.
- Detached extender items. When an ExtenderItem gets detached, the
ExtenderApplet applet (in playground atm) get's loaded, and the ExtenderItem
is added to it's extender (since ExtenderItems are always contained in an
extender). Not only does this bring the issue of a part of libplasma being
dependent on an applet, it also feels wrong to have a certain applet hardcoded
as the default extender container. Possible solution for that last problem
would maybe be something like associating applets with a plasma/extenderitem
mime type or something like that, but still, I think it should work without
requiring the user to have a certain applet installed. Any suggestions?
Cheers,
Rob Scheepmaker (pinda)
-
More information about the Plasma-devel
mailing list