[RFC] New (QML) Desktop Containment

Sebastian Kügler sebas at kde.org
Wed Nov 21 21:27:20 UTC 2012


Ciao Marco,

On Wednesday, November 21, 2012 21:13:13 Marco Martin wrote:
> On Wednesday 21 November 2012, Sebastian Kügler wrote:
> > I've recorded a ~3 minute movie that shows the current state:
> > 		http://www.youtube.com/watch?v=zbSuNrn3qoU
> 
> looks already nice ;)

Thanks :)

> > UI-wise, my design goals are:
> > * no regressions compared to current containment
> > * less visual clutter (especially caused by applet handle when unlocked)
> 
> not sure this is actually reducing the clutter, because goes from something
> shown only on moseover to stuff always shown.
> maybe still reserving the space for the title/buttons, but still show them
> only on mouseover

Thought of this as well, could be tried.

> > * better aids in aligning widgets to achieve a cleaner layout
> > 
> > For the placement and resizing of applets, I've therefore taken a bit more
> > freedom in the implementation. The applets are now laid out and resized in
> > a grid, they snap into place and align on the grid lines.
> 
> like the grid approach, not sure how will be received not being able to put
> an applet of "exactly that amount of pixels"

I've only seen one problematic applet, the picture frame. For other applets, 
yes, we're sacrificing a bit of OCD, but in exchange we get the /good/ kind of 
OCD back, so I think the grid is a good tradeoff. Do you have any other 
applets in mind that want a precise size?

> probably grid cells should be quite smaller than the ones in active (not too
> small that is not exactly computationally efficient;)
> and that would replace also (part of) the grid/grouping desktop use case

They're actually fairly small (48px I think), quite a bit smaller than in 
Active. What distracts a bit is the size of the frameshadow. These shadows 
don't overlap in the layout. The Air410 theme has quite large shadow frames, 
making it looked quite spaced out. The frame of "normal" Air are a tad 
smaller, there it looks a bit more balanced. This can be easily tuned a bit 
more of course.

> > In order to emphasize the difference between locked and unlocked mode, I'm
> > adding frames to all applets on the screen which have the applethandle
> > actions. Switching back to locked needs a bit of improvement, so the
> 
> also not sure about it, even tough applets without a frame are a quite rare
> and special case (and discouraged, i must add :p)

And I know why, but for picture frame and notes, they'd really look odd with 
frame.

> > The bigger open issues are that
> > * add panel is not working when called from the toolbox (needs a list of
> > panel plugins add the add mechanism),
> > * the position toolbox position is not saved
> 
> this will depend from the actual toolbox plugin (position for netbook
> toolbox has quite a different meaning for instance)
> so the c++ part should probably export a writeConfig()/readConfig() there
> too?

The toolbox can write its position after it changed to plasmoid's config. 
There's just something wrong with restoring the saved position. Not a serious 
bug, just some niggle I've still to look into.

> > * the settings option is greyed out in the context menu
> > * applet's context menues don't work
> 
> are containmentactions plugins correctly loaded?

Yes, they're in the toolbox and working OK. I think it comes from us setting 
containmentType to CustomContainment, and the context menu not understanding 
where to get the config dialog from.

> > * applet handle misses actions other than configure and close
> > * dropping stuff onto the containment doesn't work
> 
> as far i seen, the items (not sure if they all do, or just mousearea) just
> eat the dropevent.
> maybe the containment implementation in the scriptengine should
> filterChildEvents and catch drop events from there. not seeing many other
> ways around

I can have a go at that. :)

Thanks for the feedback,
-- 
sebas

http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9


More information about the Plasma-devel mailing list