diff --git a/ui/modes.js b/ui/modes.js index ddf7653f..cc8fc368 100755 --- a/ui/modes.js +++ b/ui/modes.js @@ -180,8 +180,9 @@ var toggleSingleRibbonMode = makeCropModeToggler( }) -var toggleCurrenAndAboveRibbonsMode = makeCropModeToggler( - 'current-and-above-ribbons-mode', +function makeCurrenAndAboveModeToggler(name, keep_ribbons){ + return makeCropModeToggler( + name, function(){ var gids = [] var c = getRibbonIndex() @@ -194,8 +195,11 @@ var toggleCurrenAndAboveRibbonsMode = makeCropModeToggler( gids.sort(imageOrderCmp) // do the crop... - cropDataTo(gids) + cropDataTo(gids, keep_ribbons) }) +} +var toggleCurrenAndAboveRibbonMode = makeCurrenAndAboveModeToggler('current-and-above-ribbon-mode') +var toggleCurrenAndAboveRibbonsMode = makeCurrenAndAboveModeToggler('current-and-above-ribbons-mode', true) // TODO transitions... diff --git a/ui/ui.js b/ui/ui.js index 0e8fc065..af1739d3 100755 --- a/ui/ui.js +++ b/ui/ui.js @@ -1065,7 +1065,8 @@ function cropImagesDialog(){ 'Marked images', 'Marked images (keep ribbons)', 'Current ribbon', - 'Current ribbon and above' + 'Current ribbon and above', + 'Current ribbon and above (keep ribbons)' ] formDialog(null, '', @@ -1075,18 +1076,21 @@ function cropImagesDialog(){ .done(function(res){ res = res[alg] - // NOTE: this must be before the "simpler" text version... + // NOTE: these must be in order of least-specific last... if(/Marked.*keep ribbons/i.test(res)){ var method = toggleMarkedOnlyWithRibbonsView } else if(/Marked/i.test(res)){ var method = toggleMarkedOnlyView - } else if(/Current ribbon/i.test(res)){ - var method = toggleSingleRibbonMode + } else if(/Current ribbon and above.*keep ribbons/i.test(res)){ + var method = toggleCurrenAndAboveRibbonsMode } else if(/Current ribbon and above/i.test(res)){ - var method = toggleCurrenAndAboveRibbonsMode + var method = toggleCurrenAndAboveRibbonMode + + } else if(/Current ribbon/i.test(res)){ + var method = toggleSingleRibbonMode } showStatusQ('Cropped: '+res+'...')