mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-01 03:40:09 +00:00
moved action introspection to actions + some minor tweaks...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
6b009137c5
commit
c4d4e98450
@ -1863,8 +1863,8 @@ object.makeConstructor('PathList',
|
|||||||
PathListPrototype)
|
PathListPrototype)
|
||||||
|
|
||||||
var makePathList =
|
var makePathList =
|
||||||
module.makePathList = function(elem, list){
|
module.makePathList = function(elem, list, path){
|
||||||
return PathList(elem, { data: list })
|
return PathList(elem, { data: list, path: path })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -204,10 +204,10 @@ module.GLOBAL_KEYBOARD = {
|
|||||||
// marking...
|
// marking...
|
||||||
M: {
|
M: {
|
||||||
default: 'toggleMark',
|
default: 'toggleMark',
|
||||||
|
alt: 'browseActions: "/Mark/"',
|
||||||
},
|
},
|
||||||
A: {
|
A: {
|
||||||
// XXX STUB...
|
alt: 'browseActions',
|
||||||
alt: function(){ browseActions() },
|
|
||||||
ctrl: 'toggleMark!: "ribbon" "on"',
|
ctrl: 'toggleMark!: "ribbon" "on"',
|
||||||
},
|
},
|
||||||
D: {
|
D: {
|
||||||
@ -222,6 +222,7 @@ module.GLOBAL_KEYBOARD = {
|
|||||||
B: {
|
B: {
|
||||||
default: 'toggleBookmark',
|
default: 'toggleBookmark',
|
||||||
ctrl: 'toggleTheme!',
|
ctrl: 'toggleTheme!',
|
||||||
|
alt: 'browseActions: "/Bookmark/"',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -233,55 +234,6 @@ module.GLOBAL_KEYBOARD = {
|
|||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
|
|
||||||
window.browse = browse
|
|
||||||
window.overlay = overlay
|
|
||||||
|
|
||||||
actionCategoryOrder = [
|
|
||||||
'File',
|
|
||||||
'Edit',
|
|
||||||
'Navigate',
|
|
||||||
]
|
|
||||||
|
|
||||||
var makeActionLister = function(list, filter){
|
|
||||||
return function(){
|
|
||||||
var paths = a.getPath()
|
|
||||||
var actions = {}
|
|
||||||
|
|
||||||
// pre-order the main categories...
|
|
||||||
actionCategoryOrder.forEach(function(k){
|
|
||||||
actions[k] = null
|
|
||||||
})
|
|
||||||
|
|
||||||
// build the action list...
|
|
||||||
Object.keys(paths).forEach(function(k){
|
|
||||||
var n = paths[k][0]
|
|
||||||
var k = filter ? filter(k) : k
|
|
||||||
actions[k] = function(){
|
|
||||||
return a[n]()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
var o = overlay.Overlay($('body'),
|
|
||||||
list(null, actions)
|
|
||||||
.open(function(){ o.close() }))
|
|
||||||
|
|
||||||
L = o.client
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// XXX make this an action...
|
|
||||||
window.browseActions = makeActionLister(browse.makePathList)
|
|
||||||
|
|
||||||
// XXX make this an action...
|
|
||||||
window.listActions = makeActionLister(browse.makeList,
|
|
||||||
// format the doc to: <name> (<category>, ..)
|
|
||||||
// NOTE: this a bit naive...
|
|
||||||
function(k){
|
|
||||||
var l = k.split(/[\\\/\|]/)
|
|
||||||
var a = l.pop()
|
|
||||||
return a +' ('+ l.join(', ') +')'
|
|
||||||
})
|
|
||||||
|
|
||||||
// XXX
|
// XXX
|
||||||
window.a = testing.setupActions()
|
window.a = testing.setupActions()
|
||||||
.load({
|
.load({
|
||||||
|
|||||||
@ -2210,6 +2210,80 @@ module.GlobalStateIndicator = features.Feature(ImageGridFeatures, {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
// XXX revise names...
|
||||||
|
|
||||||
|
// widgets...
|
||||||
|
var browse = require('lib/widget/browse')
|
||||||
|
var overlay = require('lib/widget/overlay')
|
||||||
|
|
||||||
|
var makeActionLister = function(list, filter, pre_order){
|
||||||
|
pre_order = typeof(filter) == typeof(true) ? filter : pre_order
|
||||||
|
filter = typeof(filter) == typeof(true) ? null : filter
|
||||||
|
|
||||||
|
return function(path){
|
||||||
|
var paths = a.getPath()
|
||||||
|
var actions = {}
|
||||||
|
|
||||||
|
// pre-order the main categories...
|
||||||
|
if(pre_order){
|
||||||
|
this.config['action-category-order'].forEach(function(k){
|
||||||
|
actions[k] = null
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// build the action list...
|
||||||
|
Object.keys(paths).forEach(function(k){
|
||||||
|
var n = paths[k][0]
|
||||||
|
var k = filter ? filter(k, n) : k
|
||||||
|
actions[k] = function(){
|
||||||
|
return a[n]()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
var o = overlay.Overlay($('body'),
|
||||||
|
list(null, actions, path)
|
||||||
|
.open(function(){ o.close() }))
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var ActionTreeActions = actions.Actions({
|
||||||
|
browseActions: ['Interface/Browse actions',
|
||||||
|
makeActionLister(browse.makePathList, true)],
|
||||||
|
|
||||||
|
listActions:['Interface/List actions',
|
||||||
|
makeActionLister(browse.makeList,
|
||||||
|
// format the doc to: <name> (<category>, ..)
|
||||||
|
// NOTE: this a bit naive...
|
||||||
|
function(k){
|
||||||
|
var l = k.split(/[\\\/\|]/)
|
||||||
|
var a = l.pop()
|
||||||
|
return a +' ('+ l.join(', ') +')'
|
||||||
|
})],
|
||||||
|
})
|
||||||
|
|
||||||
|
var ActionTree =
|
||||||
|
module.ActionTree = features.Feature(ImageGridFeatures, {
|
||||||
|
title: '',
|
||||||
|
doc: '',
|
||||||
|
|
||||||
|
tag: 'ui-action-tree',
|
||||||
|
|
||||||
|
config: {
|
||||||
|
'action-category-order': [
|
||||||
|
'File',
|
||||||
|
'Edit',
|
||||||
|
'Navigate',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
|
actions: ActionTreeActions,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
// XXX console / log / status bar
|
// XXX console / log / status bar
|
||||||
// XXX title bar
|
// XXX title bar
|
||||||
@ -2560,6 +2634,7 @@ features.Feature(ImageGridFeatures, 'viewer-testing', [
|
|||||||
//'ui-current-image-indicator-hide-on-screen-nav',
|
//'ui-current-image-indicator-hide-on-screen-nav',
|
||||||
'ui-image-state-indicator',
|
'ui-image-state-indicator',
|
||||||
'ui-global-state-indicator',
|
'ui-global-state-indicator',
|
||||||
|
'ui-action-tree',
|
||||||
|
|
||||||
// experimental and optional features...
|
// experimental and optional features...
|
||||||
//'auto-single-image',
|
//'auto-single-image',
|
||||||
@ -2580,6 +2655,7 @@ features.Feature(ImageGridFeatures, 'viewer-minimal', [
|
|||||||
'ui-current-image-indicator',
|
'ui-current-image-indicator',
|
||||||
'ui-current-image-indicator-hide-on-fast-screen-nav',
|
'ui-current-image-indicator-hide-on-fast-screen-nav',
|
||||||
//'ui-current-image-indicator-hide-on-screen-nav',
|
//'ui-current-image-indicator-hide-on-screen-nav',
|
||||||
|
'ui-action-tree',
|
||||||
])
|
])
|
||||||
|
|
||||||
features.Feature(ImageGridFeatures, 'viewer', [
|
features.Feature(ImageGridFeatures, 'viewer', [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user