[RFC] New (QML) Desktop Containment

Sebastian Kügler sebas at kde.org
Wed Nov 21 19:10:06 UTC 2012


Hi,

As you might know, I'm porting our desktop containment to QML. The platformy 
bits are now nearly complete (and merged into master cq. 4.10. On the UI side, 
progress has also been rather good. There's a QML ToolBox now, and I've got a 
proof-of-concept version of the containment itself going, which takes care of 
layouting the widgets on the screen and provides an applet handle.

I've recorded a ~3 minute movie that shows the current state:

		http://www.youtube.com/watch?v=zbSuNrn3qoU

UI-wise, my design goals are:
* no regressions compared to current containment
* less visual clutter (especially caused by applet handle when unlocked)
* 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. 

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 workflow 
"unlock -> move/resize/configure/add/remove widget -> lock" becomes a bit more 
natural and intuitive. The idea is really that you use the containment locked 
and only have it unlocked for a short period of time, then switch back to 
locked.

This approach is taken from the Plasma Active Activity Screen, but adapted to 
Desktop conditions (mouse input granularity, especially).

The code consists of two Plasma packages, org.kde.toolbox and org.kde.desktop. 
You can install those from the plasma/sebas/desktop-qml branch in kde-
workspace. The toolbox's UI is more or less a 1:1 port from the current 
toolbox.

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
* the settings option is greyed out in the context menu
* applet's context menues don't work
* applet handle misses actions other than configure and close
* dropping stuff onto the containment doesn't work
* applet handle looks cramped / unclean at the top
* things I've missed / forgotten :)

Obviously, this is work in progress, but it's at a point where feedback on the 
approach and implementation would be valuable.

So, what do you think? :)
-- 
sebas

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


More information about the Plasma-devel mailing list