mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-12-26 13:01:58 +00:00
more tweaking of dialogs, still a bit messy but appear to be full working + added image info in dialog...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
5c0741b99a
commit
5fb722d036
@ -222,7 +222,8 @@ $(function(){
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// we have an image file...
|
// we have an image file...
|
||||||
if((DATA_ATTR + '_BASE_URL') in localStorage){
|
if((DATA_ATTR + '_BASE_URL') in localStorage
|
||||||
|
&& !/.[\/\\]*/.test(localStorage[DATA_ATTR + '_BASE_URL'])){
|
||||||
BASE_URL = localStorage[DATA_ATTR + '_BASE_URL']
|
BASE_URL = localStorage[DATA_ATTR + '_BASE_URL']
|
||||||
|
|
||||||
var loading = statusNotify(loadDir(BASE_URL))
|
var loading = statusNotify(loadDir(BASE_URL))
|
||||||
|
|||||||
@ -80,6 +80,7 @@ var KEYBOARD_CONFIG = {
|
|||||||
}),
|
}),
|
||||||
Esc: doc('Close dialog',
|
Esc: doc('Close dialog',
|
||||||
function(){
|
function(){
|
||||||
|
//getOverlay($('.viewer')).trigger('close')
|
||||||
hideOverlay($('.viewer'))
|
hideOverlay($('.viewer'))
|
||||||
return false
|
return false
|
||||||
}),
|
}),
|
||||||
@ -573,7 +574,10 @@ var KEYBOARD_CONFIG = {
|
|||||||
default: doc('Toggle image info display',
|
default: doc('Toggle image info display',
|
||||||
function(){ toggleImageInfo() }),
|
function(){ toggleImageInfo() }),
|
||||||
shift: doc('Show current image info',
|
shift: doc('Show current image info',
|
||||||
function(){ toggleImageInfoDrawer() }),
|
function(){
|
||||||
|
showImageInfo()
|
||||||
|
//toggleImageInfoDrawer()
|
||||||
|
}),
|
||||||
alt: doc('Toggle inline image info display',
|
alt: doc('Toggle inline image info display',
|
||||||
function(){
|
function(){
|
||||||
toggleInlineImageInfo()
|
toggleInlineImageInfo()
|
||||||
|
|||||||
@ -20,6 +20,14 @@ body {
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
}
|
}
|
||||||
|
input,
|
||||||
|
button {
|
||||||
|
border: solid silver 1px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
button:hover {
|
||||||
|
box-shadow: 0px 0px 7px 0px black;
|
||||||
|
}
|
||||||
/************************************************************** UI ***/
|
/************************************************************** UI ***/
|
||||||
.title-bar {
|
.title-bar {
|
||||||
display: block;
|
display: block;
|
||||||
@ -840,14 +848,31 @@ body {
|
|||||||
.light.viewer .overlay-block .background {
|
.light.viewer .overlay-block .background {
|
||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
.light.viewer .overlay-block:hover .background:after {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
.gray.viewer,
|
.gray.viewer,
|
||||||
.gray.viewer .overlay-block .background {
|
.gray.viewer .overlay-block .background {
|
||||||
background: #333;
|
background: #333;
|
||||||
}
|
}
|
||||||
|
.gray.viewer .overlay-block .dialog {
|
||||||
|
background: #555;
|
||||||
|
}
|
||||||
|
.light.viewer .overlay-block:hover .background:after {
|
||||||
|
color: silver;
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
.dark.viewer,
|
.dark.viewer,
|
||||||
.dark.viewer .overlay-block .background {
|
.dark.viewer .overlay-block .background {
|
||||||
background: #0a0a0a;
|
background: #0a0a0a;
|
||||||
}
|
}
|
||||||
|
.dark.viewer .overlay-block .dialog {
|
||||||
|
background: #333;
|
||||||
|
}
|
||||||
|
.light.viewer .overlay-block:hover .background:after {
|
||||||
|
color: gray;
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
.large.viewer:not(.single-image-mode) .current.image {
|
.large.viewer:not(.single-image-mode) .current.image {
|
||||||
border-width: 3px;
|
border-width: 3px;
|
||||||
}
|
}
|
||||||
@ -897,6 +922,17 @@ body {
|
|||||||
.overlay-block .background {
|
.overlay-block .background {
|
||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
}
|
}
|
||||||
|
.overlay-block:hover .background:after {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
content: 'Click background to close.';
|
||||||
|
height: auto;
|
||||||
|
width: auto;
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
color: white;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
.overlay-block .dialog {
|
.overlay-block .dialog {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
min-height: 50px;
|
min-height: 50px;
|
||||||
@ -909,6 +945,23 @@ body {
|
|||||||
vertical-align: center;
|
vertical-align: center;
|
||||||
box-shadow: 0px 5px 50px 0px black;
|
box-shadow: 0px 5px 50px 0px black;
|
||||||
}
|
}
|
||||||
|
/* tables in dialogs... */
|
||||||
|
.overlay-block .dialog table {
|
||||||
|
color: white;
|
||||||
|
font-size: small;
|
||||||
|
-moz-user-select: auto;
|
||||||
|
-webkit-user-select: auto;
|
||||||
|
-o-user-select: auto;
|
||||||
|
-ms-user-select: auto;
|
||||||
|
user-select: auto;
|
||||||
|
}
|
||||||
|
.overlay-block .dialog table tr td:first-child {
|
||||||
|
text-align: right;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.overlay-block .dialog table tr td:last-child {
|
||||||
|
color: silver;
|
||||||
|
}
|
||||||
/************************************************************ Help ***/
|
/************************************************************ Help ***/
|
||||||
/* XXX make this more generic, and not just for the keyboard... */
|
/* XXX make this more generic, and not just for the keyboard... */
|
||||||
/* this is for sliding stuff */
|
/* this is for sliding stuff */
|
||||||
|
|||||||
@ -74,6 +74,15 @@ body {
|
|||||||
margin: 0px;
|
margin: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
button {
|
||||||
|
border: solid silver 1px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
button:hover {
|
||||||
|
box-shadow: 0px 0px 7px 0px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************** UI ***/
|
/************************************************************** UI ***/
|
||||||
@ -834,16 +843,35 @@ body {
|
|||||||
.light.viewer .overlay-block .background {
|
.light.viewer .overlay-block .background {
|
||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
.light.viewer .overlay-block .dialog {
|
||||||
|
}
|
||||||
|
.light.viewer .overlay-block:hover .background:after {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
.gray.viewer,
|
.gray.viewer,
|
||||||
.gray.viewer .overlay-block .background {
|
.gray.viewer .overlay-block .background {
|
||||||
background: #333;
|
background: #333;
|
||||||
}
|
}
|
||||||
|
.gray.viewer .overlay-block .dialog {
|
||||||
|
background: #555;
|
||||||
|
}
|
||||||
|
.light.viewer .overlay-block:hover .background:after {
|
||||||
|
color: silver;
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
.dark.viewer,
|
.dark.viewer,
|
||||||
.dark.viewer .overlay-block .background {
|
.dark.viewer .overlay-block .background {
|
||||||
background: #0a0a0a;
|
background: #0a0a0a;
|
||||||
}
|
}
|
||||||
|
.dark.viewer .overlay-block .dialog {
|
||||||
|
background: #333;
|
||||||
|
}
|
||||||
|
.light.viewer .overlay-block:hover .background:after {
|
||||||
|
color: gray;
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.large.viewer:not(.single-image-mode) .current.image {
|
.large.viewer:not(.single-image-mode) .current.image {
|
||||||
@ -893,6 +921,20 @@ body {
|
|||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.overlay-block:hover .background:after {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
content: 'Click background to close.';
|
||||||
|
height: auto;
|
||||||
|
width: auto;
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
|
||||||
|
color: white;
|
||||||
|
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.overlay-block .dialog {
|
.overlay-block .dialog {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@ -912,6 +954,22 @@ body {
|
|||||||
box-shadow: 0px 5px 50px 0px black;
|
box-shadow: 0px 5px 50px 0px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* tables in dialogs... */
|
||||||
|
|
||||||
|
.overlay-block .dialog table {
|
||||||
|
color: white;
|
||||||
|
font-size: small;
|
||||||
|
|
||||||
|
.user-select(auto);
|
||||||
|
}
|
||||||
|
.overlay-block .dialog table tr td:first-child {
|
||||||
|
text-align: right;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.overlay-block .dialog table tr td:last-child {
|
||||||
|
color: silver;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************ Help ***/
|
/************************************************************ Help ***/
|
||||||
|
|||||||
57
ui/ui.js
57
ui/ui.js
@ -350,7 +350,7 @@ function showInOverlay(root, data){
|
|||||||
|
|
||||||
dialog
|
dialog
|
||||||
.append(data)
|
.append(data)
|
||||||
.one('click', function(){
|
.on('click', function(){
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
})
|
})
|
||||||
overlay.find('.content')
|
overlay.find('.content')
|
||||||
@ -358,6 +358,9 @@ function showInOverlay(root, data){
|
|||||||
overlay.trigger('close')
|
overlay.trigger('close')
|
||||||
hideOverlay(root)
|
hideOverlay(root)
|
||||||
})
|
})
|
||||||
|
.on('close accept', function(){
|
||||||
|
//hideOverlay(root)
|
||||||
|
})
|
||||||
.append(container)
|
.append(container)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,10 +381,11 @@ function hideOverlay(root){
|
|||||||
|
|
||||||
/************************************************ Standard dialogs ***/
|
/************************************************ Standard dialogs ***/
|
||||||
|
|
||||||
|
var _alert = alert
|
||||||
function alert(){
|
function alert(){
|
||||||
var res = $.Deferred()
|
var res = $.Deferred()
|
||||||
showInOverlay($('.viewer'), $('<span/>')
|
showInOverlay($('.viewer'), $('<span/>')
|
||||||
.text(Array.apply(null, arguments).join(' ')))
|
.html(Array.apply(null, arguments).join(' ')))
|
||||||
.addClass('alert dialog')
|
.addClass('alert dialog')
|
||||||
.on('close accept', function(){
|
.on('close accept', function(){
|
||||||
res.resolve()
|
res.resolve()
|
||||||
@ -390,17 +394,18 @@ function alert(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function prompt(message, dfl){
|
var _prompt = prompt
|
||||||
|
function prompt(message, dfl, btn){
|
||||||
|
btn = btn == null ? 'OK' : btn
|
||||||
var root = $('.viewer')
|
var root = $('.viewer')
|
||||||
var res = $.Deferred()
|
var res = $.Deferred()
|
||||||
|
|
||||||
var form = $('<div>'+
|
var form = $('<div>'+
|
||||||
'<div class="text"/>'+
|
'<div class="text">'+message+'</div>'+
|
||||||
'<input type="text" tabindex=1/>'+
|
'<input type="text" tabindex=1/>'+
|
||||||
'<button tabindex=2>Done</button>'+
|
'<button tabindex=2>'+btn+'</button>'+
|
||||||
'</div>')
|
'</div>')
|
||||||
form.find('.text')
|
|
||||||
.text(message)
|
|
||||||
var overlay = showInOverlay(root, form)
|
var overlay = showInOverlay(root, form)
|
||||||
.addClass('prompt dialog')
|
.addClass('prompt dialog')
|
||||||
.on('close', function(){
|
.on('close', function(){
|
||||||
@ -408,7 +413,6 @@ function prompt(message, dfl){
|
|||||||
})
|
})
|
||||||
.on('accept', function(){
|
.on('accept', function(){
|
||||||
res.resolve(form.find('input').attr('value'))
|
res.resolve(form.find('input').attr('value'))
|
||||||
hideOverlay(root)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
form.find('button')
|
form.find('button')
|
||||||
@ -421,7 +425,9 @@ function prompt(message, dfl){
|
|||||||
input
|
input
|
||||||
.focus()
|
.focus()
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
input.attr('value', dfl == null ? '' : dfl)
|
input
|
||||||
|
.attr('value', dfl == null ? '' : dfl)
|
||||||
|
.select()
|
||||||
}, 100)
|
}, 100)
|
||||||
|
|
||||||
return res
|
return res
|
||||||
@ -434,6 +440,35 @@ function confirm(){
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************ Specific dialogs ***/
|
||||||
|
|
||||||
/*********************************************************************/
|
function showImageInfo(){
|
||||||
// vim:set ts=4 sw=4 nowrap :
|
var gid = getImageGID(getImage())
|
||||||
|
var r = getRibbonIndex(getRibbon())
|
||||||
|
var data = IMAGES[gid]
|
||||||
|
var orientation = data.orientation
|
||||||
|
orientation = orientation == null ? 0 : orientation
|
||||||
|
var flipped = data.flipped
|
||||||
|
flipped = flipped == null ? '' : ', flipped '+flipped+'ly'
|
||||||
|
var order = DATA.order.indexOf(gid)
|
||||||
|
var name = data.path.split('/').pop()
|
||||||
|
|
||||||
|
alert('<div>'+
|
||||||
|
'<h2>"'+ name +'"</h2>'+
|
||||||
|
|
||||||
|
'<table>'+
|
||||||
|
'<tr><td>GID: </td><td>'+ gid +'</td></tr>'+
|
||||||
|
'<tr><td>Path: </td><td>"'+ data.path +'"</td></tr>'+
|
||||||
|
'<tr><td>Orientation: </td><td>'+ orientation +'°'+flipped+'</td></tr>'+
|
||||||
|
'<tr><td>Order: </td><td>'+ order +'</td></tr>'+
|
||||||
|
'<tr><td>Position (ribbon): </td><td>'+ (DATA.ribbons[r].indexOf(gid)+1) +
|
||||||
|
'/'+ DATA.ribbons[r].length +'</td></tr>'+
|
||||||
|
'<tr><td>Position (global): </td><td>'+ (order+1) +'/'+ DATA.order.length +'</td></tr>'+
|
||||||
|
'</table>'+
|
||||||
|
'</div>')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* vim:set ts=4 sw=4 nowrap : */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user