some refactoring and bugfixes...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-12-15 03:38:15 +04:00
parent c1575f69c4
commit cbc22e98ad
8 changed files with 73 additions and 36 deletions

View File

@ -53,8 +53,8 @@ function getBookmarkedGIDBefore(gid){
/*********************************************************************/ /*********************************************************************/
function cropBookmarkedImages(cmp, keep_ribbons, no_cleanout_marks){ function cropBookmarkedImages(cmp, keep_ribbons, keep_unloaded_gids){
cropDataTo(BOOKMARKS.slice(), keep_ribbons, no_cleanout_marks) cropDataTo(BOOKMARKS.slice(), keep_ribbons, keep_unloaded_gids)
return DATA return DATA
} }

View File

@ -251,9 +251,7 @@ if(window.CEF_dumpJSON != null){
// add the preview to the image object... // add the preview to the image object...
img.preview[size+'px'] = './' + CACHE_DIR +'/'+ preview_path.split(CACHE_DIR).pop() img.preview[size+'px'] = './' + CACHE_DIR +'/'+ preview_path.split(CACHE_DIR).pop()
// mark image dirty... // mark image dirty...
if(IMAGES_UPDATED.indexOf(gid) < 0){ imageUpdated(gid)
IMAGES_UPDATED.push(gid)
}
} }
//console.log('>>> Preview:', name, '('+size+'): Exists.') //console.log('>>> Preview:', name, '('+size+'): Exists.')
deferred.notify(gid, size, 'exists') deferred.notify(gid, size, 'exists')
@ -324,9 +322,7 @@ if(window.CEF_dumpJSON != null){
} }
img.preview[size+'px'] = './' + CACHE_DIR +'/'+ preview_path.split(CACHE_DIR).pop() img.preview[size+'px'] = './' + CACHE_DIR +'/'+ preview_path.split(CACHE_DIR).pop()
// mark image dirty... // mark image dirty...
if(IMAGES_UPDATED.indexOf(gid) < 0){ imageUpdated(gid)
IMAGES_UPDATED.push(gid)
}
// we are done... // we are done...
deferred.resolve() deferred.resolve()
} }

View File

@ -695,6 +695,16 @@ function orientationExif2ImageGrid(orientation){
} }
// mark an image as updated...
//
function imageUpdated(gid){
gid = gid == null ? getImageGID(): gid
if(IMAGES_UPDATED.indexOf(gid) == -1){
IMAGES_UPDATED.push(gid)
}
}
/********************************************************************** /**********************************************************************
* Constructors and general data manipulation * Constructors and general data manipulation

View File

@ -753,9 +753,8 @@ function readImageOrientation(gid, no_update_loaded){
img.flipped = o.flipped img.flipped = o.flipped
// mark image dirty... // mark image dirty...
if((o_o != o.orientation || o_f != o.flipped ) if(o_o != o.orientation || o_f != o.flipped){
&& IMAGES_UPDATED.indexOf(gid) < 0){ imageUpdated(gid)
IMAGES_UPDATED.push(gid)
} }
// update image if loaded... // update image if loaded...
@ -811,7 +810,7 @@ function readImagesDates(images){
return $.when.apply(null, $.map(images, function(_, gid){ return $.when.apply(null, $.map(images, function(_, gid){
return readImageDate(gid, images) return readImageDate(gid, images)
.done(function(){ .done(function(){
IMAGES_UPDATED.push(gid) imageUpdated(gid)
}) })
})) }))
} }
@ -823,7 +822,7 @@ function readImagesDatesQ(images){
$.each(images, function(gid, img){ $.each(images, function(gid, img){
queue.enqueue(readImageDate, gid, images) queue.enqueue(readImageDate, gid, images)
.always(function(){ .always(function(){
IMAGES_UPDATED.push(gid) imageUpdated(gid)
queue.notify(gid, 'done') queue.notify(gid, 'done')
}) })
}) })
@ -844,7 +843,7 @@ function updateImageGID(gid, images, data){
// images... // images...
images[gid] = images[key] images[gid] = images[key]
delete images[key] delete images[key]
IMAGES_UPDATED.push(gid) imageUpdated(gid)
// data... // data...
if(data != null){ if(data != null){

View File

@ -144,12 +144,11 @@ var updateSelectedImageMark = makeMarkUpdater(
// NOTE: MARKED may contain both gids that are not loaded and that do // NOTE: MARKED may contain both gids that are not loaded and that do
// not exist, as there is no way to distinguish between the two // not exist, as there is no way to distinguish between the two
// situations the cleanup is optional... // situations the cleanup is optional...
function cropMarkedImages(cmp, keep_ribbons, no_cleanout_marks){ function cropMarkedImages(cmp, keep_ribbons, keep_unloaded_gids){
cmp = cmp == null ? imageOrderCmp : cmp cmp = cmp == null ? imageOrderCmp : cmp
var cur = DATA.current
var marked = MARKED.slice().sort(cmp) var marked = MARKED.slice().sort(cmp)
cropDataTo(marked, keep_ribbons, no_cleanout_marks) cropDataTo(marked, keep_ribbons, keep_unloaded_gids)
return DATA return DATA
} }

View File

@ -290,9 +290,7 @@ function setupDataBindings(viewer){
// change the image orientation status and add to // change the image orientation status and add to
// updated list... // updated list...
IMAGES[gid].orientation = orientation IMAGES[gid].orientation = orientation
if(IMAGES_UPDATED.indexOf(gid) == -1){ imageUpdated(gid)
IMAGES_UPDATED.push(gid)
}
}) })
}) })
.on('flippingVertical flippingHorizontal', function(evt, image){ .on('flippingVertical flippingHorizontal', function(evt, image){
@ -302,9 +300,7 @@ function setupDataBindings(viewer){
var flip = getImageFlipState(img) var flip = getImageFlipState(img)
IMAGES[gid].flipped = flip IMAGES[gid].flipped = flip
if(IMAGES_UPDATED.indexOf(gid) == -1){ imageUpdated(gid)
IMAGES_UPDATED.push(gid)
}
}) })
}) })
.on('resetToOriginalImage', function(evt, image){ .on('resetToOriginalImage', function(evt, image){
@ -315,9 +311,7 @@ function setupDataBindings(viewer){
IMAGES[gid].flipped = null IMAGES[gid].flipped = null
IMAGES[gid].orientation = 0 IMAGES[gid].orientation = 0
if(IMAGES_UPDATED.indexOf(gid) == -1){ imageUpdated(gid)
IMAGES_UPDATED.push(gid)
}
}) })
}) })

View File

@ -10,9 +10,7 @@
// ... // ...
// } // }
// //
TAGS = { var TAGS = {}
}
@ -72,8 +70,8 @@ function addTag(tags, gid, tagset, images){
set = [] set = []
tagset[tag] = set tagset[tag] = set
} }
if(set.indexOf(tag) < 0){ if(set.indexOf(gid) < 0){
set.push(tag) set.push(gid)
set.sort() set.sort()
} }
@ -84,8 +82,7 @@ function addTag(tags, gid, tagset, images){
if(updated){ if(updated){
img.tags = img_tags img.tags = img_tags
// XXX hardcoded and not customizable... imageUpdated(gid)
IMAGES_UPDATED.push(gid)
} }
} }
@ -121,8 +118,7 @@ function removeTag(tags, gid, tagset, images){
} }
if(updated){ if(updated){
// XXX hardcoded and not customizable... imageUpdated(gid)
IMAGES_UPDATED.push(gid)
} }
} }
@ -203,6 +199,49 @@ function getRelatedTags(){
} }
*/ */
/*********************************************************************/
function tagMarked(tags){
MARKED.forEach(function(gid){
addTag(tags, gid)
})
return MARKED
}
function untagMarked(tags){
MARKED.forEach(function(gid){
removeTag(tags, gid)
})
return MARKED
}
function markTagged(tags){
MARKED = selectByTags(tags)
updateImages()
return MARKED
}
function unmarkTagged(tags){
var set = selectByTags(tags)
set.forEach(function(gid){
var i = MARKED.indexOf(gid)
if(i > -1){
MARKED.splice(i, 1)
}
})
updateImages()
return set
}
function cropTagged(tags, cmp, keep_ribbons, keep_unloaded_gids){
cmp = cmp == null ? imageOrderCmp : cmp
var set = selectByTags(tags).sort(cmp)
cropDataTo(set, keep_ribbons, keep_unloaded_gids)
return DATA
}
/********************************************************************** /**********************************************************************

View File

@ -1246,7 +1246,7 @@ function showImageInfo(){
} else { } else {
data.comment = ncomment data.comment = ncomment
} }
IMAGES_UPDATED.push(gid) imageUpdated(gid)
} }
// tags... // tags...