Bug 185142

Summary: Multiple rows of widgets in the panel
Product: [Plasma] plasma4 Reporter: Todd <toddrme2178>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Severity: wishlist CC: asraniel, esigra
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Unspecified   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Todd 2009-02-21 17:36:44 UTC
Version:            (using KDE 4.2.0)
Installed from:    SuSE RPMs

Currently it is only possible to have one row of widgets in a horizontal panel (one column in vertical).  I think it would be very useful if having multiple rows was supported.  

This could be implemented with simple drag and drop.  Presently, if you are dropping a widget on a panel and it gets close to being between two widgets, the two split apart to give a space for widget should you release it there.  A similar thing could happen if you put the widget near (within a few pixels) of the top or bottom edge of the panel somewhere that there is already a widget.  For instance if you hover a widget for a few moments at the top edge of the panel above an existing widget, the existing widget would shift down to take up half the vertical space, and a white area above that widget would appear allowing you to drop the new widget there.  The hovering is to guarantee you know you want to put the widget there, preventing normal horizontal movements of the widget from triggering the event and confusing users.  Even windows XP supported multiples rows of objects in its equivalent of a panel.

Adding the additional row should only affect the one widget you hovered near and the widget you dropped, all other widgets should remain the same size.  If you want to add more widgets to one of the rows, you just drop that widget next to an existing widget in the appropriate row.  If you don't want a widget to end up in one of the rows, then you just drop it between the rows.  You should only be able to do this at the ends of the rows, being able to split rows in the middle opens up a whole other series of problems and issues that are probably better to avoid entirely.  

Adding a widget to the panel through the + button in the widget dialog should always add it as full-size, never as part of a row.  That way, even if you have three rows (which makes it impossible to drop it between them) you can still add a full-sized widget.  Similarly, if you try to drop a widget on the very end of a row, it should be full-sized unless you hover it there for a moment, which would make it then shrink down to a row.  

If there are more than two rows, as you hover the widget at an end of the row it should start off as full size, then drop down to including all but one of the rows, then after a bit longer all but two of the rows, etc until it is the size of just one row.  Dropping between two rows should always make it the size of those two rows combined.  Having widgets that span rows is something I have not seen in other DEs that support multi-row panels (like windows), but something I have really wanted.

Dragging and dropping of whole rows is probably something to avoid, since doing it would make things really complicated (supporting multiple rows is complicated enough as it is for users).

Besides just adding flexibility, there are a number of more specific cases where this would be useful.  

For instance, if you want a taskbar that is only a single row but stretches the whole width of the panel, and you want things like quick launch, quick access, the clock, and the system tray to be on the same panel, you really need separate rows.  You can have one row for the taskbar, and one row where you position everything else.  Now say you want the application launcher to be the size of the entire panel, and not be on one of the rows.  You just drop it at the end of the panel and that is it.  

Another case would be to allow users to have separate lock, logout, suspend, hibernate, shut down, and restart widgets.  Then, instead of forcing users to have two specific widgets in a layout defined by the size of the panel, or forcing users to use complicated dialog boxes to configure the layout, they can just drag and drop the specific icons they want in the specific vertical and horizontal layout they want.  Of course you would keep the standard lock/logout widget, but more advanced users could make their own by using individual icons without requiring any configuration on their part.  You could give just a single widget and have a dialog box which selects which specific action clicking that widget will have.  Then users can have as many instances of the widget as they want for as many lock and logout options as they want.
Comment 1 Beat Wolf 2009-09-03 15:49:35 UTC

*** This bug has been marked as a duplicate of bug 165792 ***
Comment 2 Todd 2009-09-08 18:46:08 UTC
These are not the same ideas.  My idea allows for widgets on multiple rows as if there are two panels, but also allows for widgets that span multiple rows, and having different numbers of rows at different points along the panel.
Comment 3 Todd 2009-09-08 18:48:08 UTC

*** This bug has been marked as a duplicate of bug 65792 ***