The tooltip state. Not that good. Proposal for improvement.

Aaron J. Seigo aseigo at kde.org
Sun May 27 07:43:05 UTC 2012


On Saturday, May 26, 2012 03:08:41 Mark wrote:
> For dolphin i can understand the reason to have it's own tooltip class
> because it wants to fetch the tooltip data in a separate process in order
> to prevent a crash in the tooltip from crashing dolphin.

there is no reason this could not be accomodated in the Plasma tooltips. the 
file icon would specify that it has a tooltip, when shown the manager sends it 
the about to show signal, it starts the process of fetching data, when that 
arrives it actually populates the tooltip content.

> To get this in a workable situation where anyone can use the tooltips as
> they seem right we probably have to make a new ToolTipManager altogether.

there are 3 classes in Plasma's tooltip system:

ToolTipManager -> this one keeps track of which items have tooltips, owns the 
tooltip UI, shows/hides the actual tooltip and tells widgets when they should 
be updating their content because the tooltip will be shown (and again when to 
stop because it will be hidden)

ToolTipContent -> this one stores what is in the tooltip itself and is used by 
the widget to tell the manager what should be shown

ToolTip -> this is a private class, and handles the UI display

styling belongs to ToolTip. definition belongs to ToolTipContent. management to 
ToolTipManager. 

so if it is an issue of styling and controlling that style, then ToolTip would 
need adjustment and perhaps ToolTipContent to direct which style to use. 
ToolTipManager probably wouldn't get touched.

however, do we really need radically different visual styles?

all three application have a pixmap on the left and text on the right. the 
text on the right changes a fair amount from app to app, though: in 
systemsettings it is a category, a separator and a listing; in dolpin, it's a 
title, a separator, and a nicely aligned table of metadata. in Plasma we see 
very similar arrangements in the clock with multiple timezones and in the 
pager displaying multiple windows.

so i'm not sure it's a styling issue at all, and would in fact suggest that 
having a consistent presentation would be an improvement over the current 
situation.

there are things that could use some improving, however:

* Plasma::ToolTipManager is fairly focused on QGraphicsWidget. making it 
usable with QWidgets and ready for QML2 is probably important.

* it assumes one tooltip per widget; this was an issue for folderview, which 
it worked around by putting an invisible item over the item the mouse was 
over. perhaps this could have been different in folderview, however, and isn't 
a real problem in practice.

* ToolTipManager uses QMetaObject::invokeMethod to call toolTipAboutToShow and 
toolTipAboutToHide in items that have tooltips. it would be nice to have a 
more elegant way to do this, in particular a mechanism that would work nicely 
with QML2 and which allows the widget with the tooltip to define the 
connection.

so there are certainly some design issues to be addressed.

as for content, it would be interesting to see if ToolTipContent could be 
extended in some way to more easily accomodate the needs of things like 
showing a table of data (perhaps a QHash<QString, QString> .. what does 
dolphin use for this datastructure?)

> The current one is _way_ to much tailored at tooltips for the tasks
> plasmoid and doesn't leave much room for customization (correct me if i'm
> wrong). 

the tooltips in Plasma are used by pretty much everything in Plasma. the only 
thing specific to the tasks plasmoid in them is the ability to view previews of 
windows.

most things that use the tooltips ignore this feature cmpletely as it is not 
relevant to them. it is a requirement of some uses, such as in the tasks 
widget.

so i wouldn't say that the current tooltips are too tailored to the tasks 
widget as they are used, well, everywhere.

> I would like to suggest a ToolTipManager with styles! Not themes! I

perhaps this can be determined by the content rather than by explicitly 
setting the style in the application, which is probably just asking for 
inconsistencies. i also don't like the idea of having to subclass things just 
to get a nice tooltip in an application. it's both too much effort and too much 
of an invitation for inconsistency.

i realy wonder if the existing Plasma::ToolTipManager could not just be used 
in system settings already? if it is because it is too QGraphicsView centric, 
let's fix that first ...

i do think this is a good project that can bring a very nice improvement in 
looks and consistency... thanks for taking it on! :)

-- 
Aaron J. Seigo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20120527/072f83f2/attachment.sig>


More information about the Plasma-devel mailing list