From edcce9c1f3d0bb26002a0d8ab8e21103a1ad3102 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 Nov 2017 11:23:46 +0100 Subject: [PATCH] Do not show accelerators in dock window titles The dock widget's togglViewActions text is tied to the widget title, but the view headers should not display a potential "&" accelerator. So stash the &'d string away when setting up the title and retrieve it when re-creating the view menu. Task-number: QTCREATORBUG-19378 Change-Id: I6bf49ca526d12ddd57dfa33a94327a83baeaa6b4 Reviewed-by: Eike Ziller --- src/libs/utils/fancymainwindow.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp index 06fe65fb369..5ce2c25b368 100644 --- a/src/libs/utils/fancymainwindow.cpp +++ b/src/libs/utils/fancymainwindow.cpp @@ -251,13 +251,17 @@ DockWidget::DockWidget(QWidget *inner, FancyMainWindow *parent, bool immutable) setWidget(inner); setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable); setObjectName(inner->objectName() + QLatin1String("DockWidget")); - setWindowTitle(inner->windowTitle()); setMouseTracking(true); + QString title = inner->windowTitle(); + toggleViewAction()->setProperty("original_title", title); + title = Utils::stripAccelerator(title); + setWindowTitle(title); + QStyleOptionDockWidget opt; initStyleOption(&opt); m_titleBar = new TitleBarWidget(this, opt); - m_titleBar->m_titleLabel->setText(inner->windowTitle()); + m_titleBar->m_titleLabel->setText(title); setTitleBarWidget(m_titleBar); if (immutable) @@ -527,7 +531,9 @@ void FancyMainWindow::addDockActionsToMenu(QMenu *menu) QDockWidget *dockWidget = dockwidgets.at(i); if (dockWidget->property("managed_dockwidget").isNull() && dockWidget->parentWidget() == this) { - actions.append(dockwidgets.at(i)->toggleViewAction()); + QAction *action = dockWidget->toggleViewAction(); + action->setText(action->property("original_title").toString()); + actions.append(action); } } Utils::sort(actions, [](const QAction *action1, const QAction *action2) {