mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 19:30:07 +00:00 
			
		
		
		
	reworked some of the sort.js structure via meta-functions, now more modular...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									4ec15362a5
								
							
						
					
					
						commit
						f571999944
					
				
							
								
								
									
										61
									
								
								ui/sort.js
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								ui/sort.js
									
									
									
									
									
								
							| @ -159,23 +159,32 @@ function imageXPStyleFileNameCmp(a, b, get, data){ | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function chainCmp(a, b, cmp_chain, get, data){ | ||||
| 	var res | ||||
| 	for(var i=0; i < cmp_chain.length; i++){ | ||||
| 		res = cmp_chain[i](a, b, get, data) | ||||
| 		if(res != 0){ | ||||
| 			return res | ||||
| // Generate a cmp function that will use all the cmp's in cmp_chain in 
 | ||||
| // sequence if the previous returns 0 (equal).
 | ||||
| //
 | ||||
| function chainCmp(cmp_chain){ | ||||
| 	return function(a, b, get, data){ | ||||
| 		var res | ||||
| 		for(var i=0; i < cmp_chain.length; i++){ | ||||
| 			res = cmp_chain[i](a, b, get, data) | ||||
| 			if(res != 0){ | ||||
| 				return res | ||||
| 			} | ||||
| 		} | ||||
| 		return res | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function imageDateOrSeqOrNameCmp(a, b, get, data){ | ||||
| 	return chainCmp(a, b, [ | ||||
| 				imageDateCmp, | ||||
| 				imageSeqOrNameCmp | ||||
| 			], get, data) | ||||
| // Sort action generator...
 | ||||
| //
 | ||||
| function sortVia(cmp){ | ||||
| 	if(cmp.constructor.name == 'Array'){ | ||||
| 		cmp = chainCmp(cmp) | ||||
| 	} | ||||
| 	return function(reverse){ | ||||
| 		return sortImages(cmp, reverse) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -224,21 +233,15 @@ function sortImages(cmp, reverse){ | ||||
| 
 | ||||
| 
 | ||||
| // shorthands...
 | ||||
| function sortImagesByDate(reverse){ | ||||
| 	return sortImages(imageDateCmp, reverse) | ||||
| } | ||||
| function sortImagesByDateOrSeqOrName(reverse){ | ||||
| 	return sortImages(imageDateOrSeqOrNameCmp, reverse) | ||||
| } | ||||
| function sortImagesByFileName(reverse){ | ||||
| 	return sortImages(imageNameCmp, reverse) | ||||
| } | ||||
| function sortImagesByFileSeqOrName(reverse){ | ||||
| 	return sortImages(imageSeqOrNameCmp, reverse) | ||||
| } | ||||
| function sortImagesByFileNameXPStyle(reverse){ | ||||
| 	return sortImages(imageXPStyleFileNameCmp, reverse) | ||||
| } | ||||
| var sortImagesByDate = sortVia(imageDateCmp) | ||||
| var sortImagesByFileName = sortVia(imageNameCmp) | ||||
| var sortImagesByFileSeqOrName = sortVia(imageSeqOrNameCmp) | ||||
| var sortImagesByFileNameXPStyle = sortVia(imageXPStyleFileNameCmp) | ||||
| 
 | ||||
| var sortImagesByDateOrSeqOrName = sortVia(chainCmp([ | ||||
| 		imageDateCmp, | ||||
| 		imageSeqOrNameCmp | ||||
| 	])) | ||||
| 
 | ||||
| 
 | ||||
| // Sort images by name while taking into account sequence overflows
 | ||||
| @ -413,8 +416,8 @@ function sortImagesDialog(){ | ||||
| 
 | ||||
| 	cfg = {} | ||||
| 	cfg[alg] = [ | ||||
| 		'Date'+ | ||||
| 			'| fall back to file sequence then\n'+ | ||||
| 		'Date |'+ | ||||
| 			'fall back to file sequence then\n'+ | ||||
| 			'file name when the earlier is equal.',  | ||||
| 		'Sequence number',  | ||||
| 		'Sequence number with overflow',  | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user