more refactoring marks...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2014-01-20 06:45:41 +04:00
parent 8f43056c0c
commit 64026f13cd
3 changed files with 40 additions and 14 deletions

View File

@ -96,6 +96,12 @@ var toggleBookmark = makeMarkToggler(
}) })
// Remove all bookmarks...
//
// mode can be:
// - 'ribbon' (default)
// - 'all'
//
function removeAllBookmarks(mode){ function removeAllBookmarks(mode){
mode = mode == null ? 'ribbon' : mode mode = mode == null ? 'ribbon' : mode
var res = setAllMarks('off', mode, BOOKMARKS, toggleBookmark) var res = setAllMarks('off', mode, BOOKMARKS, toggleBookmark)
@ -107,7 +113,7 @@ function removeAllBookmarks(mode){
} }
// focus next/prev bookmark... // Focus next/prev bookmark...
// //
var nextBookmark = makeNextFromListAction( var nextBookmark = makeNextFromListAction(
getBookmarkedGIDBefore, getBookmarkedGIDBefore,

View File

@ -199,6 +199,7 @@ var DATA = {
// Flat ordered list of images in current context... // Flat ordered list of images in current context...
// in the simplest form this is a list of GIDs. // in the simplest form this is a list of GIDs.
// //
// NOTE: this is never cropped...
// NOTE: this may contain more gids than are currently loaded to // NOTE: this may contain more gids than are currently loaded to
// the ribbons... // the ribbons...
order: [], order: [],

View File

@ -449,39 +449,52 @@ function markAllImagesTo(action, mode){
} }
// Mark/Unmark images...
//
// mode can be: // mode can be:
// - 'ribbon' // - 'ribbon' (default)
// - 'all' // - 'all'
//
function unmarkAll(mode){ markAllImagesTo('off', mode) } function unmarkAll(mode){ markAllImagesTo('off', mode) }
function markAll(mode){ markAllImagesTo('on', mode) } function markAll(mode){ markAllImagesTo('on', mode) }
// NOTE: this only does it's work in the current ribbon... // Invert marks on images...
function invertImageMarks(){ //
var ribbon = getRibbonGIDs() // mode can be:
// - 'ribbon' (default)
// - 'all'
//
function invertImageMarks(mode, gids){
mode = mode == null ? 'ribbon' : mode
gids = gids != null ? gids
: mode == 'ribbon' ? getRibbonGIDs()
: getLoadedGIDs()
var on = [] var on = []
var off = [] var off = []
var order = DATA.order
$.each(ribbon, function(_, e){ $.each(gids, function(_, e){
var i = MARKED.indexOf(e) var i = order.indexOf(e)
if(i == -1){ if(MARKED[i] === undefined){
on.push(e) on.push(e)
MARKED[DATA.order.indexOf(e)] = e MARKED[i] = e
} else { } else {
off.push(e) off.push(e)
delete MARKED[i] delete MARKED[i]
} }
}) })
updateImages(ribbon) updateImages(gids)
$('.viewer') $('.viewer')
.trigger('invertingMarks', [ribbon]) .trigger('invertingMarks', [gids])
.trigger('togglingMarks', [on, 'on']) .trigger('togglingMarks', [on, 'on'])
.trigger('togglingMarks', [off, 'off']) .trigger('togglingMarks', [off, 'off'])
marksUpdated() marksUpdated()
return on.concat(off) return gids
} }
@ -498,6 +511,7 @@ function toggleMarkBlock(image){
var i = ribbon.indexOf(gid) var i = ribbon.indexOf(gid)
var updated = [gid] var updated = [gid]
var order = DATA.order
var _convert = function(_, e){ var _convert = function(_, e){
// break if state differs from current... // break if state differs from current...
@ -506,7 +520,7 @@ function toggleMarkBlock(image){
} }
// do the toggle... // do the toggle...
if(state){ if(state){
MARKED[DATA.order.indexOf(e)] = e MARKED[order.indexOf(e)] = e
} else { } else {
delete MARKED[MARKED.indexOf(e)] delete MARKED[MARKED.indexOf(e)]
} }
@ -658,6 +672,7 @@ function markImagesDialog(){
'to the left and right of the current image,\n'+ 'to the left and right of the current image,\n'+
'up until the closest images marked differently', 'up until the closest images marked differently',
'Invert marks in current ribbon', 'Invert marks in current ribbon',
'Invert all marks',
'Mark all in current ribbon', 'Mark all in current ribbon',
'Unmark all in current ribbon', 'Unmark all in current ribbon',
'Mark all images', 'Mark all images',
@ -680,10 +695,14 @@ function markImagesDialog(){
toggleMarkBlock() toggleMarkBlock()
var msg = 'toggled block marks' var msg = 'toggled block marks'
} else if(/Invert/.test(res)){ } else if(/Invert .* ribbon/.test(res)){
invertImageMarks() invertImageMarks()
var msg = 'inverted ribbon marks' var msg = 'inverted ribbon marks'
} else if(/Invert all/.test(res)){
invertImageMarks('all')
var msg = 'inverted all marks'
} else if(/Mark all.*current ribbon/.test(res)){ } else if(/Mark all.*current ribbon/.test(res)){
markAll('ribbon') markAll('ribbon')
var msg = 'marked ribbon' var msg = 'marked ribbon'