more refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-12-14 06:58:13 +04:00
parent 7f681d264a
commit 21ba781283
6 changed files with 65 additions and 47 deletions

View File

@ -11,19 +11,22 @@ var BOOKMARKS= []
//
// NOTE: elements are added here only when some data is set, use
// BOOKMARKS, as the main structure.
var BOOKMARKS_DATA = {
}
var BOOKMARKS_DATA = {}
var BOOKMARKS_FILE_DEFAULT = 'bookmarked.json'
var BOOKMARKS_FILE_PATTERN = /^[0-9]*-bookmarked.json$/
/**********************************************************************
* Helpers
*/
// This is the same as getGIDBefore(..) but will return the currently
// loaded and bookmarked image before current.
//
// for exact protocol see: getGIDBefore(..)
//
// XXX argument processing...
function getBookmarkedGIDBefore(gid){
if(BOOKMARKS.length == 0){
@ -64,7 +67,6 @@ var updateBookmarkedImageMark = makeMarkUpdater(
function(gid){
return BOOKMARKS.indexOf(gid) > -1
})
IMAGE_UPDATERS.push(updateBookmarkedImageMark)
@ -168,7 +170,6 @@ var loadFileBookmarks = makeFileLoader(
BOOKMARKS = data[0] == null ? [] : data[0]
BOOKMARKS_DATA = data[1] == null ? {} : data[1]
})
FILE_LOADERS.push(loadFileBookmarks)
var saveFileBookmarks = makeFileSaver(
@ -179,7 +180,6 @@ var saveFileBookmarks = makeFileSaver(
BOOKMARKS_DATA
]
})
FILE_SAVERS.push(saveFileBookmarks)
@ -191,6 +191,16 @@ FILE_SAVERS.push(saveFileBookmarks)
//
function setupBookmarks(viewer){
console.log('Bookmarks: setup...')
// XXX make this viewer specific...
makeContextIndicatorUpdater('bookmarked')
// XXX make this viewer specific...
showContextIndicator(
'current-image-bookmarked',
'Image is bookmarked (ctrl-B)')
.click(function(){ toggleBookmark() })
return viewer
.on('togglingBookmark', function(evt, gid, action){
// add a bookmark...

View File

@ -186,8 +186,8 @@ function loadLatestFile(path, dfl, pattern, diff_pattern, default_data){
}
function makeFileLoader(title, file_dfl, file_pattern, data_set){
return function(path){
function makeFileLoader(title, file_dfl, file_pattern, data_set, skip_reg){
var _loader = function(path){
var res = $.Deferred()
// default locations...
if(path == null){
@ -220,17 +220,21 @@ function makeFileLoader(title, file_dfl, file_pattern, data_set){
return res
}
!skip_reg && FILE_LOADERS.push(_loader)
return _loader
}
// XXX make this check for updates -- no need to re-save if nothing
// changed...
function makeFileSaver(file_dfl, data_get){
return function(name){
function makeFileSaver(file_dfl, data_get, skip_reg){
var _saver = function(name){
name = name == null
? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp())
: name
dumpJSON(name + '-' + file_dfl, data_get())
}
!skip_reg && FILE_SAVERS.push(_saver)
return _saver
}

View File

@ -1038,9 +1038,11 @@ button:hover {
.global-mode-indicators .marks-visible,
.context-mode-indicators .current-image-marked {
color: blue;
cursor: hand;
}
.context-mode-indicators .current-image-bookmarked {
color: yellow;
cursor: hand;
}
.global-mode-indicators .marked-only-visible .shown,
.global-mode-indicators .marks-visible .shown,

View File

@ -1067,9 +1067,11 @@ button:hover {
.global-mode-indicators .marks-visible,
.context-mode-indicators .current-image-marked {
color: blue;
cursor: hand;
}
.context-mode-indicators .current-image-bookmarked {
color: yellow;
cursor: hand;
}
.global-mode-indicators .marked-only-visible .shown,
.global-mode-indicators .marks-visible .shown,

View File

@ -112,7 +112,7 @@ function makeMarkToggler(img_class, mark_class, evt_name){
// the resulting function will update image mark state by adding or
// removing the mark the specific mark object.
function makeMarkUpdater(img_class, mark_class, test){
return function(gid, image){
var _updater = function(gid, image){
// marks...
if(test(gid)){
image.addClass(img_class)
@ -123,6 +123,8 @@ function makeMarkUpdater(img_class, mark_class, test){
}
return image
}
IMAGE_UPDATERS.push(_updater)
return _updater
}
@ -136,7 +138,6 @@ var updateSelectedImageMark = makeMarkUpdater(
function(gid){
return MARKED.indexOf(gid) > -1
})
IMAGE_UPDATERS.push(updateSelectedImageMark)
// NOTE: to disable MARKED cleanout set no_cleanout_marks to true.
@ -458,7 +459,6 @@ var loadFileMarks = makeFileLoader(
function(data){
MARKED = data
})
FILE_LOADERS.push(loadFileMarks)
// Save image marks to file
@ -467,7 +467,6 @@ var saveFileMarks = makeFileSaver(
function(){
return MARKED
})
FILE_SAVERS.push(saveFileMarks)
@ -478,6 +477,24 @@ FILE_SAVERS.push(saveFileMarks)
function setupMarks(viewer){
console.log('Marks: setup...')
// XXX make this viewer specific...
makeContextIndicatorUpdater('marked')
// XXX make these viewer specific...
showGlobalIndicator(
'marks-visible',
'Marks visible (F2)')
.click(function(){ toggleMarkesView() })
showGlobalIndicator(
'marked-only-visible',
'Marked only images visible (shift-F2)')
.click(function(){ toggleMarkedOnlyView() })
showContextIndicator(
'current-image-marked',
'Image is marked (Ins)')
.click(function(){ toggleMark() })
return viewer
// marks...
.on('togglingMark', function(evt, gid, action){

View File

@ -9,6 +9,7 @@
// NOTE: if null this feature will be disabled.
var PROPORTIONS_RATIO_THRESHOLD = 1.5
var CONTEXT_INDICATOR_UPDATERS = []
/**********************************************************************
@ -21,28 +22,20 @@ function setupIndicators(){
'Single ribbon mode (F3)')
.css('cursor', 'hand')
.click(function(){ toggleSingleRibbonMode() })
showGlobalIndicator(
'marks-visible',
'Marks visible (F2)')
.css('cursor', 'hand')
.click(function(){ toggleMarkesView() })
showGlobalIndicator(
'marked-only-visible',
'Marked only images visible (shift-F2)')
.css('cursor', 'hand')
.click(function(){ toggleMarkedOnlyView() })
}
showContextIndicator(
'current-image-bookmarked',
'Image is bookmarked (ctrl-B)')
.css('cursor', 'hand')
.click(function(){ toggleBookmark() })
showContextIndicator(
'current-image-marked',
'Image is marked (Ins)')
.css('cursor', 'hand')
.click(function(){ toggleMark() })
function makeContextIndicatorUpdater(image_class){
var _updater = function(image){
var indicator = $('.context-mode-indicators .current-image-'+image_class)
if(image.hasClass(image_class)){
indicator.addClass('shown')
} else {
indicator.removeClass('shown')
}
}
CONTEXT_INDICATOR_UPDATERS.push(_updater)
return _updater
}
@ -50,19 +43,9 @@ function updateContextIndicators(image){
image = image == null ? getImage() : $(image)
// marked...
var indicator = $('.context-mode-indicators .current-image-marked')
if(image.hasClass('marked')){
indicator.addClass('shown')
} else {
indicator.removeClass('shown')
}
indicator = $('.context-mode-indicators .current-image-bookmarked')
if(image.hasClass('bookmarked')){
indicator.addClass('shown')
} else {
indicator.removeClass('shown')
}
CONTEXT_INDICATOR_UPDATERS.map(function(update){
update(image)
})
}