diff --git a/ui/bookmarks.js b/ui/bookmarks.js index fea29273..d4c413d3 100755 --- a/ui/bookmarks.js +++ b/ui/bookmarks.js @@ -178,6 +178,13 @@ function setupBookmarks(viewer){ bookmarksUpdated() } }) + .on('updatedImageGID', function(evt, was, is){ + var i = BOOKMARKS.indexOf(was) + if(i >= 0){ + BOOKMARKS[i] = is + bookmarksUpdated() + } + }) } SETUP_BINDINGS.push(setupBookmarks) diff --git a/ui/files.js b/ui/files.js index a7007b90..ca66e62a 100755 --- a/ui/files.js +++ b/ui/files.js @@ -1158,11 +1158,6 @@ function readImagesDatesQ(images){ } -// XXX deleting images is not sported, we need to explicitly re-save... -// XXX need to reload the viewer... -// XXX not tested... -// XXX need to also replace in MARKED, BOOKMARKS, ... -// ...and make it systematic... function updateImageGID(gid, images, data){ gid = gid == null ? getImageGID() : gid images = images == null ? IMAGES : images @@ -1204,6 +1199,8 @@ function updateImageGID(gid, images, data){ if(i.length > 0){ updateImage(i, gid) } + + $('.viewer').trigger('updatedImageGID', [key, gid]) }) } function updateImagesGIDs(images, data){ diff --git a/ui/marks.js b/ui/marks.js index d7fa0563..2159bffa 100755 --- a/ui/marks.js +++ b/ui/marks.js @@ -804,6 +804,13 @@ function setupMarks(viewer){ marksUpdated() } }) + .on('updatedImageGID', function(evt, was, is){ + var i = MARKED.indexOf(was) + if(i >= 0){ + MARKED[i] = is + marksUpdated() + } + }) } SETUP_BINDINGS.push(setupMarks) diff --git a/ui/tags.js b/ui/tags.js index b4c40d33..235dfeed 100755 --- a/ui/tags.js +++ b/ui/tags.js @@ -558,6 +558,18 @@ function setupUnsortedTagHandler(viewer){ tagsUpdated() } }) + .on('updatedImageGID', function(evt, was, is){ + var updated = false + for(var tag in TAGS){ + var i = TAGS[tag].indexOf(was) + if(i >= 0){ + TAGS[tag][i] = is + } + } + if(updated){ + tagsUpdated() + } + }) } SETUP_BINDINGS.push(setupUnsortedTagHandler)