allow tips to autohide; having them just stay there forever and ever is an annoyance. some tips need to be permanent to be useful though (e.g. on the clock) so introduced a way to make that happen. needed to get this in before we go BC =)

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=876166
This commit is contained in:
Aaron J. Seigo 2008-10-26 16:55:54 +00:00
parent 9dfd938d17
commit 5eb18a635b
4 changed files with 21 additions and 4 deletions

View File

@ -45,7 +45,8 @@ class ToolTipPrivate
imageLabel(0), imageLabel(0),
preview(0), preview(0),
windowToPreview(0), windowToPreview(0),
source(s) source(s),
autohide(true)
{ } { }
QLabel *label; QLabel *label;
@ -54,6 +55,7 @@ class ToolTipPrivate
WId windowToPreview; WId windowToPreview;
PanelSvg *background; PanelSvg *background;
QPointer<QObject> source; QPointer<QObject> source;
bool autohide;
}; };
void ToolTip::showEvent(QShowEvent *e) void ToolTip::showEvent(QShowEvent *e)
@ -115,6 +117,7 @@ void ToolTip::setContent(const ToolTipManager::Content &data)
d->imageLabel->setPixmap(data.image); d->imageLabel->setPixmap(data.image);
d->windowToPreview = data.windowToPreview; d->windowToPreview = data.windowToPreview;
d->preview->setWindowId(d->windowToPreview); d->preview->setWindowId(d->windowToPreview);
d->autohide = data.autohide;
if (isVisible()) { if (isVisible()) {
resize(sizeHint()); resize(sizeHint());
@ -162,6 +165,11 @@ void ToolTip::sourceDestroyed()
d->source = 0; d->source = 0;
} }
bool ToolTip::autohide() const
{
return d->autohide;
}
void ToolTip::updateTheme() void ToolTip::updateTheme()
{ {
d->background->setImagePath("widgets/tooltip"); d->background->setImagePath("widgets/tooltip");

View File

@ -41,7 +41,7 @@ public:
void setContent(const ToolTipManager::Content &data); void setContent(const ToolTipManager::Content &data);
void prepareShowing(bool cueUpdate); void prepareShowing(bool cueUpdate);
void setActivated(bool value); void setActivated(bool value);
bool isActivated(); bool autohide() const;
protected: protected:
void showEvent(QShowEvent *); void showEvent(QShowEvent *);

View File

@ -109,7 +109,8 @@ ToolTipManager *ToolTipManager::self()
} }
ToolTipManager::Content::Content() ToolTipManager::Content::Content()
: windowToPreview(0) : windowToPreview(0),
autohide(true)
{ {
} }
@ -146,7 +147,7 @@ void ToolTipManager::show(QGraphicsWidget *widget)
} }
if (d->currentWidget) { if (d->currentWidget) {
hide(d->currentWidget); //hide(d->currentWidget);
} }
d->hideTimer->stop(); d->hideTimer->stop();
@ -373,6 +374,12 @@ void ToolTipManagerPrivate::showToolTip()
tooltip->move(popupPosition(currentWidget, tooltip->size())); tooltip->move(popupPosition(currentWidget, tooltip->size()));
isShown = true; //ToolTip is visible isShown = true; //ToolTip is visible
tooltip->setVisible(true); tooltip->setVisible(true);
if (tooltip->autohide()) {
//kDebug() << "starting authoide";
delayedHide = true;
hideTimer->start(3000);
}
} }
bool ToolTipManager::eventFilter(QObject *watched, QEvent *event) bool ToolTipManager::eventFilter(QObject *watched, QEvent *event)

View File

@ -97,6 +97,8 @@ public:
QPixmap image; QPixmap image;
/** Id of a window if you want to show a preview */ /** Id of a window if you want to show a preview */
WId windowToPreview; WId windowToPreview;
/** Whether or not to autohide the tooltip, defaults to true */
bool autohide;
}; };
/** /**