open applet handles when the toolbox is open

Authored by mart on Mar 7 2017, 7:15 PM.



this makes a mini "edit mode" when the toolbox is open, opening
all the applet handles.
It is coherent with the panel and partly solves the unintuitiveness
of the press and hold for the handle

Test Plan

open the toolbox, clicking on an empty area or on another window closes it
clicking anywhere on an applet handle executes the action and doesn't close it.
is possible to resize, move and close applets without closing any handle or
the toolbox.

Unfortunately there is a timer more in the toolbox that i tried really hard to kill
but i didn't manage to have the correct behavior otherwise (ideas welcome)

Diff Detail

R119 Plasma Desktop
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
mart created this revision.Mar 7 2017, 7:15 PM
Restricted Application added a project: Plasma. · View Herald TranscriptMar 7 2017, 7:15 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript

Tried it out, expecting to find it difficult to use, acutally quite liked it. Surprisingly simple too.

One problem:

  • have multiscreen
  • click toolbox on left
  • drag widget from left screen to right
  • handles disappear mid drag

Maybe we can just set temporaryShowAppletHandle on a drag start too?

I'd also like to see this setting going via Plasma::Contianment instead of AppletHandle sniffing random properties in the parent component scope.
That will allow us to throw this in a context menu too - and some applets should disable their own popups and tooltips when in this mode.

Can we re-use isUserConfiguring?

mart added a comment.Mar 14 2017, 10:05 AM

Can we re-use isUserConfiguring?

i don't think so, because isUserConfiguring means the config dialog is open. at most, i would move it in an extra property in the root item

mart added a comment.Mar 14 2017, 10:53 AM

tested it more, and this is normal, even with the old way.
I don't think there is much that can be done in general, because when the applet changes containment, its appletappearance (and its mouseeventlistener used to drag ght thing around) gets deleted, and the applet reparented to a new one.
I tried to see what would be needed to recycle the same appletappearance, but the codepath is going trough Containment::addApplet, i would like to keep it that way

davidedmundson accepted this revision.Mar 23 2017, 12:53 PM
This revision is now accepted and ready to land.Mar 23 2017, 12:53 PM
This revision was automatically updated to reflect the committed changes.