mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 10:20:08 +00:00
doc + now new/edited kb items should be selected after edit in kb editor (+/- a known bug, see code)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
fb23c7bc27
commit
7f91b64360
@ -358,7 +358,7 @@ module.Util = ImageGridFeatures.Feature({
|
|||||||
//
|
//
|
||||||
// Example:
|
// Example:
|
||||||
// someAction: ['Test/Some action title',
|
// someAction: ['Test/Some action title',
|
||||||
// doc`This is an example...
|
// core.doc`This is an example...
|
||||||
// mult-iline...
|
// mult-iline...
|
||||||
// ...doc string that will be normalized and look the same but`
|
// ...doc string that will be normalized and look the same but`
|
||||||
// without the indent...`,
|
// without the indent...`,
|
||||||
|
|||||||
@ -396,6 +396,7 @@ module.GLOBAL_KEYBOARD = {
|
|||||||
// XXX experimenting with new style of doc strings, usable from the
|
// XXX experimenting with new style of doc strings, usable from the
|
||||||
// system... (for details see: core.doc)
|
// system... (for details see: core.doc)
|
||||||
|
|
||||||
|
// XXX need a clean deep copy to restore...
|
||||||
var KeyboardActions = actions.Actions({
|
var KeyboardActions = actions.Actions({
|
||||||
config: {
|
config: {
|
||||||
// Sets the target element to which the keyboard event handler
|
// Sets the target element to which the keyboard event handler
|
||||||
@ -487,6 +488,84 @@ var KeyboardActions = actions.Actions({
|
|||||||
function(){
|
function(){
|
||||||
thiis.__keyboard_config = GLOBAL_KEYBOARD }],
|
thiis.__keyboard_config = GLOBAL_KEYBOARD }],
|
||||||
keyHandler: ['- Interface/Get or set key handler',
|
keyHandler: ['- Interface/Get or set key handler',
|
||||||
|
// XXX this is essentially a copy of the docs for keyboard.handler(..),
|
||||||
|
// find a way to reuse...
|
||||||
|
core.doc`Get/set/unset handler for key...
|
||||||
|
|
||||||
|
In general if handler is not passed this will get the handlers,
|
||||||
|
if a handler is given this will set the handler, if the passed
|
||||||
|
handler is either null or '' then it will be unbound.
|
||||||
|
|
||||||
|
Get handler for key in all modes...
|
||||||
|
.keyHandler(<key>)
|
||||||
|
.keyHandler('*', <key>)
|
||||||
|
-> <info>
|
||||||
|
|
||||||
|
Get handlers for key in applicable modes...
|
||||||
|
.keyHandler('?', <key>)
|
||||||
|
.keyHandler('test', <key>)
|
||||||
|
-> <info>
|
||||||
|
|
||||||
|
Get handler for key in a specific mode...
|
||||||
|
.keyHandler(<mode>, <key>)
|
||||||
|
-> <info>
|
||||||
|
|
||||||
|
Get handler for key in a specific list of modes...
|
||||||
|
.keyHandler([ <mode>, .. ], <key>)
|
||||||
|
-> <info>
|
||||||
|
|
||||||
|
|
||||||
|
Bind handler to key in specific mode...
|
||||||
|
.keyHandler(mode, key, handler)
|
||||||
|
-> this
|
||||||
|
|
||||||
|
Bind handler to key in all modes...
|
||||||
|
.keyHandler('*', key, handler)
|
||||||
|
-> this
|
||||||
|
|
||||||
|
Bind handler to key in applicable modes...
|
||||||
|
.keyHandler('?', key, handler)
|
||||||
|
.keyHandler('test', key, handler)
|
||||||
|
-> this
|
||||||
|
|
||||||
|
Bind handler to key in a specific list of modes...
|
||||||
|
.keyHandler([mode, ..], key, handler)
|
||||||
|
-> this
|
||||||
|
|
||||||
|
|
||||||
|
Unbind handler from key in specific mode...
|
||||||
|
.keyHandler(mode, key, null)
|
||||||
|
.keyHandler(mode, key, '')
|
||||||
|
-> this
|
||||||
|
|
||||||
|
Unbind handler from key in all modes...
|
||||||
|
.keyHandler('*', key, null)
|
||||||
|
.keyHandler('*', key, '')
|
||||||
|
-> this
|
||||||
|
|
||||||
|
Unbind handler from key in applicable modes...
|
||||||
|
.keyHandler('?', key, null)
|
||||||
|
.keyHandler('?', key, '')
|
||||||
|
.keyHandler('test', key, null)
|
||||||
|
.keyHandler('test', key, '')
|
||||||
|
-> this
|
||||||
|
|
||||||
|
Unbind handler from key in a specific list of modes...
|
||||||
|
.keyHandler([mode, ..], key, null)
|
||||||
|
.keyHandler([mode, ..], key, '')
|
||||||
|
-> this
|
||||||
|
|
||||||
|
|
||||||
|
<info> format:
|
||||||
|
{
|
||||||
|
<mode>: <handler>,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NOTE: this is essentially aproxy to .keyboard.handler(..) for
|
||||||
|
more info see its docs.
|
||||||
|
`,
|
||||||
function(mode, key, action){
|
function(mode, key, action){
|
||||||
var res = this.keyboard.handler(mode, key, action)
|
var res = this.keyboard.handler(mode, key, action)
|
||||||
// return res only if we get a handler...
|
// return res only if we get a handler...
|
||||||
@ -743,14 +822,13 @@ module.Keyboard = core.ImageGridFeatures.Feature({
|
|||||||
|
|
||||||
var KeyboardUIActions = actions.Actions({
|
var KeyboardUIActions = actions.Actions({
|
||||||
config: {
|
config: {
|
||||||
// NOTE: this is defined in ui-dialogs
|
// NOTE: this is defined in ui-dialogs feature...
|
||||||
//'ui-confirm-timeout': 2000,
|
//'ui-confirm-timeout': 2000,
|
||||||
},
|
},
|
||||||
|
|
||||||
// Interface stuff ------------------------------------------------
|
|
||||||
// XXX BUG sections with doc do not show up in title...
|
// XXX BUG sections with doc do not show up in title...
|
||||||
// XXX BUG: for some reason modes are unclickable...
|
// XXX BUG: for some reason modes are not clickable and not selected
|
||||||
// XXX slow on update...
|
// via .select(..) with pattern...
|
||||||
// XXX sub-group by path (???)
|
// XXX sub-group by path (???)
|
||||||
browseKeyboardBindings: ['Help/Keyboard bindings...',
|
browseKeyboardBindings: ['Help/Keyboard bindings...',
|
||||||
core.doc`Keyboard bindings viewer...
|
core.doc`Keyboard bindings viewer...
|
||||||
@ -1015,6 +1093,7 @@ var KeyboardUIActions = actions.Actions({
|
|||||||
For more details see: .browseKeyboardBindings(..)`,
|
For more details see: .browseKeyboardBindings(..)`,
|
||||||
widgets.uiDialog(function(path){
|
widgets.uiDialog(function(path){
|
||||||
var that = this
|
var that = this
|
||||||
|
var to_select
|
||||||
|
|
||||||
var sortModes = function(list){
|
var sortModes = function(list){
|
||||||
that.keyboard.sortModes(
|
that.keyboard.sortModes(
|
||||||
@ -1071,19 +1150,26 @@ var KeyboardUIActions = actions.Actions({
|
|||||||
// XXX make this work on click...
|
// XXX make this work on click...
|
||||||
// XXX focus resulting mode...
|
// XXX focus resulting mode...
|
||||||
['⋯', function(_, cur){
|
['⋯', function(_, cur){
|
||||||
that.editKeyboardMode(cur.attr('mode'))
|
that.editKeyboardMode(
|
||||||
|
cur.attr('mode'),
|
||||||
|
function(e){ to_select = e })
|
||||||
.close(function(){ dialog.update() }) }],
|
.close(function(){ dialog.update() }) }],
|
||||||
],
|
],
|
||||||
mode_actions: [
|
mode_actions: [
|
||||||
// XXX focus resulting key...
|
// XXX focus resulting key...
|
||||||
['key', function(_, cur){
|
['key', function(_, cur){
|
||||||
that.editKeyBinding(cur.attr('mode'))
|
that.editKeyBinding(
|
||||||
|
cur.attr('mode'),
|
||||||
|
null,
|
||||||
|
function(e){ to_select = e })
|
||||||
.close(function(){ dialog.update() }) }],
|
.close(function(){ dialog.update() }) }],
|
||||||
// XXX place element...
|
// XXX place element...
|
||||||
// XXX focus resulting mode...
|
// XXX focus resulting mode...
|
||||||
['mode', function(_, cur){
|
['mode', function(_, cur){
|
||||||
// XXX need to pass order info...
|
// XXX need to pass order info...
|
||||||
that.editKeyboardMode()
|
that.editKeyboardMode(
|
||||||
|
null,
|
||||||
|
function(e){ to_select = e })
|
||||||
.close(function(){ dialog.update() }) }],
|
.close(function(){ dialog.update() }) }],
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
@ -1096,13 +1182,19 @@ var KeyboardUIActions = actions.Actions({
|
|||||||
// key...
|
// key...
|
||||||
if(cur.hasClass('key')){
|
if(cur.hasClass('key')){
|
||||||
sub_dialog = that
|
sub_dialog = that
|
||||||
.editKeyBinding(cur.attr('mode'), cur.attr('code'))
|
.editKeyBinding(
|
||||||
|
cur.attr('mode'),
|
||||||
|
cur.attr('code'),
|
||||||
|
function(e){ to_select = e })
|
||||||
|
|
||||||
// mode...
|
// mode...
|
||||||
// XXX BUG: for some reason modes are unclickable...
|
// XXX BUG: for some reason modes are unclickable...
|
||||||
} else if(cur.hasClass('mode')){
|
} else if(cur.hasClass('mode')){
|
||||||
sub_dialog = that
|
sub_dialog = that
|
||||||
.editKeyboardMode(cur.attr('mode'))
|
.editKeyboardMode(
|
||||||
|
cur.attr('mode'),
|
||||||
|
null,
|
||||||
|
function(e){ to_select = e })
|
||||||
|
|
||||||
// dropped...
|
// dropped...
|
||||||
} else if(cur.hasClass('drop-list')){
|
} else if(cur.hasClass('drop-list')){
|
||||||
@ -1114,11 +1206,18 @@ var KeyboardUIActions = actions.Actions({
|
|||||||
&& sub_dialog
|
&& sub_dialog
|
||||||
.close(function(){ dialog.update() })
|
.close(function(){ dialog.update() })
|
||||||
})
|
})
|
||||||
|
// select updated/new items...
|
||||||
|
.on('update', function(){
|
||||||
|
to_select
|
||||||
|
// XXX this does not work for modes...
|
||||||
|
&& dialog.select(to_select)
|
||||||
|
to_select = null
|
||||||
|
})
|
||||||
return dialog
|
return dialog
|
||||||
})],
|
})],
|
||||||
// XXX add action completion...
|
// XXX add action completion...
|
||||||
editKeyBinding: ['- Interface/Key mapping...',
|
editKeyBinding: ['- Interface/Key mapping...',
|
||||||
widgets.makeUIDialog(function(mode, code){
|
widgets.makeUIDialog(function(mode, code, callback){
|
||||||
var that = this
|
var that = this
|
||||||
var abort = false
|
var abort = false
|
||||||
var orig_code = code
|
var orig_code = code
|
||||||
@ -1222,12 +1321,15 @@ var KeyboardUIActions = actions.Actions({
|
|||||||
new_keys
|
new_keys
|
||||||
.forEach(function(k){
|
.forEach(function(k){
|
||||||
that.keyHandler(mode, k, code) })
|
that.keyHandler(mode, k, code) })
|
||||||
|
|
||||||
|
callback
|
||||||
|
&& callback.call(that, code)
|
||||||
})
|
})
|
||||||
|
|
||||||
return dialog
|
return dialog
|
||||||
})],
|
})],
|
||||||
editKeyboardMode: ['- Interface/Mode...',
|
editKeyboardMode: ['- Interface/Mode...',
|
||||||
widgets.makeUIDialog(function(mode){
|
widgets.makeUIDialog(function(mode, callback){
|
||||||
var that = this
|
var that = this
|
||||||
var abort = false
|
var abort = false
|
||||||
var doc = (that.keybindings[mode] || {}).doc
|
var doc = (that.keybindings[mode] || {}).doc
|
||||||
@ -1295,6 +1397,9 @@ var KeyboardUIActions = actions.Actions({
|
|||||||
|
|
||||||
that.keyboard.sortModes(order)
|
that.keyboard.sortModes(order)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
callback
|
||||||
|
&& callback.call(that, mode)
|
||||||
})
|
})
|
||||||
|
|
||||||
return dialog
|
return dialog
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user