mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 18:30:09 +00:00
added .replaceGid(..) + some work on URL hash support...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
f2d6d7a5a9
commit
b41bbd9738
@ -464,6 +464,35 @@ var DataPrototype = {
|
||||
return this
|
||||
},
|
||||
|
||||
// Replace image gid...
|
||||
//
|
||||
// XXX should this work for ribbon gids???
|
||||
replaceGid: function(from, to){
|
||||
from = this.getImage(from)
|
||||
var i = this.getImageOrder(from)
|
||||
|
||||
var t = this.getImage(to)
|
||||
|
||||
if(t != -1 && t != null){
|
||||
return
|
||||
}
|
||||
|
||||
// current...
|
||||
if(from == this.current){
|
||||
this.current = to
|
||||
}
|
||||
// order...
|
||||
this.order[i] = to
|
||||
// image lists...
|
||||
this.eachImageList(function(list){
|
||||
if(list[i] != null){
|
||||
list[i] = to
|
||||
}
|
||||
})
|
||||
|
||||
return this
|
||||
},
|
||||
|
||||
|
||||
|
||||
/*********************************************** Introspection ***/
|
||||
|
||||
@ -245,6 +245,21 @@ actions.Actions({
|
||||
return res
|
||||
}],
|
||||
|
||||
replaceGid: ['- System/Replace image gid',
|
||||
function(from, to){
|
||||
from = this.data.getImage(from)
|
||||
|
||||
// data...
|
||||
var res = this.data.replaceGid(from, to)
|
||||
|
||||
if(res == null){
|
||||
return
|
||||
}
|
||||
|
||||
// images...
|
||||
this.images && this.images.replaceGid(from, to)
|
||||
}],
|
||||
|
||||
|
||||
// basic navigation...
|
||||
//
|
||||
|
||||
@ -49,11 +49,15 @@ core.ImageGridFeatures.Feature('viewer-testing', [
|
||||
'image-marks',
|
||||
'image-bookmarks',
|
||||
|
||||
// local storage...
|
||||
|
||||
// local storage + url...
|
||||
'config-local-storage',
|
||||
// XXX make this browser-only...
|
||||
'ui-url-hash',
|
||||
'url-history-local-storage',
|
||||
'ui-single-image-view-local-storage',
|
||||
|
||||
|
||||
'fs-loader',
|
||||
'ui-fs-loader',
|
||||
'fs-url-history',
|
||||
@ -92,6 +96,7 @@ core.ImageGridFeatures.Feature('viewer-testing', [
|
||||
//'auto-single-image',
|
||||
//'auto-ribbon',
|
||||
|
||||
|
||||
// XXX not yet fully tested...
|
||||
'system-journal',
|
||||
])
|
||||
|
||||
@ -289,6 +289,13 @@ actions.Actions({
|
||||
}],
|
||||
|
||||
|
||||
replaceGid: [
|
||||
function(from, to){
|
||||
return function(res){
|
||||
res && this.ribbons.replaceGid(from, to)
|
||||
}
|
||||
}],
|
||||
|
||||
// This is called by .ribbons, the goal is to use it to hook into
|
||||
// image updating from features and extensions...
|
||||
//
|
||||
@ -2802,6 +2809,45 @@ module.DirectControlGSAP = core.ImageGridFeatures.Feature({
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// XXX make this browser specific...
|
||||
// XXX BUG: loading of current gid from url for some reason is broken,
|
||||
// race?...
|
||||
|
||||
var URLHash =
|
||||
module.URLHash = core.ImageGridFeatures.Feature({
|
||||
title: '',
|
||||
doc: '',
|
||||
|
||||
tag: 'ui-url-hash',
|
||||
depends: ['ui'],
|
||||
|
||||
handlers: [
|
||||
['focusImage',
|
||||
function(res, a){
|
||||
console.log('focus:', a)
|
||||
if(this.current && this.current != ''){
|
||||
location.hash = this.current
|
||||
}
|
||||
}],
|
||||
// XXX this does not work for some reason...
|
||||
// ...likely because of the slow async load and sync set...
|
||||
['start',
|
||||
function(){
|
||||
var h = location.hash
|
||||
h = h.replace(/^#/, '')
|
||||
|
||||
// for some odd reason this does not work...
|
||||
if(h != ''){
|
||||
console.log('!!!!', h)
|
||||
this.current = h
|
||||
}
|
||||
}],
|
||||
],
|
||||
})
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
// XXX console / log / status bar
|
||||
|
||||
@ -501,6 +501,19 @@ module.ImagesPrototype = {
|
||||
return r == null ? n : parseInt(r[1])
|
||||
},
|
||||
|
||||
// Replace image gid...
|
||||
//
|
||||
replaceGid: function(from, to){
|
||||
var img = this[from]
|
||||
|
||||
// XXX is the test needed here???
|
||||
if(img != null){
|
||||
delete this[from]
|
||||
this[to] = img
|
||||
}
|
||||
|
||||
return this
|
||||
},
|
||||
|
||||
// Gid sorters...
|
||||
// XXX might be a good idea to add caching...
|
||||
|
||||
@ -87,6 +87,11 @@ var obj2transform = function(obj, filter){
|
||||
// .translate3d(1,2,3)
|
||||
// -> [1, 2, 3]
|
||||
// NOTE: both set data correctly...
|
||||
// XXX add argument in place operations...
|
||||
// +=
|
||||
// -=
|
||||
// *=
|
||||
// /=
|
||||
// XXX move the grammar out of this...
|
||||
// XXX need:
|
||||
// - a way to minimize this, i.e. get only full and minimal functions...
|
||||
@ -116,7 +121,7 @@ var transformEditor = function(){
|
||||
// methods...
|
||||
// XXX generate this...
|
||||
simplify: function(filter){
|
||||
data = this.data
|
||||
var data = this.data
|
||||
|
||||
// scale...
|
||||
if(data.scale
|
||||
@ -375,6 +380,7 @@ var transformEditor = function(){
|
||||
}
|
||||
|
||||
// XXX get these from grammar...
|
||||
// The Grammar...
|
||||
func('translate', ['px', 'px'], 0)
|
||||
func('translate3d', ['px', 'px', 'px'], 0)
|
||||
func('translateX', ['px'], 0)
|
||||
|
||||
@ -1315,6 +1315,18 @@ var RibbonsPrototype = {
|
||||
return img
|
||||
},
|
||||
|
||||
// Replace image gid...
|
||||
//
|
||||
// XXX should this work for ribbon gids???
|
||||
replaceGid: function(from, to){
|
||||
var img = this.getImage(from)
|
||||
|
||||
img && img.length > 0
|
||||
&& this.setElemGID(img, to)
|
||||
|
||||
return this
|
||||
},
|
||||
|
||||
// Update image(s)...
|
||||
//
|
||||
// Update current image:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user