minor tweaks...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-06-14 01:11:11 +04:00
parent fa72c0b466
commit d6b29fe464
5 changed files with 58 additions and 23 deletions

View File

@ -1,7 +1,7 @@
#======================================================================= #=======================================================================
__version__ = '''0.0.01''' __version__ = '''0.0.01'''
__sub_version__ = '''20130528215723''' __sub_version__ = '''20130613200255'''
__copyright__ = '''(c) Alex A. Naanou 2011''' __copyright__ = '''(c) Alex A. Naanou 2011'''
@ -40,7 +40,7 @@ CONFIG = {
'cache-image-name': '%(guid)s - %(name)s', 'cache-image-name': '%(guid)s - %(name)s',
# the rest of the paths will be relative to this... # the rest of the paths will be relative to this...
'cache-dir': '.ImageGridCache', 'cache-dir': '.ImageGrid',
'images': 'images.json', 'images': 'images.json',
'data': 'data.json', 'data': 'data.json',

View File

@ -16,7 +16,8 @@ var LOAD_SCREENS = 6
var DEFAULT_SCREEN_IMAGES = 4 var DEFAULT_SCREEN_IMAGES = 4
var MAX_SCREEN_IMAGES = 12 var MAX_SCREEN_IMAGES = 12
var CACHE_DIR = '.ImageGridCache' var CACHE_DIR = '.ImageGrid'
var CACHE_DIR_VAR = '${CACHE_DIR}'
// A stub image, also here for documentation... // A stub image, also here for documentation...
var STUB_IMAGE_DATA = { var STUB_IMAGE_DATA = {
@ -434,6 +435,8 @@ function normalizePath(url, base, mode){
//mode = /^\./.test(base) && mode == null ? 'relative' : null //mode = /^\./.test(base) && mode == null ? 'relative' : null
mode = mode == null ? 'absolute' : mode mode = mode == null ? 'absolute' : mode
res = ''
// windows path... // windows path...
// - replace all '\\' with '/'... // - replace all '\\' with '/'...
url = url.replace(/\\/g, '/') url = url.replace(/\\/g, '/')
@ -447,25 +450,33 @@ function normalizePath(url, base, mode){
// check if we start with base, and remove it if so... // check if we start with base, and remove it if so...
if(mode == 'relative' && url.substring(0, base.length) == base){ if(mode == 'relative' && url.substring(0, base.length) == base){
url = url.substring(base.length - 1) url = url.substring(base.length - 1)
return url[0] == '/' ? url.substring(1) : url res = url[0] == '/' ? url.substring(1) : url
// if it's a different path, return as-is // if it's a different path, return as-is
} else if(mode == 'absolute'){ } else if(mode == 'absolute'){
return url res = url
} }
// make an absolute path... // make an absolute path...
} else if(mode == 'absolute') { } else if(mode == 'absolute') {
// if base ends and url starts with '.' avoid making it a '..' // if base ends and url starts with '.' avoid making it a '..'
if(base[base.length-1] == '.' && url[0] == '.'){ if(base[base.length-1] == '.' && url[0] == '.'){
return base + url.substring(1) res = base + url.substring(1)
// avoid creating '//'... // avoid creating '//'...
} else if(base[base.length-1] != '/' && url[0] != '/'){ } else if(base[base.length-1] != '/' && url[0] != '/'){
return base + '/' + url res = base + '/' + url
} else { } else {
return base + url res = base + url
} }
} }
// get the actual path...
res = res.replace('${CACHE_DIR}', CACHE_DIR)
// XXX legacy support...
res = res.replace('.ImageGridCache', CACHE_DIR)
return res
} }

View File

@ -245,7 +245,7 @@ function loadFileImages(path, no_load_diffs){
// default locations... // default locations...
if(path == null){ if(path == null){
var base = normalizePath(CACHE_DIR) var base = normalizePath(CACHE_DIR_VAR)
var loader = loadLatestFile(base, var loader = loadLatestFile(base,
IMAGES_FILE_DEFAULT, IMAGES_FILE_DEFAULT,
IMAGES_FILE_PATTERN, IMAGES_FILE_PATTERN,
@ -253,7 +253,7 @@ function loadFileImages(path, no_load_diffs){
// explicit base dir... // explicit base dir...
} else if(!/\.json$/i.test(path)) { } else if(!/\.json$/i.test(path)) {
var base = normalizePath(path +'/'+ CACHE_DIR) var base = normalizePath(path +'/'+ CACHE_DIR_VAR)
var loader = loadLatestFile(base, var loader = loadLatestFile(base,
IMAGES_FILE_DEFAULT, IMAGES_FILE_DEFAULT,
IMAGES_FILE_PATTERN, IMAGES_FILE_PATTERN,
@ -283,7 +283,7 @@ function loadFileImages(path, no_load_diffs){
// NOTE: this will uses CACHE_DIR as the location if no name is given. // NOTE: this will uses CACHE_DIR as the location if no name is given.
function saveFileImages(name){ function saveFileImages(name){
var remove_diffs = (name == null) var remove_diffs = (name == null)
name = name == null ? normalizePath(CACHE_DIR +'/'+ Date.timeStamp()) : name name = name == null ? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp()) : name
if(window.dumpJSON == null){ if(window.dumpJSON == null){
showErrorStatus('Can\'t save to file.') showErrorStatus('Can\'t save to file.')
@ -292,11 +292,11 @@ function saveFileImages(name){
// remove the diffs... // remove the diffs...
if(remove_diffs){ if(remove_diffs){
$.each($.map(listDir(normalizePath(CACHE_DIR)), function(e){ $.each($.map(listDir(normalizePath(CACHE_DIR_VAR)), function(e){
return IMAGES_DIFF_FILE_PATTERN.test(e) ? e : null return IMAGES_DIFF_FILE_PATTERN.test(e) ? e : null
}), function(i, e){ }), function(i, e){
showStatusQ('removeing:', e) showStatusQ('removeing:', e)
removeFile(normalizePath(CACHE_DIR +'/'+ e)) removeFile(normalizePath(CACHE_DIR_VAR +'/'+ e))
}) })
IMAGES_UPDATED = [] IMAGES_UPDATED = []
} }
@ -312,7 +312,7 @@ function loadFileMarks(path){
var res = $.Deferred() var res = $.Deferred()
// default locations... // default locations...
if(path == null){ if(path == null){
var base = normalizePath(CACHE_DIR) var base = normalizePath(CACHE_DIR_VAR)
var loader = loadLatestFile(base, var loader = loadLatestFile(base,
MARKED_FILE_DEFAULT, MARKED_FILE_DEFAULT,
MARKED_FILE_PATTERN) MARKED_FILE_PATTERN)
@ -322,7 +322,8 @@ function loadFileMarks(path){
} else { } else {
path = normalizePath(path) path = normalizePath(path)
var base = path.split(CACHE_DIR)[0] var base = path.split(CACHE_DIR)[0]
base += '/'+ CACHE_DIR //base = normalizePath(path +'/'+ CACHE_DIR_VAR)
base = path +'/'+ CACHE_DIR
// XXX is this correct??? // XXX is this correct???
var loader = loadLatestFile(base, var loader = loadLatestFile(base,
@ -342,7 +343,7 @@ function loadFileMarks(path){
// Save image marks to file // Save image marks to file
function saveFileMarks(name){ function saveFileMarks(name){
name = name == null ? normalizePath(CACHE_DIR +'/'+ Date.timeStamp()) : name name = name == null ? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp()) : name
dumpJSON(name + '-marked.json', MARKED) dumpJSON(name + '-marked.json', MARKED)
} }
@ -424,7 +425,7 @@ function saveFileState(name, no_normalize_path){
name = name == null ? Date.timeStamp() : name name = name == null ? Date.timeStamp() : name
if(!no_normalize_path){ if(!no_normalize_path){
name = normalizePath(CACHE_DIR +'/'+ name) name = normalizePath(CACHE_DIR_VAR +'/'+ name)
// write .image_file only if saving data to a non-cache dir... // write .image_file only if saving data to a non-cache dir...
// XXX check if this is correct... // XXX check if this is correct...

View File

@ -121,21 +121,30 @@ button:hover {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.ribbon-set:empty:before,
.ribbon-set:empty:after { .ribbon-set:empty:after {
display: block; display: block;
position: absolute; position: absolute;
content: "No files loaded, press 'O' to load."; content: "Nothing loaded...";
top: 50%; top: 50%;
left: 0px; left: 0px;
width: 100%; width: 100%;
height: 20px; height: 20px;
margin-top: -10px; margin-top: -20px;
text-align: center; text-align: center;
vertical-align: center; vertical-align: center;
font-size: 20px; font-size: 18px;
font-weight: bold;
color: silver; color: silver;
opacity: 0.9; opacity: 0.9;
} }
.ribbon-set:empty:after {
content: "Press 'O' to load, 'F1' for help or '?' for keyboard mappings.";
margin-top: 5px;
font-weight: normal;
font-size: 16px;
opacity: 0.5;
}
/********************************************************** Ribbon ***/ /********************************************************** Ribbon ***/
.ribbon { .ribbon {
position: relative; position: relative;
@ -862,6 +871,7 @@ button:hover {
.light.viewer .overlay-block:hover .background:after { .light.viewer .overlay-block:hover .background:after {
color: black; color: black;
} }
.light.viewer .ribbon-set:empty:before,
.light.viewer .ribbon-set:empty:after { .light.viewer .ribbon-set:empty:after {
color: gray; color: gray;
} }

View File

@ -197,24 +197,36 @@ button:hover {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.ribbon-set:empty:before,
.ribbon-set:empty:after { .ribbon-set:empty:after {
display: block; display: block;
position: absolute; position: absolute;
content: "No files loaded, press 'O' to load.";
content: "Nothing loaded...";
top: 50%; top: 50%;
left: 0px; left: 0px;
width: 100%; width: 100%;
height: 20px; height: 20px;
margin-top: -10px; margin-top: -20px;
text-align: center; text-align: center;
vertical-align: center; vertical-align: center;
font-size: 20px; font-size: 18px;
font-weight: bold;
color: silver; color: silver;
opacity: 0.9; opacity: 0.9;
} }
.ribbon-set:empty:after {
content: "Press 'O' to load, 'F1' for help or '?' for keyboard mappings.";
margin-top: 5px;
font-weight: normal;
font-size: 16px;
opacity: 0.5;
}
@ -863,6 +875,7 @@ button:hover {
.light.viewer .overlay-block:hover .background:after { .light.viewer .overlay-block:hover .background:after {
color: black; color: black;
} }
.light.viewer .ribbon-set:empty:before,
.light.viewer .ribbon-set:empty:after { .light.viewer .ribbon-set:empty:after {
color: gray; color: gray;
} }