forked from qt-creator/qt-creator
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 <eike.ziller@qt.io>
This commit is contained in:
@@ -251,13 +251,17 @@ DockWidget::DockWidget(QWidget *inner, FancyMainWindow *parent, bool immutable)
|
|||||||
setWidget(inner);
|
setWidget(inner);
|
||||||
setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable);
|
setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable);
|
||||||
setObjectName(inner->objectName() + QLatin1String("DockWidget"));
|
setObjectName(inner->objectName() + QLatin1String("DockWidget"));
|
||||||
setWindowTitle(inner->windowTitle());
|
|
||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
|
|
||||||
|
QString title = inner->windowTitle();
|
||||||
|
toggleViewAction()->setProperty("original_title", title);
|
||||||
|
title = Utils::stripAccelerator(title);
|
||||||
|
setWindowTitle(title);
|
||||||
|
|
||||||
QStyleOptionDockWidget opt;
|
QStyleOptionDockWidget opt;
|
||||||
initStyleOption(&opt);
|
initStyleOption(&opt);
|
||||||
m_titleBar = new TitleBarWidget(this, opt);
|
m_titleBar = new TitleBarWidget(this, opt);
|
||||||
m_titleBar->m_titleLabel->setText(inner->windowTitle());
|
m_titleBar->m_titleLabel->setText(title);
|
||||||
setTitleBarWidget(m_titleBar);
|
setTitleBarWidget(m_titleBar);
|
||||||
|
|
||||||
if (immutable)
|
if (immutable)
|
||||||
@@ -527,7 +531,9 @@ void FancyMainWindow::addDockActionsToMenu(QMenu *menu)
|
|||||||
QDockWidget *dockWidget = dockwidgets.at(i);
|
QDockWidget *dockWidget = dockwidgets.at(i);
|
||||||
if (dockWidget->property("managed_dockwidget").isNull()
|
if (dockWidget->property("managed_dockwidget").isNull()
|
||||||
&& dockWidget->parentWidget() == this) {
|
&& 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) {
|
Utils::sort(actions, [](const QAction *action1, const QAction *action2) {
|
||||||
|
Reference in New Issue
Block a user