[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