This removes the last dependency from plasma-framework on kde4support.
This change is a bit more involved than other kde4support removals because
QSharedPointer does not provide a count() method. I therefore reworked the code
to store the SharedSvgRenderer as a QWeakPointer in s_renderers, making it
possible to detect when the last one goes away by creating a QWeakPointer guard
in SvgPrivate::eraseRenderer().
REVIEW: 114912
ToolTipArea.containsMouse allows the use to update the tooltip way
before it's shown, or when the contents of the tooltip should change
within an open dialog.
dismiss() and keepalive() allow handing over the tooltip dialog to
another item, in order to allow for a smoother handover when a new item
recycles the tooltipdialog. This avoids flickering when the tooltip
moves from one item to another.
Instead of registering WidgetExplorer inside the shell, create a new qml
plugin in the org.kde.plasma.private namespace.
This is useful for running widgetexplorer in qmlscene.
This makes testing, debugging and profiling considerably easier.
REVIEW: 114914
Saves quite a lot of roundtrips to the XServer. Most important we
fetch the atom only once which means we don't have to refetch when
checking the property notify events.
REVIEW: 112445
- Derive from MouseEventListener as to let input through
- react to target changes: reparent the MEL accordingly
- kill a bunch of warnings
This "helps" a bit, but still filters out input events since the MEL
only passes events down to children, but the tooltip's target becomes
its parent.
Reparenting the target crashes, and it seems a pretty ugly thing to do,
anyway, since we don't want to mess with the scenegraph structure just
to filter events out for tooltips. Grmblz.
This uses a MouseEventListener and a MouseArea to test whether the
tooltip redirects events, and tests a common implementation scenario
with one shared tooltip.
This test (willingly) exposes a problem that with the MouseArea, we
filter out all mouse events, and the target loses input. I.e. the last
image in the row doesn't receive the click.