summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qtoolbutton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/widgets/qtoolbutton.cpp')
-rw-r--r--src/widgets/widgets/qtoolbutton.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/widgets/widgets/qtoolbutton.cpp b/src/widgets/widgets/qtoolbutton.cpp
index 93f0b60058..69432761e6 100644
--- a/src/widgets/widgets/qtoolbutton.cpp
+++ b/src/widgets/widgets/qtoolbutton.cpp
@@ -897,7 +897,12 @@ void QToolButton::setDefaultAction(QAction *action)
return;
if (!actions().contains(action))
addAction(action);
- setText(action->text());
+ QString buttonText = action->iconText();
+ // If iconText() is generated from text(), we need to escape any '&'s so they
+ // don't turn into shortcuts
+ if (QActionPrivate::get(action)->iconText.isEmpty())
+ buttonText.replace(QLatin1String("&"), QLatin1String("&&"));
+ setText(buttonText);
setIcon(action->icon());
#ifndef QT_NO_TOOLTIP
setToolTip(action->toolTip());