diff --git a/src/plugins/coreplugin/navigationsubwidget.cpp b/src/plugins/coreplugin/navigationsubwidget.cpp index bb439d4eff4..fd516d4306c 100644 --- a/src/plugins/coreplugin/navigationsubwidget.cpp +++ b/src/plugins/coreplugin/navigationsubwidget.cpp @@ -26,8 +26,9 @@ #include "navigationsubwidget.h" #include "navigationwidget.h" -#include "inavigationwidgetfactory.h" +#include "actionmanager/actionmanager.h" #include "actionmanager/command.h" +#include "inavigationwidgetfactory.h" #include @@ -148,7 +149,15 @@ void NavigationSubWidget::populateSplitMenu() int count = factoryModel->rowCount(); for (int i = 0; i < count; ++i) { QModelIndex index = factoryModel->index(i, 0); - QAction *action = m_splitMenu->addAction(factoryModel->data(index).toString()); + const Id id = factoryModel->data(index, NavigationWidget::FactoryActionIdRole).value(); + Command *command = ActionManager::command(id); + const QString factoryName = factoryModel->data(index).toString(); + const QString displayName = command->keySequence().isEmpty() + ? factoryName + : QString("%1 (%2)").arg(factoryName, + command->keySequence().toString( + QKeySequence::NativeText)); + QAction *action = m_splitMenu->addAction(displayName); connect(action, &QAction::triggered, this, [this, i]() { emit splitMe(i); }); } } diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp index 05bce9431dc..5df66ec27b8 100644 --- a/src/plugins/coreplugin/navigationwidget.cpp +++ b/src/plugins/coreplugin/navigationwidget.cpp @@ -263,6 +263,7 @@ void NavigationWidget::setFactories(const QList &fac QStandardItem *newRow = new QStandardItem(factory->displayName()); newRow->setData(QVariant::fromValue(factory), FactoryObjectRole); newRow->setData(QVariant::fromValue(factory->id()), FactoryIdRole); + newRow->setData(QVariant::fromValue(actionId), FactoryActionIdRole); newRow->setData(factory->priority(), FactoryPriorityRole); d->m_factoryModel->appendRow(newRow); } diff --git a/src/plugins/coreplugin/navigationwidget.h b/src/plugins/coreplugin/navigationwidget.h index 7d18acba58b..cfa983a43cb 100644 --- a/src/plugins/coreplugin/navigationwidget.h +++ b/src/plugins/coreplugin/navigationwidget.h @@ -82,6 +82,7 @@ public: enum FactoryModelRoles { FactoryObjectRole = Qt::UserRole, FactoryIdRole, + FactoryActionIdRole, FactoryPriorityRole };