mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-02 04:10:11 +00:00
fixed bug in load/reload...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
e20f337978
commit
b420c007bc
@ -1071,8 +1071,6 @@ module.DataPrototype = {
|
|||||||
// -> data
|
// -> data
|
||||||
//
|
//
|
||||||
// NOTE: if mode is 'vertical' then place is ignored...
|
// NOTE: if mode is 'vertical' then place is ignored...
|
||||||
//
|
|
||||||
// XXX needs testing...
|
|
||||||
gatherImages: function(gids, reference, place, mode){
|
gatherImages: function(gids, reference, place, mode){
|
||||||
gids = this.makeSparseImages(gids)
|
gids = this.makeSparseImages(gids)
|
||||||
|
|
||||||
@ -1197,6 +1195,7 @@ module.DataPrototype = {
|
|||||||
// NOTE: .getImage(..) defaults to 'before' thus this to defaults
|
// NOTE: .getImage(..) defaults to 'before' thus this to defaults
|
||||||
// to 'after'
|
// to 'after'
|
||||||
//
|
//
|
||||||
|
// XXX needs better docs...
|
||||||
shiftImage: function(from, target, mode, direction){
|
shiftImage: function(from, target, mode, direction){
|
||||||
from = from == null || from == 'current' ? this.current : from
|
from = from == null || from == 'current' ? this.current : from
|
||||||
from = from.constructor !== Array ? [from] : from
|
from = from.constructor !== Array ? [from] : from
|
||||||
|
|||||||
@ -989,11 +989,14 @@ module.RibbonsPrototype = {
|
|||||||
//
|
//
|
||||||
// ribbons must be .getRibbon(..) compatible.
|
// ribbons must be .getRibbon(..) compatible.
|
||||||
//
|
//
|
||||||
// reference must be .getImage(..) compatible.
|
// reference must be .getImage(..) compatible or null to disable
|
||||||
|
// offset compensation.
|
||||||
//
|
//
|
||||||
// XXX should this compensate for load offset???
|
// NOTE: this will change ribbon size and compensate for it, but this
|
||||||
// XXX need to make this animation-neutral...
|
// will not disable transitions, which at this point is the
|
||||||
updateRibbon: function(gids, ribbon, reference){
|
// responsibility of the caller...
|
||||||
|
// NOTE: offset calculation depends on image blocks being square...
|
||||||
|
updateRibbon: function(gids, ribbon, reference, count){
|
||||||
var that = this
|
var that = this
|
||||||
// get/create the ribbon...
|
// get/create the ribbon...
|
||||||
var r = this.getRibbon(ribbon)
|
var r = this.getRibbon(ribbon)
|
||||||
@ -1006,12 +1009,10 @@ module.RibbonsPrototype = {
|
|||||||
var unload = $()
|
var unload = $()
|
||||||
|
|
||||||
// compensate for new/removed images...
|
// compensate for new/removed images...
|
||||||
// XXX need to make this animation-neutral...
|
|
||||||
if(reference != null){
|
if(reference != null){
|
||||||
var ref = this.getImage(reference)
|
var ref = this.getImage(reference)
|
||||||
|
|
||||||
// align only if ref is loaded...
|
// align only if ref is loaded...
|
||||||
// XXX
|
|
||||||
if(ref.length > 0){
|
if(ref.length > 0){
|
||||||
var gid = this.getElemGID(ref)
|
var gid = this.getElemGID(ref)
|
||||||
var w = ref.outerWidth()
|
var w = ref.outerWidth()
|
||||||
@ -1074,13 +1075,6 @@ module.RibbonsPrototype = {
|
|||||||
that.updateImage(img)
|
that.updateImage(img)
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
|
||||||
// remove the rest of the stuff in ribbon...
|
|
||||||
if(loaded.length > gids.length){
|
|
||||||
loaded.eq(gids.length-1).nextAll().remove()
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
return this
|
return this
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1134,10 +1128,13 @@ module.RibbonsPrototype = {
|
|||||||
// load the data...
|
// load the data...
|
||||||
var that = this
|
var that = this
|
||||||
|
|
||||||
// place images...
|
// update ribbons -- place images...
|
||||||
if(data.ribbons != null){
|
if(data.ribbons != null){
|
||||||
|
// see if we've got a custom ribbon updater...
|
||||||
|
var updateRibbon = settings.updateRibbon || this.updateRibbon.bind(this)
|
||||||
|
|
||||||
Object.keys(data.ribbons).forEach(function(gid){
|
Object.keys(data.ribbons).forEach(function(gid){
|
||||||
that.updateRibbon(data.ribbons[gid], gid)
|
updateRibbon(data.ribbons[gid], gid)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -85,12 +85,6 @@ module.setupActions = function(viewer){
|
|||||||
|
|
||||||
var vv = Object.create(v.Viewer)
|
var vv = Object.create(v.Viewer)
|
||||||
|
|
||||||
vv.load({
|
|
||||||
data: data.Data(module.mock_data),
|
|
||||||
viewer: viewer,
|
|
||||||
images: makeTestImages(),
|
|
||||||
})
|
|
||||||
|
|
||||||
return vv
|
return vv
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -197,6 +197,15 @@ $(function(){
|
|||||||
//module.GLOBAL_KEYBOARD.__proto__ = a
|
//module.GLOBAL_KEYBOARD.__proto__ = a
|
||||||
|
|
||||||
|
|
||||||
|
// load some testing data...
|
||||||
|
a.load({
|
||||||
|
data: data.Data(testing.mock_data),
|
||||||
|
viewer: $('.viewer'),
|
||||||
|
images: testing.makeTestImages(),
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// setup base keyboard for devel, in case something breaks...
|
// setup base keyboard for devel, in case something breaks...
|
||||||
$(document)
|
$(document)
|
||||||
.keydown(
|
.keydown(
|
||||||
|
|||||||
@ -538,18 +538,24 @@ actions.Actions(Client, {
|
|||||||
this.reload()
|
this.reload()
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
// XXX make this better support partial data view...
|
// NOTE: this will pass the .ribbons.updateData(..) a custom ribbon
|
||||||
// ...at this point this first loads the full data and then
|
// updater if one is defined here as .updateRibbon(target)
|
||||||
// .focusImage(..) triggers a reload...
|
// XXX actions.updateRibbon(..) and ribbons.updateRibbon(..) are NOT
|
||||||
|
// signature compatible...
|
||||||
reload: ['Reload viewer',
|
reload: ['Reload viewer',
|
||||||
function(){
|
function(){
|
||||||
this.ribbons.preventTransitions()
|
this.ribbons.preventTransitions()
|
||||||
|
|
||||||
return function(){
|
return function(){
|
||||||
this.ribbons.updateData(this.data)
|
// see if we've got a custom ribbon updater...
|
||||||
|
var that = this
|
||||||
|
var settings = this.updateRibbon != null
|
||||||
|
? { updateRibbon: function(_, ribbon){ that.updateRibbon(ribbon) } }
|
||||||
|
: null
|
||||||
|
|
||||||
|
this.ribbons.updateData(this.data, settings)
|
||||||
this.focusImage()
|
this.focusImage()
|
||||||
|
|
||||||
//this.ribbons.restoreTransitions(true)
|
|
||||||
this.ribbons.restoreTransitions()
|
this.ribbons.restoreTransitions()
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
@ -560,7 +566,6 @@ actions.Actions(Client, {
|
|||||||
delete this.ribbons
|
delete this.ribbons
|
||||||
}],
|
}],
|
||||||
|
|
||||||
|
|
||||||
// XXX move this to a viewer window action set
|
// XXX move this to a viewer window action set
|
||||||
close: ['Cloase viewer',
|
close: ['Cloase viewer',
|
||||||
function(){
|
function(){
|
||||||
@ -925,7 +930,16 @@ function Feature(obj){
|
|||||||
var PartialRibbonsActions =
|
var PartialRibbonsActions =
|
||||||
module.PartialRibbonsActions =
|
module.PartialRibbonsActions =
|
||||||
actions.Actions({
|
actions.Actions({
|
||||||
updateRibbonSize: ['Update partial ribbon size',
|
/*
|
||||||
|
// NOTE: this is here for documentation only, mixing-this into an
|
||||||
|
// action set will overload the original config...
|
||||||
|
config: {
|
||||||
|
'ribbon-size-screens': 5,
|
||||||
|
'ribbon-resize-threshold': 1,
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
|
||||||
|
updateRibbon: ['Update partial ribbon size',
|
||||||
function(target, w, size, threshold){
|
function(target, w, size, threshold){
|
||||||
target = target instanceof jQuery
|
target = target instanceof jQuery
|
||||||
? this.ribbons.getElemGID(target)
|
? this.ribbons.getElemGID(target)
|
||||||
@ -953,6 +967,8 @@ actions.Actions({
|
|||||||
var na = this.data.getImages(target, s/2, 'after').length - 1
|
var na = this.data.getImages(target, s/2, 'after').length - 1
|
||||||
var pa = this.data.getImages(target, s/2, 'before').length - 1
|
var pa = this.data.getImages(target, s/2, 'before').length - 1
|
||||||
|
|
||||||
|
|
||||||
|
// do the update...
|
||||||
// the target is not loaded...
|
// the target is not loaded...
|
||||||
if(this.ribbons.getImage(target).length == 0
|
if(this.ribbons.getImage(target).length == 0
|
||||||
// passed threshold on the right...
|
// passed threshold on the right...
|
||||||
@ -1008,17 +1024,17 @@ module.PartialRibbons = Feature({
|
|||||||
|
|
||||||
return actions
|
return actions
|
||||||
.on('focusImage.pre centerImage.pre', this.tag, function(target){
|
.on('focusImage.pre centerImage.pre', this.tag, function(target){
|
||||||
this.updateRibbonSize(target)
|
this.updateRibbon(target)
|
||||||
})
|
})
|
||||||
.on('fitImage.pre', this.tag, function(n){
|
.on('fitImage.pre', this.tag, function(n){
|
||||||
this.updateRibbonSize('current', n || 1)
|
this.updateRibbon('current', n || 1)
|
||||||
})
|
})
|
||||||
.on('fitRibbon.pre', this.tag, function(n){
|
.on('fitRibbon.pre', this.tag, function(n){
|
||||||
n = n || 1
|
n = n || 1
|
||||||
|
|
||||||
// convert target height in ribbons to width in images...
|
// convert target height in ribbons to width in images...
|
||||||
// NOTE: this does not account for compensation that
|
// NOTE: this does not account for compensation that
|
||||||
// .updateRibbonSize(..) makes for fitting whole image
|
// .updateRibbon(..) makes for fitting whole image
|
||||||
// counts, this is a small enough error so as not
|
// counts, this is a small enough error so as not
|
||||||
// to waste time on...
|
// to waste time on...
|
||||||
var s = this.ribbons.getScale()
|
var s = this.ribbons.getScale()
|
||||||
@ -1026,7 +1042,7 @@ module.PartialRibbons = Feature({
|
|||||||
var w = this.ribbons.getScreenWidthImages()
|
var w = this.ribbons.getScreenWidthImages()
|
||||||
var nw = w / (h/n)
|
var nw = w / (h/n)
|
||||||
|
|
||||||
this.updateRibbonSize('current', nw)
|
this.updateRibbon('current', nw)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
remove: function(actions){
|
remove: function(actions){
|
||||||
@ -1051,7 +1067,7 @@ module.AlignRibbonsToImageOrder = Feature({
|
|||||||
this.alignByOrder(target)
|
this.alignByOrder(target)
|
||||||
})
|
})
|
||||||
// normalize the initial state...
|
// normalize the initial state...
|
||||||
.focusImage()
|
//.focusImage()
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1069,7 +1085,7 @@ module.AlignRibbonsToFirstImage = Feature({
|
|||||||
this.alignByFirst(target)
|
this.alignByFirst(target)
|
||||||
})
|
})
|
||||||
// normalize the initial state...
|
// normalize the initial state...
|
||||||
.focusImage()
|
//.focusImage()
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1345,7 +1361,7 @@ module.CurrentImageIndicator = Feature({
|
|||||||
})
|
})
|
||||||
// turn the marker on...
|
// turn the marker on...
|
||||||
// XXX not sure about this...
|
// XXX not sure about this...
|
||||||
.focusImage()
|
//.focusImage()
|
||||||
},
|
},
|
||||||
remove: function(actions){
|
remove: function(actions){
|
||||||
actions.viewer.find('.' + this.tag).remove()
|
actions.viewer.find('.' + this.tag).remove()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user