show keyboard shortcut

Matthias Bussonnier 11 years ago
parent 073f1c1b0d
commit daf7afb940

@ -18,7 +18,7 @@ define([
/**
* Setup global keycodes and inverse keycodes.
*
*
* See http://unixpapa.com/js/key.html for a complete description. The short of
* it is that there are different keycode sets. Firefox uses the "Mozilla keycodes"
* and Webkit/IE use the "IE keycodes". These keycode sets are mostly the same
@ -190,7 +190,7 @@ define([
/**
* Clear the pending shortcut soon, and cancel previous clearing
* that might be registered.
**/
**/
var that = this;
clearTimeout(this._cleartimeout);
this._cleartimeout = setTimeout(function(){that.clearqueue();}, this.delay);
@ -225,6 +225,17 @@ define([
}
return dct;
};
ShortcutManager.prototype.get_shortcut_for_action_name = function(name){
var ftree = flatten_shorttree(this._shortcuts);
var res = {};
for (var sht in ftree ){
if(ftree[sht] === name){
return sht
}
}
return undefined;
}
ShortcutManager.prototype.help = function () {
var help = [];

@ -33,27 +33,61 @@ define(function(require){
}).on('shown.bs.modal', function () {
input.focus();
});
var onSubmit = function (node, query, result, resultCount) {
console.log(node, query, result, resultCount);
if (actions.indexOf(result.key) >= 0) {
IPython.notebook.keyboard_manager.actions.call(result.key);
} else {
console.log("No command " + result.key)
}
mod.modal('hide');
}
var src = [];
var actions = Object.keys(IPython.notebook.keyboard_manager.actions._actions);
var hum = function(str){
return str.split('.')[1].replace(/-/g,' ').replace(/_/g,'-')
}
var mode = function(name){
var sht = IPython.keyboard_manager.command_shortcuts.get_shortcut_for_action_name(name)
if(sht){
return 'command-sht'
}
var sht = IPython.keyboard_manager.edit_shortcuts.get_shortcut_for_action_name(name)
if(sht){
return 'edit-sht'
}
return 'no-sht'
}
for( var i=0; i< actions.length; i++){
src.push({ display: hum(actions[i]),
shortcut:IPython.keyboard_manager.command_shortcuts.get_shortcut_for_action_name(actions[i])
|| IPython.keyboard_manager.edit_shortcuts.get_shortcut_for_action_name(actions[i])||'== no-sht== ',
key:actions[i],
group: actions[i].split('.')[0],
modesht: mode(actions[i])
})
}
input.typeahead({
minLength: 0,
hint: true,
searchOnFocus: true,
mustSelectItem: true,
template: '{{display}} <kbd class="pull-right {{modesht}}">{{shortcut}}</kbd>',
order: "asc",
source: {
groupName: {
data: actions
}
data: src
},
callback: {
onInit: function () {console.log('this is init') },
onSubmit: function (node, query, result, resultCount) {
console.log(node, query, result, resultCount);
console.info(input.val(), 'has been selected');
if (actions.indexOf(input.val()) >= 0) {
IPython.notebook.keyboard_manager.actions.call(input.val());
}
else {
console.log("No command " + input.val());
}
mod.modal('hide');
}
onSubmit: onSubmit ,
onClickAfter: onSubmit
}
})
@ -61,4 +95,3 @@ define(function(require){
}
return {'CommandPalette': CommandPalette};
});

@ -88,3 +88,19 @@ p {
background-color: @page-backdrop-color;
}
}
kbd{
border-radius: 5px;
&.command-sht{
color: #80DBC4;
}
&.edit-sht{
color: #CABD81
}
&.no-sht{
display:none;
}
}

Loading…
Cancel
Save