diff --git a/web/app/cad/actions/actionSystemPlugin.js b/web/app/cad/actions/actionSystemPlugin.js index 15bc89dd..f56920bd 100644 --- a/web/app/cad/actions/actionSystemPlugin.js +++ b/web/app/cad/actions/actionSystemPlugin.js @@ -1,9 +1,12 @@ import {createToken} from 'bus'; +import {enableAnonymousActionHint} from "./anonHint"; export function activate(context) { let {bus} = context; + let showAnonymousActionHint = enableAnonymousActionHint(context); + function run(id, data) { bus.dispatch(TOKENS.actionRun(id), data); } @@ -38,7 +41,13 @@ export function activate(context) { bus.subscribe(event, stateUpdater); } } - bus.subscribe(TOKENS.actionRun(action.id), (data) => action.invoke(context, data)); + bus.subscribe(TOKENS.actionRun(action.id), data => { + if (bus.state[stateToken].enabled) { + action.invoke(context, data) + } else { + showAnonymousActionHint(action.id); + } + }); } bus.enableState(TOKENS.HINT, null); @@ -51,7 +60,7 @@ export function activate(context) { } synchActionHint(bus); - + context.services.action = {run, registerAction, registerActions} } diff --git a/web/app/cad/actions/anonHint.js b/web/app/cad/actions/anonHint.js new file mode 100644 index 00000000..c2a05140 --- /dev/null +++ b/web/app/cad/actions/anonHint.js @@ -0,0 +1,22 @@ +import {TOKENS} from "./actionSystemPlugin"; + +export function enableAnonymousActionHint({bus, services}) { + + let autoHideCanceled = true; + bus.subscribe(TOKENS.SHOW_HINT_FOR, () => autoHideCanceled = true); + + return function(actionId) { + let {left, top} = services.dom.viewerContainer.getBoundingClientRect(); + bus.dispatch(TOKENS.SHOW_HINT_FOR, { + actionId, + x: left + 100, + y: top + 10 + }); + autoHideCanceled = false; + setTimeout(() => { + if (!autoHideCanceled) { + bus.dispatch(TOKENS.SHOW_HINT_FOR, null); + } + }, 1000); + } +} \ No newline at end of file diff --git a/web/app/cad/keyboard/keymaps/default.js b/web/app/cad/keyboard/keymaps/default.js index e38b856c..33f22652 100644 --- a/web/app/cad/keyboard/keymaps/default.js +++ b/web/app/cad/keyboard/keymaps/default.js @@ -1,12 +1,12 @@ export default { - 'CUT': 'C', - 'EXTRUDE': 'E', + 'CUT': 'c', + 'EXTRUDE': 'e', 'ZoomIn': '+', 'ZoomOut': '-', - 'menu.craft': 'shift+C', - 'menu.primitives': 'shift+A', + 'menu.craft': 'shift+c', + 'menu.primitives': 'shift+a', 'menu.main': 'space', - 'Save': 'ctrl+S', + 'Save': 'ctrl+s', 'Info': 'F1', 'DebugOpenBrepDebugger': 'ctrl+b' };