From 2f9a721fbf50033f43e6a9cc4c5a69140397d92d Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 27 Sep 2016 11:07:12 +0200 Subject: [PATCH] Recent Sessions/Projects/Files: Clean up accelerators Don't show them for sessions on macOS, don't show any numbers > 9, and don't use colons. Change-Id: I34a60631e5d11a98f22cfcf374f8cec1a2964658 Reviewed-by: Orgad Shaneh --- src/plugins/coreplugin/actionmanager/actionmanager.cpp | 7 +++++++ src/plugins/coreplugin/actionmanager/actionmanager.h | 2 ++ src/plugins/coreplugin/mainwindow.cpp | 6 +----- src/plugins/projectexplorer/projectexplorer.cpp | 10 +++------- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp index 3bd250c98d1..e3771101b75 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -359,6 +359,13 @@ bool ActionManager::isPresentationModeEnabled() return d->m_presentationModeEnabled; } +QString ActionManager::withNumberAccelerator(const QString &text, const int number) +{ + if (Utils::HostOsInfo::isMacHost() || number > 9) + return text; + return QString("&%1 | %2").arg(number).arg(text); +} + void ActionManager::saveSettings() { d->saveSettings(); diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.h b/src/plugins/coreplugin/actionmanager/actionmanager.h index d1128b984b9..2f29eac491a 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.h +++ b/src/plugins/coreplugin/actionmanager/actionmanager.h @@ -73,6 +73,8 @@ public: static void setPresentationModeEnabled(bool enabled); static bool isPresentationModeEnabled(); + static QString withNumberAccelerator(const QString &text, const int number); + signals: void commandListChanged(); void commandAdded(Core::Id id); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 7807575f5d8..1ae36a07e8d 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -1070,12 +1070,8 @@ void MainWindow::aboutToShowRecentFiles() for (int i = 0; i < recentFiles.count(); ++i) { const DocumentManager::RecentFile file = recentFiles[i]; - const int acceleratorKey = i + 1; - const QString textPattern = acceleratorKey < 10 ? QStringLiteral("&%1: %2") : QStringLiteral("%1: %2"); const QString filePath = QDir::toNativeSeparators(withTildeHomePath(file.first)); - const QString actionText = HostOsInfo::isMacHost() - ? filePath - : textPattern.arg(acceleratorKey).arg(filePath); + const QString actionText = ActionManager::withNumberAccelerator(filePath, i + 1); QAction *action = menu->addAction(actionText); connect(action, &QAction::triggered, this, [file] { EditorManager::openEditor(file.first, file.second); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 533aec4c940..d6f522a4acd 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2830,10 +2830,8 @@ void ProjectExplorerPluginPrivate::updateRecentProjectMenu() if (fileName.endsWith(QLatin1String(".qws"))) continue; - const QString textTemplate = acceleratorKey < 10 ? QStringLiteral("&%1: %2") : QStringLiteral("%1: %2"); - const QString actionText = Utils::HostOsInfo::isMacHost() - ? Utils::withTildeHomePath(fileName) - : textTemplate.arg(acceleratorKey).arg(Utils::withTildeHomePath(fileName)); + const QString actionText = ActionManager::withNumberAccelerator( + Utils::withTildeHomePath(fileName), acceleratorKey); QAction *action = menu->addAction(actionText); connect(action, &QAction::triggered, this, [this, fileName] { openRecentProject(fileName); @@ -3310,9 +3308,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu() for (int i = 0; i < sessions.size(); ++i) { const QString &session = sessions[i]; - const int acceleratorKey = i + 1; - QString textTemplate = acceleratorKey < 10 ? QStringLiteral("&%1: %2") : QStringLiteral("%1: %2"); - QString actionText = textTemplate.arg(acceleratorKey).arg(session); + const QString actionText = ActionManager::withNumberAccelerator(session, i + 1); QAction *act = ag->addAction(actionText); act->setData(session); act->setCheckable(true);