From af69c5489d41a2279d20254d384e4f40ab0e03db Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Thu, 8 Aug 2013 23:19:28 +0400 Subject: [PATCH] some tweaking of the crop interface and made its use more consistent... Signed-off-by: Alex A. Naanou --- ui/data.js | 8 ++++++++ ui/marks.js | 25 +++++++++++++------------ ui/modes.js | 1 + 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ui/data.js b/ui/data.js index b1158582..59167ea1 100755 --- a/ui/data.js +++ b/ui/data.js @@ -1222,9 +1222,17 @@ function uncropData(){ return DATA } var prev_state = DATA + var cur = DATA.current DATA = CROP_STACK.pop() + // check if cur exists in data being loaded... + if($.map(DATA.ribbons, + function(e, i){ return e.indexOf(cur) >= 0 }).indexOf(true) >= 0){ + // keep the current position... + DATA.current = cur + } + reloadViewer() updateImages() diff --git a/ui/marks.js b/ui/marks.js index 9151c22f..dc4f7646 100755 --- a/ui/marks.js +++ b/ui/marks.js @@ -20,21 +20,21 @@ function cropMarkedImages(cmp, no_cleanout_marks){ cmp = cmp == null ? imageOrderCmp : cmp var cur = DATA.current var marked = MARKED.slice().sort(cmp) - // this will ignore any gid in marks that is not in IMAGES... - // NOTE: if IMAGES contains only part of the data loadable this will - // be wrong... + if(!no_cleanout_marks){ - for(var i=0; i < marked.length;){ - if(marked[i] in IMAGES){ - i++ - continue - } - // NOTE: we do not need to advance i here... - marked.splice(i, 1) - } + // build all loaded images cache... + var loaded = [] + $.each(DATA.ribbons, function(i, e){ loaded = loaded.concat(e) }) + + // ignore any gid in marks that is not in IMAGES... + // NOTE: if IMAGES contains only part of the data loadable this will + // be wrong... + var marked = marked.filter(function(e){ + return e in IMAGES && loaded.indexOf(e) >= 0 + }) } - ALL_DATA = cropDataTo(marked) + cropDataTo(marked) return DATA } @@ -45,6 +45,7 @@ function cropMarkedImages(cmp, no_cleanout_marks){ * Modes */ +// XXX is this a mode??? var toggleMarkedOnlyView = createCSSClassToggler( '.viewer', 'marked-only-view cropped-mode', diff --git a/ui/modes.js b/ui/modes.js index 9bd7e2d5..0115bfcc 100755 --- a/ui/modes.js +++ b/ui/modes.js @@ -172,6 +172,7 @@ var toggleSingleImageMode = createCSSClassToggler( // XXX make this not conflict with marked-only-mode, better yet, make them // one single mode... +// XXX is this a mode??? var toggleSingleRibbonMode = createCSSClassToggler( '.viewer', 'single-ribbon-mode cropped-mode',