this is much clearer, does the same thing and has the benefit of being able to pre-emptively hide the tip in toolTipAboutToShow!
svn path=/trunk/KDE/kdelibs/; revision=903158
This commit is contained in:
parent
014514e808
commit
ea41519c3c
@ -241,12 +241,8 @@ void ToolTip::setContent(QObject *tipper, const ToolTipContent &data)
|
||||
}
|
||||
}
|
||||
|
||||
void ToolTip::prepareShowing(bool cueUpdate)
|
||||
void ToolTip::prepareShowing()
|
||||
{
|
||||
if (cueUpdate && d->source) {
|
||||
QMetaObject::invokeMethod(d->source, "toolTipAboutToShow");
|
||||
}
|
||||
|
||||
if (d->preview->windowId() != 0) {
|
||||
// show/hide the preview area
|
||||
d->preview->show();
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
~ToolTip();
|
||||
|
||||
void setContent(QObject *tipper, const ToolTipContent &data);
|
||||
void prepareShowing(bool cueUpdate);
|
||||
void prepareShowing();
|
||||
void moveTo(const QPoint &to);
|
||||
bool autohide() const;
|
||||
void setDirection(Plasma::Direction);
|
||||
|
@ -300,36 +300,21 @@ void ToolTipManagerPrivate::showToolTip()
|
||||
return;
|
||||
}
|
||||
|
||||
QMetaObject::invokeMethod(currentWidget, "toolTipAboutToShow");
|
||||
QHash<QGraphicsWidget *, ToolTipContent>::const_iterator tooltip = tooltips.constFind(currentWidget);
|
||||
|
||||
if (tooltip == tooltips.constEnd()) {
|
||||
if (tooltip == tooltips.constEnd() || tooltip.value().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool justCreated = false;
|
||||
|
||||
if (tooltip.value().isEmpty()) {
|
||||
// give the object a chance for delayed loading of the tip
|
||||
QMetaObject::invokeMethod(currentWidget, "toolTipAboutToShow");
|
||||
tooltip = tooltips.constFind(currentWidget);
|
||||
//kDebug() << "attempt to make one ... we gots" << tooltip.isEmpty();
|
||||
|
||||
if (tooltip == tooltips.constEnd() || tooltip.value().isEmpty()) {
|
||||
currentWidget = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
justCreated = true;
|
||||
}
|
||||
|
||||
Containment *c = dynamic_cast<Containment *>(currentWidget->topLevelItem());
|
||||
kDebug() << "about to show" << justCreated << (QObject*)c;
|
||||
//kDebug() << "about to show" << (QObject*)c;
|
||||
if (c) {
|
||||
tipWidget->setDirection(Plasma::locationToDirection(c->location()));
|
||||
}
|
||||
|
||||
tipWidget->setContent(currentWidget, tooltip.value());
|
||||
tipWidget->prepareShowing(!justCreated);
|
||||
tipWidget->prepareShowing();
|
||||
tipWidget->moveTo(ToolTipManager::self()->m_corona->popupPosition(currentWidget, tipWidget->size()));
|
||||
tipWidget->show();
|
||||
isShown = true; //ToolTip is visible
|
||||
|
Loading…
Reference in New Issue
Block a user