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:
Alex A. Naanou 2014-01-13 02:38:37 +04:00
parent 4ec15362a5
commit f571999944

View File

@ -159,23 +159,32 @@ function imageXPStyleFileNameCmp(a, b, get, data){
} }
function chainCmp(a, b, cmp_chain, get, data){ // Generate a cmp function that will use all the cmp's in cmp_chain in
var res // sequence if the previous returns 0 (equal).
for(var i=0; i < cmp_chain.length; i++){ //
res = cmp_chain[i](a, b, get, data) function chainCmp(cmp_chain){
if(res != 0){ return function(a, b, get, data){
return res 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){ // Sort action generator...
return chainCmp(a, b, [ //
imageDateCmp, function sortVia(cmp){
imageSeqOrNameCmp if(cmp.constructor.name == 'Array'){
], get, data) cmp = chainCmp(cmp)
}
return function(reverse){
return sortImages(cmp, reverse)
}
} }
@ -224,21 +233,15 @@ function sortImages(cmp, reverse){
// shorthands... // shorthands...
function sortImagesByDate(reverse){ var sortImagesByDate = sortVia(imageDateCmp)
return sortImages(imageDateCmp, reverse) var sortImagesByFileName = sortVia(imageNameCmp)
} var sortImagesByFileSeqOrName = sortVia(imageSeqOrNameCmp)
function sortImagesByDateOrSeqOrName(reverse){ var sortImagesByFileNameXPStyle = sortVia(imageXPStyleFileNameCmp)
return sortImages(imageDateOrSeqOrNameCmp, reverse)
} var sortImagesByDateOrSeqOrName = sortVia(chainCmp([
function sortImagesByFileName(reverse){ imageDateCmp,
return sortImages(imageNameCmp, reverse) imageSeqOrNameCmp
} ]))
function sortImagesByFileSeqOrName(reverse){
return sortImages(imageSeqOrNameCmp, reverse)
}
function sortImagesByFileNameXPStyle(reverse){
return sortImages(imageXPStyleFileNameCmp, reverse)
}
// Sort images by name while taking into account sequence overflows // Sort images by name while taking into account sequence overflows
@ -413,8 +416,8 @@ function sortImagesDialog(){
cfg = {} cfg = {}
cfg[alg] = [ cfg[alg] = [
'Date'+ 'Date |'+
'| fall back to file sequence then\n'+ 'fall back to file sequence then\n'+
'file name when the earlier is equal.', 'file name when the earlier is equal.',
'Sequence number', 'Sequence number',
'Sequence number with overflow', 'Sequence number with overflow',