mirror of
https://github.com/flynx/ImageGrid.git
synced 2026-01-08 03:11:11 +00:00
made generic next/prev image from list action generators...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
cbc22e98ad
commit
1645b03b98
@ -98,63 +98,24 @@ var toggleBookmark = makeMarkToggler(
|
|||||||
'togglingBookmark')
|
'togglingBookmark')
|
||||||
|
|
||||||
|
|
||||||
// focus previous bookmark...
|
// focus next bookmark...
|
||||||
//
|
//
|
||||||
function nextBookmark(){
|
// NOTE: this will not jump to bookmarks on other ribbons...
|
||||||
if(BOOKMARKS.length == 0){
|
//
|
||||||
flashIndicator('end')
|
// XXX make a generic next/prev marked function...
|
||||||
return getImage()
|
var nextBookmark = makeNextFromListAction(
|
||||||
}
|
getBookmarkedGIDBefore,
|
||||||
var cur = getImageGID()
|
function(){ return BOOKMARKS })
|
||||||
var next = getBookmarkedGIDBefore(cur)
|
|
||||||
var i = BOOKMARKS.indexOf(next)+1
|
|
||||||
|
|
||||||
// we are before the first loaded bookmark, find the first...
|
|
||||||
while((next == cur || next == null) && i < BOOKMARKS.length){
|
|
||||||
next = BOOKMARKS[i]
|
|
||||||
next = getBookmarkedGIDBefore(next)
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
|
|
||||||
// did not find any loaded bookmarks after...
|
|
||||||
if(i >= BOOKMARKS.length && (next == null || next == cur)){
|
|
||||||
flashIndicator('end')
|
|
||||||
return getImage(cur)
|
|
||||||
}
|
|
||||||
|
|
||||||
return showImage(next)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// focus previous bookmark...
|
// focus previous bookmark...
|
||||||
//
|
//
|
||||||
function prevBookmark(){
|
// NOTE: this will not jump to bookmarks on other ribbons...
|
||||||
if(BOOKMARKS.length == 0){
|
//
|
||||||
flashIndicator('start')
|
// XXX make a generic next/prev marked function...
|
||||||
return getImage(cur)
|
var prevBookmark = makePrevFromListAction(
|
||||||
}
|
getBookmarkedGIDBefore,
|
||||||
var cur = getImageGID()
|
function(){ return BOOKMARKS })
|
||||||
var prev = getBookmarkedGIDBefore(cur)
|
|
||||||
|
|
||||||
// nothing bookmarked before us...
|
|
||||||
if(prev == null){
|
|
||||||
flashIndicator('start')
|
|
||||||
return getImage(cur)
|
|
||||||
}
|
|
||||||
|
|
||||||
// current image is bookmarked, get the bookmark before it...
|
|
||||||
if(prev == cur){
|
|
||||||
prev = BOOKMARKS[BOOKMARKS.indexOf(prev)-1]
|
|
||||||
prev = prev != null ? getBookmarkedGIDBefore(prev) : prev
|
|
||||||
// no loaded (crop mode?) bookmark before us...
|
|
||||||
if(prev == null){
|
|
||||||
flashIndicator('start')
|
|
||||||
return getImage(cur)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return showImage(prev)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -498,6 +498,14 @@ function getGIDRibbonIndex(gid, data){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// like getImageOrder(..) but use DATA...
|
||||||
|
function getGIDOrder(gid){
|
||||||
|
gid = gid == null ? getImageGID() : gid
|
||||||
|
gid = typeof(gid) == typeof('str') ? gid : getImageGID(gid)
|
||||||
|
return DATA.order.indexOf(gid)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Same as getImageBefore(...), but uses gids and searches in DATA...
|
// Same as getImageBefore(...), but uses gids and searches in DATA...
|
||||||
//
|
//
|
||||||
// Return:
|
// Return:
|
||||||
|
|||||||
68
ui/marks.js
68
ui/marks.js
@ -128,6 +128,74 @@ function makeMarkUpdater(img_class, mark_class, test){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function makeNextFromListAction(get_closest, get_list){
|
||||||
|
return function(){
|
||||||
|
var list = get_list()
|
||||||
|
if(list.length == 0){
|
||||||
|
flashIndicator('end')
|
||||||
|
return getImage()
|
||||||
|
}
|
||||||
|
var cur = getImageGID()
|
||||||
|
var o = getGIDOrder(cur)
|
||||||
|
var next = get_closest(cur)
|
||||||
|
var i = list.indexOf(next)+1
|
||||||
|
|
||||||
|
// we are before the first loaded bookmark, find the first...
|
||||||
|
while((next == cur
|
||||||
|
|| next == null
|
||||||
|
|| getGIDOrder(next) < o)
|
||||||
|
&& i < list.length){
|
||||||
|
next = list[i]
|
||||||
|
next = get_closest(next)
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
|
||||||
|
// did not find any loaded bookmarks after...
|
||||||
|
if(i >= list.length
|
||||||
|
&& (next == null
|
||||||
|
|| next == cur
|
||||||
|
|| getGIDOrder(next) < o)){
|
||||||
|
flashIndicator('end')
|
||||||
|
return getImage(cur)
|
||||||
|
}
|
||||||
|
|
||||||
|
return showImage(next)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function makePrevFromListAction(get_closest, get_list){
|
||||||
|
return function(){
|
||||||
|
var list = get_list()
|
||||||
|
if(list.length == 0){
|
||||||
|
flashIndicator('start')
|
||||||
|
return getImage(cur)
|
||||||
|
}
|
||||||
|
var cur = getImageGID()
|
||||||
|
var prev = get_closest(cur)
|
||||||
|
|
||||||
|
// nothing bookmarked before us...
|
||||||
|
if(prev == null){
|
||||||
|
flashIndicator('start')
|
||||||
|
return getImage(cur)
|
||||||
|
}
|
||||||
|
|
||||||
|
// current image is bookmarked, get the bookmark before it...
|
||||||
|
if(prev == cur){
|
||||||
|
prev = list[list.indexOf(prev)-1]
|
||||||
|
prev = prev != null ? get_closest(prev) : prev
|
||||||
|
// no loaded (crop mode?) bookmark before us...
|
||||||
|
if(prev == null){
|
||||||
|
flashIndicator('start')
|
||||||
|
return getImage(cur)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return showImage(prev)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Basic marks...
|
* Basic marks...
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user