Core: Show keyboard sequence for navigation widgets

Fixes: QTCREATORBUG-26293
Change-Id: Ifc1df96b063365ee5b27684cb4efb33be2608582
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Eike Ziller
2021-09-21 16:21:33 +02:00
parent de3e3e7af1
commit 8437903295
3 changed files with 13 additions and 2 deletions

View File

@@ -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 <coreplugin/icore.h>
@@ -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<Id>();
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); });
}
}