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 // NOTE: elements are added here only when some data is set, use
// BOOKMARKS, as the main structure. // BOOKMARKS, as the main structure.
var BOOKMARKS_DATA = { var BOOKMARKS_DATA = {}
}
var BOOKMARKS_FILE_DEFAULT = 'bookmarked.json' var BOOKMARKS_FILE_DEFAULT = 'bookmarked.json'
var BOOKMARKS_FILE_PATTERN = /^[0-9]*-bookmarked.json$/ var BOOKMARKS_FILE_PATTERN = /^[0-9]*-bookmarked.json$/
/********************************************************************** /**********************************************************************
* Helpers * 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... // XXX argument processing...
function getBookmarkedGIDBefore(gid){ function getBookmarkedGIDBefore(gid){
if(BOOKMARKS.length == 0){ if(BOOKMARKS.length == 0){
@ -64,7 +67,6 @@ var updateBookmarkedImageMark = makeMarkUpdater(
function(gid){ function(gid){
return BOOKMARKS.indexOf(gid) > -1 return BOOKMARKS.indexOf(gid) > -1
}) })
IMAGE_UPDATERS.push(updateBookmarkedImageMark)
@ -168,7 +170,6 @@ var loadFileBookmarks = makeFileLoader(
BOOKMARKS = data[0] == null ? [] : data[0] BOOKMARKS = data[0] == null ? [] : data[0]
BOOKMARKS_DATA = data[1] == null ? {} : data[1] BOOKMARKS_DATA = data[1] == null ? {} : data[1]
}) })
FILE_LOADERS.push(loadFileBookmarks)
var saveFileBookmarks = makeFileSaver( var saveFileBookmarks = makeFileSaver(
@ -179,7 +180,6 @@ var saveFileBookmarks = makeFileSaver(
BOOKMARKS_DATA BOOKMARKS_DATA
] ]
}) })
FILE_SAVERS.push(saveFileBookmarks)
@ -191,6 +191,16 @@ FILE_SAVERS.push(saveFileBookmarks)
// //
function setupBookmarks(viewer){ function setupBookmarks(viewer){
console.log('Bookmarks: setup...') 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 return viewer
.on('togglingBookmark', function(evt, gid, action){ .on('togglingBookmark', function(evt, gid, action){
// add a bookmark... // 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){ function makeFileLoader(title, file_dfl, file_pattern, data_set, skip_reg){
return function(path){ var _loader = function(path){
var res = $.Deferred() var res = $.Deferred()
// default locations... // default locations...
if(path == null){ if(path == null){
@ -220,17 +220,21 @@ function makeFileLoader(title, file_dfl, file_pattern, data_set){
return res return res
} }
!skip_reg && FILE_LOADERS.push(_loader)
return _loader
} }
// XXX make this check for updates -- no need to re-save if nothing // XXX make this check for updates -- no need to re-save if nothing
// changed... // changed...
function makeFileSaver(file_dfl, data_get){ function makeFileSaver(file_dfl, data_get, skip_reg){
return function(name){ var _saver = function(name){
name = name == null name = name == null
? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp()) ? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp())
: name : name
dumpJSON(name + '-' + file_dfl, data_get()) 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, .global-mode-indicators .marks-visible,
.context-mode-indicators .current-image-marked { .context-mode-indicators .current-image-marked {
color: blue; color: blue;
cursor: hand;
} }
.context-mode-indicators .current-image-bookmarked { .context-mode-indicators .current-image-bookmarked {
color: yellow; color: yellow;
cursor: hand;
} }
.global-mode-indicators .marked-only-visible .shown, .global-mode-indicators .marked-only-visible .shown,
.global-mode-indicators .marks-visible .shown, .global-mode-indicators .marks-visible .shown,

View File

@ -1067,9 +1067,11 @@ button:hover {
.global-mode-indicators .marks-visible, .global-mode-indicators .marks-visible,
.context-mode-indicators .current-image-marked { .context-mode-indicators .current-image-marked {
color: blue; color: blue;
cursor: hand;
} }
.context-mode-indicators .current-image-bookmarked { .context-mode-indicators .current-image-bookmarked {
color: yellow; color: yellow;
cursor: hand;
} }
.global-mode-indicators .marked-only-visible .shown, .global-mode-indicators .marked-only-visible .shown,
.global-mode-indicators .marks-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 // the resulting function will update image mark state by adding or
// removing the mark the specific mark object. // removing the mark the specific mark object.
function makeMarkUpdater(img_class, mark_class, test){ function makeMarkUpdater(img_class, mark_class, test){
return function(gid, image){ var _updater = function(gid, image){
// marks... // marks...
if(test(gid)){ if(test(gid)){
image.addClass(img_class) image.addClass(img_class)
@ -123,6 +123,8 @@ function makeMarkUpdater(img_class, mark_class, test){
} }
return image return image
} }
IMAGE_UPDATERS.push(_updater)
return _updater
} }
@ -136,7 +138,6 @@ var updateSelectedImageMark = makeMarkUpdater(
function(gid){ function(gid){
return MARKED.indexOf(gid) > -1 return MARKED.indexOf(gid) > -1
}) })
IMAGE_UPDATERS.push(updateSelectedImageMark)
// NOTE: to disable MARKED cleanout set no_cleanout_marks to true. // NOTE: to disable MARKED cleanout set no_cleanout_marks to true.
@ -458,7 +459,6 @@ var loadFileMarks = makeFileLoader(
function(data){ function(data){
MARKED = data MARKED = data
}) })
FILE_LOADERS.push(loadFileMarks)
// Save image marks to file // Save image marks to file
@ -467,7 +467,6 @@ var saveFileMarks = makeFileSaver(
function(){ function(){
return MARKED return MARKED
}) })
FILE_SAVERS.push(saveFileMarks)
@ -478,6 +477,24 @@ FILE_SAVERS.push(saveFileMarks)
function setupMarks(viewer){ function setupMarks(viewer){
console.log('Marks: setup...') 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 return viewer
// marks... // marks...
.on('togglingMark', function(evt, gid, action){ .on('togglingMark', function(evt, gid, action){

View File

@ -9,6 +9,7 @@
// NOTE: if null this feature will be disabled. // NOTE: if null this feature will be disabled.
var PROPORTIONS_RATIO_THRESHOLD = 1.5 var PROPORTIONS_RATIO_THRESHOLD = 1.5
var CONTEXT_INDICATOR_UPDATERS = []
/********************************************************************** /**********************************************************************
@ -21,28 +22,20 @@ function setupIndicators(){
'Single ribbon mode (F3)') 'Single ribbon mode (F3)')
.css('cursor', 'hand') .css('cursor', 'hand')
.click(function(){ toggleSingleRibbonMode() }) .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( function makeContextIndicatorUpdater(image_class){
'current-image-marked', var _updater = function(image){
'Image is marked (Ins)') var indicator = $('.context-mode-indicators .current-image-'+image_class)
.css('cursor', 'hand') if(image.hasClass(image_class)){
.click(function(){ toggleMark() }) 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) image = image == null ? getImage() : $(image)
// marked... // marked...
var indicator = $('.context-mode-indicators .current-image-marked') CONTEXT_INDICATOR_UPDATERS.map(function(update){
if(image.hasClass('marked')){ update(image)
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')
}
} }