ribbon widgets titles show associated keyboard shortcuts

This commit is contained in:
zadam
2021-07-05 09:44:41 +02:00
parent b68bdc5005
commit 9ca225b40f
13 changed files with 68 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
import NoteContextAwareWidget from "../note_context_aware_widget.js";
import keyboardActionsService from "../../services/keyboard_actions.js";
const TPL = `
<div class="ribbon-container">
@@ -208,7 +209,8 @@ export default class RibbonContainer extends NoteContextAwareWidget {
.attr('data-ribbon-component-name', ribbonWidget.name)
.append($('<span class="ribbon-tab-title-icon">')
.addClass(ret.icon)
.attr("title", ret.title))
.attr("data-title", ret.title)
.attr('data-toggle-command', ribbonWidget.toggleCommand))
.append(" ")
.append($('<span class="ribbon-tab-title-label">').text(ret.title));
@@ -224,7 +226,22 @@ export default class RibbonContainer extends NoteContextAwareWidget {
}
}
this.$tabContainer.find('.ribbon-tab-title-icon').tooltip();
keyboardActionsService.getActions().then(actions => {
this.$tabContainer.find('.ribbon-tab-title-icon').tooltip({
title: function() {
const toggleCommandName = $(this).attr("data-toggle-command");
const action = actions.find(act => act.actionName === toggleCommandName);
const title = $(this).attr("data-title");
if (action && action.effectiveShortcuts.length > 0) {
return `${title} (${action.effectiveShortcuts.join(", ")})`;
}
else {
return title;
}
}
});
});
if (!$ribbonTabToActivate) {
$ribbonTabToActivate = $lastActiveRibbon;