ToolTipAreas are often the critical path for mouse handling, since
hover events are not filterable from below in the item hierarchy.
When disabling tooltips also stops updating containsMouse code has
no way to adapt, since there's no API to read the pref from within
QML. This changes the implementation of the pref to only prevent
tooltips from being shown, but still continue to handle hover events.
ToolTipDialog is not a Q_GLOBAL_STATIC because QQuickwindows as global static
are deleted too later after some stuff in the qml runtime has already been deleted,
causing a crash on exit
This is useful to be able to disable tooltips when a dialog exists.
We don't use the QQuickItem::enabled property as this propagates onto
children and has side effects.
REVIEW: 115623
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.
The mainItem is now a Component, which gets created on demand and passed
to the tooltip dialog.
Positioning is a bit off now, but it basically seems to work as we'd
like it to.
This implementation deviates a bit from the Plasma 1 tooltips:
- image is now a string
- tooltips align to the parent by default, or the visualParent set
Otherwise, the changes should be fairly transparant.
A crude basic featureset works.
ToolTipProxy is now a QQuickWindow and renamed to ToolTipWindow.
This is done in C++.
ToolTip itself is a QML file, which internally uses tooltipwindow to
display the attached item.
Basic showing / hiding and embedding an Item works, positioning,
margins, etc are not implemented yet. Neither are special windowmanager
hints and flags.
All cpp code moves into the src/ subdirectory, as the Frameworks policy
suggests.
Directory structure should now be in line with other, future frameworks.