mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 11:20: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) | ||||
| 
 | ||||
| var makePathList =  | ||||
| module.makePathList = function(elem, list){ | ||||
| 	return PathList(elem, { data: list }) | ||||
| module.makePathList = function(elem, list, path){ | ||||
| 	return PathList(elem, { data: list, path: path }) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -204,10 +204,10 @@ module.GLOBAL_KEYBOARD = { | ||||
| 		// marking...
 | ||||
| 		M: { | ||||
| 			default: 'toggleMark', | ||||
| 			alt: 'browseActions: "/Mark/"', | ||||
| 		}, | ||||
| 		A: { | ||||
| 			// XXX STUB...
 | ||||
| 			alt: function(){ browseActions() }, | ||||
| 			alt: 'browseActions', | ||||
| 			ctrl: 'toggleMark!: "ribbon" "on"', | ||||
| 		}, | ||||
| 		D: { | ||||
| @ -222,6 +222,7 @@ module.GLOBAL_KEYBOARD = { | ||||
| 		B: { | ||||
| 			default: 'toggleBookmark', | ||||
| 			ctrl: 'toggleTheme!', | ||||
| 			alt: 'browseActions: "/Bookmark/"', | ||||
| 		}, | ||||
| 	}, | ||||
| }	 | ||||
| @ -233,55 +234,6 @@ module.GLOBAL_KEYBOARD = { | ||||
| 
 | ||||
| $(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
 | ||||
| 	window.a = testing.setupActions() | ||||
| 		.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 title bar
 | ||||
| @ -2560,6 +2634,7 @@ features.Feature(ImageGridFeatures, 'viewer-testing', [ | ||||
| 		//'ui-current-image-indicator-hide-on-screen-nav',
 | ||||
| 	'ui-image-state-indicator', | ||||
| 	'ui-global-state-indicator', | ||||
| 	'ui-action-tree', | ||||
| 
 | ||||
| 	// experimental and optional features...
 | ||||
| 	//'auto-single-image',
 | ||||
| @ -2580,6 +2655,7 @@ features.Feature(ImageGridFeatures, 'viewer-minimal', [ | ||||
| 	'ui-current-image-indicator', | ||||
| 		'ui-current-image-indicator-hide-on-fast-screen-nav', | ||||
| 		//'ui-current-image-indicator-hide-on-screen-nav',
 | ||||
| 	'ui-action-tree', | ||||
| ]) | ||||
| 
 | ||||
| features.Feature(ImageGridFeatures, 'viewer', [ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user