mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 11:20:09 +00:00 
			
		
		
		
	refactored marks a bit + fixed a minor bug...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									ee57d68922
								
							
						
					
					
						commit
						8f43056c0c
					
				| @ -96,6 +96,17 @@ var toggleBookmark = makeMarkToggler( | |||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | function removeAllBookmarks(mode){ | ||||||
|  | 	mode = mode == null ? 'ribbon' : mode | ||||||
|  | 	var res = setAllMarks('off', mode, BOOKMARKS, toggleBookmark) | ||||||
|  | 	$('.viewer') | ||||||
|  | 		.trigger('togglingBookmarks', [res, 'off']) | ||||||
|  | 		.trigger('removingBookmarks', [res, mode]) | ||||||
|  | 	bookmarksUpdated() | ||||||
|  | 	return res | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| // focus next/prev bookmark...
 | // focus next/prev bookmark...
 | ||||||
| //
 | //
 | ||||||
| var nextBookmark = makeNextFromListAction( | var nextBookmark = makeNextFromListAction( | ||||||
|  | |||||||
| @ -195,7 +195,7 @@ function setupInfo(viewer){ | |||||||
| 			}) | 			}) | ||||||
| 		.on([ | 		.on([ | ||||||
| 				'focusingImage', | 				'focusingImage', | ||||||
| 				'togglingMark', | 				'togglingMarks', | ||||||
| 				'togglingBookmark', | 				'togglingBookmark', | ||||||
| 				'removeingAllMarks', | 				'removeingAllMarks', | ||||||
| 				'removeingRibbonMarks', | 				'removeingRibbonMarks', | ||||||
|  | |||||||
| @ -760,22 +760,25 @@ var KEYBOARD_CONFIG = { | |||||||
| 						markAll('all')  | 						markAll('all')  | ||||||
| 					}), | 					}), | ||||||
| 			}, | 			}, | ||||||
|  | 
 | ||||||
| 		'unmark-ribbon': doc('Unmark current ribbon',  | 		'unmark-ribbon': doc('Unmark current ribbon',  | ||||||
| 				function(){  | 				function(){  | ||||||
| 					event.preventDefault() | 					event.preventDefault() | ||||||
| 					removeImageMarks('ribbon')  | 					unmarkAll('ribbon')  | ||||||
| 				}), | 				}), | ||||||
|  | 		'unmark-all': doc('Unmark all images',  | ||||||
|  | 				function(){ unmarkAll('all') }), | ||||||
|  | 
 | ||||||
| 		D: { | 		D: { | ||||||
| 				ctrl: 'unmark-ribbon', | 				ctrl: 'unmark-ribbon', | ||||||
| 				'ctrl+shift': doc('Unmark all images',  | 				'ctrl+shift': 'unmark-all',  | ||||||
| 					function(){ removeImageMarks('all') }), | 		 | ||||||
| 			}, | 			}, | ||||||
| 		U: { | 		U: { | ||||||
| 				default: doc('Unmark current image', | 				default: doc('Unmark current image', | ||||||
| 					function(){ toggleMark('off') }),  | 					function(){ toggleMark('off') }),  | ||||||
| 				ctrl: 'unmark-ribbon', | 				ctrl: 'unmark-ribbon', | ||||||
| 				shift: doc('Unamrk all',  | 				shift: 'unmark-all', | ||||||
| 					function(){ removeImageMarks('all') }), |  | ||||||
| 			}, | 			}, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										119
									
								
								ui/marks.js
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								ui/marks.js
									
									
									
									
									
								
							| @ -302,6 +302,47 @@ function shiftGIDInSparseList(gid, list){ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | // NOTE: this is sparse-only...
 | ||||||
|  | function setAllMarks(action, mode, list, toggler){ | ||||||
|  | 	action = action == null ? toggler('?') : action | ||||||
|  | 	mode = mode == null ? 'ribbon' : mode | ||||||
|  | 
 | ||||||
|  | 	var updated = [] | ||||||
|  | 
 | ||||||
|  | 	if(action == 'on'){ | ||||||
|  | 		var _update = function(e){ | ||||||
|  | 			if(list.indexOf(e) < 0){ | ||||||
|  | 				list[DATA.order.indexOf(e)] = e | ||||||
|  | 				updated.push(e) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} else { | ||||||
|  | 		var _update = function(e){ | ||||||
|  | 			var i = list.indexOf(e) | ||||||
|  | 			if(i >= 0){ | ||||||
|  | 				delete list[i] | ||||||
|  | 				updated.push(e) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// marks from current ribbon (default)...
 | ||||||
|  | 	if(mode == 'ribbon'){ | ||||||
|  | 		var res = getRibbonGIDs() | ||||||
|  | 
 | ||||||
|  | 	// all marks...
 | ||||||
|  | 	} else if(mode == 'all'){ | ||||||
|  | 		var res = getLoadedGIDs() | ||||||
|  | 	}  | ||||||
|  | 
 | ||||||
|  | 	res.forEach(_update) | ||||||
|  | 
 | ||||||
|  | 	updateImages(updated) | ||||||
|  | 
 | ||||||
|  | 	return res | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| /********************************************************************** | /********************************************************************** | ||||||
| *  | *  | ||||||
| @ -380,7 +421,7 @@ var toggleMarksView = createCSSClassToggler( | |||||||
| var toggleMark = makeMarkToggler( | var toggleMark = makeMarkToggler( | ||||||
| 		'marked',  | 		'marked',  | ||||||
| 		'selected',  | 		'selected',  | ||||||
| 		'togglingMark', | 		'togglingMarks', | ||||||
| 		function(gid, action){ | 		function(gid, action){ | ||||||
| 			// add marked image to list...
 | 			// add marked image to list...
 | ||||||
| 			if(action == 'on'){ | 			if(action == 'on'){ | ||||||
| @ -397,67 +438,22 @@ var toggleMark = makeMarkToggler( | |||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | function markAllImagesTo(action, mode){ | ||||||
| function setAllMarks(action, mode){ |  | ||||||
| 	action = action == null ? toggleMark('?') : action |  | ||||||
| 	mode = mode == null ? 'ribbon' : mode | 	mode = mode == null ? 'ribbon' : mode | ||||||
| 
 | 	var res = setAllMarks(action, mode, MARKED, toggleMark) | ||||||
| 	var updated = [] | 	$('.viewer') | ||||||
| 
 | 		.trigger('togglingMarks', [res, action]) | ||||||
| 	if(action == 'on'){ | 		.trigger('removingMarks', [res, mode]) | ||||||
| 		var _update = function(e){ |  | ||||||
| 			if(MARKED.indexOf(e) < 0){ |  | ||||||
| 				MARKED[DATA.order.indexOf(e)] = e |  | ||||||
| 				updated.push(e) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		var _update = function(e){ |  | ||||||
| 			var i = MARKED.indexOf(e) |  | ||||||
| 			if(i >= 0){ |  | ||||||
| 				delete MARKED[i] |  | ||||||
| 				updated.push(e) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	// marks from current ribbon (default)...
 |  | ||||||
| 	if(mode == 'ribbon'){ |  | ||||||
| 		var res = getRibbonGIDs() |  | ||||||
| 
 |  | ||||||
| 	// all marks...
 |  | ||||||
| 	} else if(mode == 'all'){ |  | ||||||
| 		var res = getLoadedGIDs() |  | ||||||
| 	}  |  | ||||||
| 
 |  | ||||||
| 	res.forEach(_update) |  | ||||||
| 
 |  | ||||||
| 	updateImages(updated) |  | ||||||
| 
 |  | ||||||
| 	$('.viewer').trigger('togglingMarks', [updated, action]) |  | ||||||
| 
 |  | ||||||
| 	marksUpdated() | 	marksUpdated() | ||||||
| 
 |  | ||||||
| 	return res | 	return res | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| // mode can be:
 | // mode can be:
 | ||||||
| //	- 'ribbon'
 | //	- 'ribbon'
 | ||||||
| //	- 'all'
 | //	- 'all'
 | ||||||
| function removeImageMarks(mode){ | function unmarkAll(mode){ markAllImagesTo('off', mode) } | ||||||
| 	mode = mode == null ? 'ribbon' : mode | function markAll(mode){ markAllImagesTo('on', mode) } | ||||||
| 	var res = setAllMarks('off', mode) |  | ||||||
| 	$('.viewer').trigger('removingMarks', [res, mode]) |  | ||||||
| 	return res |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| function markAll(mode){ |  | ||||||
| 	mode = mode == null ? 'ribbon' : mode |  | ||||||
| 	var res = setAllMarks('on', mode) |  | ||||||
| 	$('.viewer').trigger('addingMarks', [res, mode]) |  | ||||||
| 	return res |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| // NOTE: this only does it's work in the current ribbon...
 | // NOTE: this only does it's work in the current ribbon...
 | ||||||
| @ -689,19 +685,19 @@ function markImagesDialog(){ | |||||||
| 				var msg = 'inverted ribbon marks' | 				var msg = 'inverted ribbon marks' | ||||||
| 
 | 
 | ||||||
| 			} else if(/Mark all.*current ribbon/.test(res)){ | 			} else if(/Mark all.*current ribbon/.test(res)){ | ||||||
| 				markAll() | 				markAll('ribbon') | ||||||
| 				var msg = 'marked ribbon' | 				var msg = 'marked ribbon' | ||||||
| 
 | 
 | ||||||
| 			} else if(/Mark all/.test(res)){ | 			} else if(/Mark all/.test(res)){ | ||||||
| 				markAll() | 				markAll('all') | ||||||
| 				var msg = 'marked ribbon' | 				var msg = 'marked all' | ||||||
| 
 | 
 | ||||||
| 			} else if(/Unmark all in/.test(res)){ | 			} else if(/Unmark all in/.test(res)){ | ||||||
| 				removeImageMarks('ribbon') | 				unmarkAll('ribbon') | ||||||
| 				var msg = 'unmarked ribbon' | 				var msg = 'unmarked ribbon' | ||||||
| 
 | 
 | ||||||
| 			} else if(/Unmark all images/.test(res)){ | 			} else if(/Unmark all images/.test(res)){ | ||||||
| 				removeImageMarks('all') | 				unmarkAll('all') | ||||||
| 				var msg = 'unmarked all' | 				var msg = 'unmarked all' | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| @ -775,11 +771,6 @@ function setupMarks(viewer){ | |||||||
| 
 | 
 | ||||||
| 	return viewer | 	return viewer | ||||||
| 		// XXX do we actually need this???
 | 		// XXX do we actually need this???
 | ||||||
| 		.on('togglingMarks', function(evt, lst, action){ |  | ||||||
| 			lst.forEach(function(gid){ |  | ||||||
| 				viewer.trigger('togglingMark', [gid, action]) |  | ||||||
| 			}) |  | ||||||
| 		}) |  | ||||||
| 		.on('sortedImages', function(){ | 		.on('sortedImages', function(){ | ||||||
| 			MARKED = populateSparceGIDList(MARKED) | 			MARKED = populateSparceGIDList(MARKED) | ||||||
| 			marksUpdated() | 			marksUpdated() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user