How to display the insert index when sorting manually (Tasks applet)

Aaron J. Seigo aseigo at kde.org
Tue Mar 17 17:23:15 CET 2009


On Tuesday 17 March 2009, Christian Mollekopf wrote:
> On Mon, 16 Mar 2009 17:28:33 -0600, "Aaron J. Seigo" <aseigo at kde.org>
>
> said:
> > On Monday 16 March 2009, Christian Mollekopf wrote:
> > > On Monday 16 March 2009 18:14:33 Aaron J. Seigo wrote:
> > > > On Sunday 15 March 2009, Christian Mollekopf wrote:
> > > > > Therefore i suggest using a cursor like bar to display the insert
> > > > > index.
> > > >
> > > > probably much easier would be to simply adjust the drawing of the
> > > > item itself rather than inserting a whole new item and managing the
> > > > layout issues.
> > > >
> > > > so if this is a "regular" item:
> > > >
> > > > [ icon title ]
> > > >
> > > > a spacer drop would be:
> > > >
> > > > [ ] [icontitle]
> > >
> > > But how would this look with a vertical taskbar?
> >
> > the item would likely increase its size vertically and pain the
> > indicator.
> >
> > > > the layout would still see it as one item because, well, it would be.
> > > >
> > > > the beauty of this approach is:
> > > >
> > > > * you don't need to coordinate multiple items, each AbstractTaskItem
> > > > just handles its own dragEnter/dragHover/dragLeave events
> > > >
> > > > * the layout is completely uninvolved in the process
> > >
> > > Currently the whole logic is in taskGroupItem, so only expanded tasks
> > > accept the drag*events.
> >
> > that's fine. the items can also react to them, but then pass the event on
> > unaccepted.
> >
> > > I think i will stick to displaying  a bar on the insert index if there
> > > aren't any objections.
> >
> > this is inconsistent with how other items in the plasma desktop shell
> > work and
> > is pretty old school. you'll also run into "doesn't fit" issues in edge
> > cases,
> > and painting it in the abstract item should be perfectly feasible.
>
> So should each item display a bar inside the task, or shouldn't there be
> any bar and only the text moves a bit away form the edge?

the whole frame and text would move, yes.

> The bar is displayed by adding a QGraphicsWidget directly to the scene()
> instead of inserting it into the layout. This has the advantage that it
> doesn't make the whole operation "nervous" since nothing moves.

right, though that's the same thing with the method i described above.

> have a look at http://tinypic.com/view.php?pic=2mm7oti&s=5 if you wan't
> to see how it looks atm.
>
> I know the cursors is a bit tiny, but this can be improved.

yes, it took me quite a bit to actually see it at all. it's probably more 
apparent when actually using it as it will appear and disappear.

anyways .. what i really don't like about this is that it takes our common 
visual for "this is a drop location" (the rounded grey translucent rect) and 
changes its meaning in this one case to "this is what is being dragged".

changing the meaning of a visual hint is not good.

*thinks*

what might be cool, actually, is to only turn it into a QDrag when it leaves 
the taskbar and when it is in the tasks widget just move the item around 
directly much as we do in the panel.

though in the case of the tasks widget, there's also the possibility to group 
things, so it can't just move around to the left/right of items exclusively.

ok, starting from scratch here and making it "plasma"

* items should be dragged directly and should not be dragged via 
representations (this is what we currently have, and it is very not plasma). 
this also completely solves the "nervous" nature of having items added/removed 
as it is directly responding to your movements.

* within the tasks widget, items should be dragged about directly, when it 
leaves the tasks widget a snapshot of the item should be made and that should 
be set as the drag icon (just as we currently do with extender items)

* to accommodate both grouping and rearranging, two different visual cues 
would be provided:

	* when grouping is possible, hovering over the center 1/2 of the task would 
cause the task group to highlight itself signifying it will be dropped on

	* when grouping is not possible (e.g. not turned on in the config) or when 
hovered on the 1/4 left/right part of the item, the hovered item will paint a 
small indicator to the left/right _within_ the item itself

this resolves *all* problems of adding additional items as you drag, removes 
the whole unplasma style of creating drag objects unnecessarily or with 
abstract representations ...

and again, handling of the representation should be done in the item being 
hovered, even if the actual drop is handled by the group.

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Software

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/plasma-devel/attachments/20090317/cf386554/attachment.sig 


More information about the Plasma-devel mailing list