some refactoring + tweaking...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2015-12-14 02:49:04 +03:00
parent eb58b33093
commit 9a54201135
3 changed files with 72 additions and 12 deletions

View File

@ -195,6 +195,14 @@ function Toggler(elem, state_accessor, states, callback_a, callback_b){
// just asking for info...
if(action == '?'){
return bool_action ? (cur == 'none' ? 'off' : 'on') : cur
/*
// NOTE: if cur is not in states then return it as-is...
return bool_action ? (
cur == 'none' ? 'off'
: cur == states[1-states.indexOf('none')] ? 'on'
: cur)
: cur
*/
}
// force reload of current state...

View File

@ -299,10 +299,7 @@ $(function(){
// setup the viewer...
a
//.toggleAutoStoreConfig()
.load({
viewer: $('.viewer'),
})
.load({ viewer: $('.viewer') })
.setEmptyMsg('Loading...')
.start()

View File

@ -148,7 +148,7 @@ var makeConfigToggler = function(attr, states){
var lst = states.constructor === Array ? states : states.call(this)
if(action == null){
return this.config[attr] || lst[0]
return this.config[attr] || lst[lst.indexOf('none')] || lst[0]
} else {
this.config[attr] = action
@ -1237,7 +1237,9 @@ actions.Actions({
function(){ return this.config.themes },
function(state){ this.config.theme = state }) ],
setEmptyMsg: ['- Interface/Set message to be displayed when nothing is loaded.',
function(msg, help){ this.ribbons.setEmptyMsg(msg, help) }],
function(msg, help){ this.ribbons
&& this.ribbons.length > 0
&& this.ribbons.setEmptyMsg(msg, help) }],
// align modes...
@ -1964,7 +1966,13 @@ var ConfigLocalStorageActions = actions.Actions({
var config = {}
Object.keys(cur)
.forEach(function(e){
if(cur.hasOwnProperty(e) && base[e] != cur[e]){
if(cur.hasOwnProperty(e)
&& base[e] != cur[e]
// NOTE: this may go wrong for objects
// if key order is different...
// ...this is no big deal as false
// positives are not lost data...
|| JSON.stringify(base[e]) != JSON.stringify(cur[e])){
config[e] = cur[e]
}
})
@ -2067,12 +2075,14 @@ module.ConfigLocalStorage = ImageGridFeatures.Feature({
// first to run...
['start.pre',
function(){
this.logger && this.logger.emit('loaded', 'config')
this
.loadStoredConfig()
.toggleAutoStoreConfig('on')
}],
['stop',
['stop.pre',
function(){
this.logger && this.logger.emit('loaded', 'config')
this
.storeConfig()
.toggleAutoStoreConfig('off')
@ -3732,9 +3742,8 @@ module.AutoSingleImage = ImageGridFeatures.Feature({
// ribbon - specific ribbon (gid)
// Array
//
// XXX make this a real toggler... ???
function makeTagTogglerAction(tag){
return function(target, action){
var toggler = function(target, action){
if(target == '?' || target == 'on' || target == 'off'){
var x = action
action = target
@ -3778,12 +3787,57 @@ function makeTagTogglerAction(tag){
} else if(action == '?'){
var res = this.data.toggleTag(tag, target, '?')
res = res.length == 1 ? res[0] : res
// ??
} else if(action == '?'){
res = ['on', 'off']
}
return res
}
}
// cheating a bit...
toggler.__proto__ = Toggler.prototype
toggler.constructor = Toggler
return toggler
}
/* XXX this toggler is not fully compatible with the Toggler interface
* thus, we either need to update the Toggler to suppor multiple
* values or keep this...
function makeTagTogglerAction(tag){
return Toggler(null,
function(target, action){
// get the target...
target = target || 'current'
target = target == 'all'
|| target == 'loaded'
|| target in this.data.ribbons
? this.data.getImages(target)
: target == 'ribbon' ? this.data.getImages('current')
: target
target = target.constructor !== Array ? [target] : target
// get state...
if(action == null){
var res = this.data.toggleTag(tag, target, '?')
return res.constructor == Array ? res
: res == 'on' ? tag
: 'none'
// on...
} else if(action == tag){
this.tag(tag, target)
// off...
} else {
this.untag(tag, target)
}
},
tag)
}
*/
// XXX .toggleMarkBlock(..) not done yet...
var ImageMarkActions = actions.Actions({
@ -4046,6 +4100,7 @@ if(window.nodejs != null){
var pathlib = requirejs('path')
var glob = requirejs('glob')
var file = requirejs('./file')
var browseWalk = requirejs('./lib/widget/browse-walk')
}
@ -4412,7 +4467,7 @@ var FileSystemLoaderUIActions = actions.Actions({
base = base || this.base_path || '/'
var o = overlay.Overlay(this.ribbons.viewer,
require('./lib/widget/browse-walk').makeWalk(
browseWalk.makeWalk(
null, base, this.config['image-file-pattern'],
this.config['file-browser-settings'])
// path selected...