diff options
author | hjk <qthjk@ovi.com> | 2013-01-18 13:43:40 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-08 15:49:48 +0100 |
commit | efbecc1a94250e6fc55b3c31bab18819d2a07ccf (patch) | |
tree | ad4e9de8e1288ff840a3d95c450c7082ed3ec5c9 /src/widgets/widgets/qmenu.cpp | |
parent | c6cb4ddbf9401ca430a0c0fb0324040313131658 (diff) |
Allow actions in a QMenu to show their tooltips
This introduces a property QMenu::toolTipsVisible with
default value set to 'false'.
Task-number: QTBUG-13663
Task-number: QTBUG-2362
Change-Id: I13079609e2a92adc71b2bbff3dd94494cde1f586
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src/widgets/widgets/qmenu.cpp')
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 922a38b324..12b926e6de 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -67,6 +67,7 @@ #include "qwidgetaction.h" #include "qtoolbutton.h" #include "qpushbutton.h" +#include "qtooltip.h" #include <private/qpushbutton_p.h> #include <private/qaction_p.h> #include <private/qguiapplication_p.h> @@ -2368,6 +2369,19 @@ QMenu::event(QEvent *e) if (d->currentAction) d->popupAction(d->currentAction, 0, false); break; +#ifndef QT_NO_TOOLTIP + case QEvent::ToolTip: + if (d->toolTipsVisible) { + const QHelpEvent *ev = static_cast<const QHelpEvent*>(e); + if (const QAction *action = actionAt(ev->pos())) { + const QString toolTip = action->d_func()->tooltip; + if (!toolTip.isEmpty()) + QToolTip::showText(ev->globalPos(), toolTip, this); + return true; + } + } + break; +#endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS case QEvent::QueryWhatsThis: e->setAccepted(d->whatsThis.size()); @@ -3089,6 +3103,32 @@ void QMenu::setSeparatorsCollapsible(bool collapse) d->platformMenu->syncSeparatorsCollapsible(collapse); } +/*! + \property QMenu::toolTipsVisible + \since 5.1 + + \brief whether tooltips of menu actions should be visible + + This property specifies whether action menu entries show + their tooltip. + + By default, this property is false. +*/ +bool QMenu::toolTipsVisible() const +{ + Q_D(const QMenu); + return d->toolTipsVisible; +} + +void QMenu::setToolTipsVisible(bool visible) +{ + Q_D(QMenu); + if (d->toolTipsVisible == visible) + return; + + d->toolTipsVisible = visible; +} + QT_END_NAMESPACE // for private slots |