mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-12-18 09:11:39 +00:00
new version of tag block navigation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
5a687e0307
commit
4b9e2cd65f
59
ui/tags.js
59
ui/tags.js
@ -390,42 +390,46 @@ function listTagsAtGapsFrom(tags, gids){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// XXX these are still slow -- there is no need to re-index the whole
|
// XXX this is a bit buggy...
|
||||||
// data on each jump...
|
function getGapEdge(direction, tag, gids){
|
||||||
function nextGapEdge(tags, gids){
|
var get = direction == 'next' ? getGIDAfter : getGIDBefore
|
||||||
var res = getGIDAfter(getImageGID(), listTagsAtGapsFrom(tags, gids))
|
|
||||||
|
|
||||||
if(res == null){
|
gids = gids == null ? getRibbonGIDs() : gids
|
||||||
flashIndicator('end')
|
|
||||||
return getImage()
|
|
||||||
}
|
|
||||||
return showImage(res)
|
|
||||||
}
|
|
||||||
function prevGapEdge(tags, gids){
|
|
||||||
var cur = getImageGID()
|
var cur = getImageGID()
|
||||||
var targets = listTagsAtGapsFrom(tags, gids)
|
var tagged = TAGS[tag]
|
||||||
|
|
||||||
// drop the current elem if it's in the list...
|
|
||||||
var i = targets.indexOf(cur)
|
// current is tagged -- skip till first untagged (not inclusive)...
|
||||||
if(i >= 0){
|
if(getTags(cur).indexOf(tag) >= 0){
|
||||||
targets.splice(i, 1)
|
var i = gids.indexOf(cur)
|
||||||
|
// get last in tag block...
|
||||||
|
while(gids[i] != null && tagged.indexOf(gids[i]) >= 0){
|
||||||
|
i += direction == 'next' ? 1 : -1
|
||||||
|
}
|
||||||
|
var res = gids[i]
|
||||||
|
|
||||||
|
// current is not tagged -- get closest tagged (inclusive)...
|
||||||
|
} else {
|
||||||
|
var res = get(cur, tagged)
|
||||||
}
|
}
|
||||||
|
|
||||||
var res = getGIDBefore(cur, targets)
|
|
||||||
|
|
||||||
if(res == null){
|
if(res == null){
|
||||||
flashIndicator('start')
|
flashIndicator(direction == 'next' ? 'end' : 'start')
|
||||||
return getImage()
|
return getImage()
|
||||||
}
|
}
|
||||||
return showImage(res)
|
return showImage(res)
|
||||||
}
|
}
|
||||||
|
function nextGapEdge(tag, gids){
|
||||||
|
return getGapEdge('next', tag, gids)
|
||||||
function nextUnsortedSection(){
|
|
||||||
return nextGapEdge('unsorted')
|
|
||||||
}
|
}
|
||||||
function prevUnsortedSection(){
|
function prevGapEdge(tag, gids){
|
||||||
return prevGapEdge('unsorted')
|
return getGapEdge('prev', tag, gids)
|
||||||
|
}
|
||||||
|
function nextUnsortedSection(gids){
|
||||||
|
return getGapEdge('next', 'unsorted', gids)
|
||||||
|
}
|
||||||
|
function prevUnsortedSection(gids){
|
||||||
|
return getGapEdge('prev', 'unsorted', gids)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -455,12 +459,12 @@ var loadFileTags = makeFileLoader(
|
|||||||
TAGS_FILE_DEFAULT,
|
TAGS_FILE_DEFAULT,
|
||||||
TAGS_FILE_PATTERN,
|
TAGS_FILE_PATTERN,
|
||||||
function(data){
|
function(data){
|
||||||
TAGS = data
|
TAGS = data.length != null ? {} : data
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// Save image marks to file
|
// Save image marks to file
|
||||||
var saveFileMarks = makeFileSaver(
|
var saveFileTags = makeFileSaver(
|
||||||
TAGS_FILE_DEFAULT,
|
TAGS_FILE_DEFAULT,
|
||||||
function(){
|
function(){
|
||||||
return TAGS
|
return TAGS
|
||||||
@ -488,7 +492,6 @@ function setupTags(viewer){
|
|||||||
|
|
||||||
showStatusQ('Tags: Index: done ('+( t1 - t0 )+'ms).')
|
showStatusQ('Tags: Index: done ('+( t1 - t0 )+'ms).')
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
//SETUP_BINDINGS.push(setupTags)
|
//SETUP_BINDINGS.push(setupTags)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user