mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-30 02:40:08 +00:00
added status bar toggler and modes + some styling...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
ec78b20e13
commit
625e6a5537
@ -162,7 +162,7 @@ button:hover {
|
|||||||
-webkit-app-region: no-drag;
|
-webkit-app-region: no-drag;
|
||||||
}
|
}
|
||||||
.title-bar .button:hover {
|
.title-bar .button:hover {
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.title-bar .close:hover {
|
.title-bar .close:hover {
|
||||||
color: red;
|
color: red;
|
||||||
@ -234,7 +234,7 @@ button:hover {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: silver;
|
color: silver;
|
||||||
opacity: 0.9;
|
opacity: 0.9;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.viewer:empty:after,
|
.viewer:empty:after,
|
||||||
.ribbon-set:empty:after {
|
.ribbon-set:empty:after {
|
||||||
@ -1186,6 +1186,80 @@ stretching in width... */
|
|||||||
color: white;
|
color: white;
|
||||||
background: red;
|
background: red;
|
||||||
}
|
}
|
||||||
|
.overlay-info.full,
|
||||||
|
.overlay-info.minimal {
|
||||||
|
display: block;
|
||||||
|
/* XXX is this correct??? */
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
.overlay-info.minimal {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.overlay-info.minimal .full-only {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/* XXX REUSE: this is the same as selected/bookmarked image markers... */
|
||||||
|
.overlay-info .marked,
|
||||||
|
.overlay-info .marked:after,
|
||||||
|
.overlay-info .marked:before,
|
||||||
|
.overlay-info .bookmarked:after {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
content: "";
|
||||||
|
font-size: 0pt;
|
||||||
|
border: none;
|
||||||
|
margin: 4px;
|
||||||
|
margin-left: 6px;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
box-shadow: 2px 2px 20px -2px rgba(0, 0, 0, 0.7);
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: blue;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
/* tick... */
|
||||||
|
.overlay-info .marked {
|
||||||
|
background: transparent;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
.overlay-info .marked:before,
|
||||||
|
.overlay-info .marked:after {
|
||||||
|
position: absolute;
|
||||||
|
bottom: auto;
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-transform: rotate(-45deg) scaleY(1) scaleX(1);
|
||||||
|
-moz-transform: rotate(-45deg) scaleY(1) scaleX(1);
|
||||||
|
-o-transform: rotate(-45deg) scaleY(1) scaleX(1);
|
||||||
|
-ms-transform: rotate(-45deg) scaleY(1) scaleX(1);
|
||||||
|
transform: rotate(-45deg) scaleY(1) scaleX(1);
|
||||||
|
/* This prevents elements from aligning to sub-pixels...*/
|
||||||
|
/*
|
||||||
|
-webkit-transform-style: preserve-3d;
|
||||||
|
-moz-transform-style: preserve-3d;
|
||||||
|
transform-style: preserve-3d;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
.overlay-info .marked:before {
|
||||||
|
width: 3px;
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
.overlay-info .marked:after {
|
||||||
|
width: 12px;
|
||||||
|
height: 3px;
|
||||||
|
}
|
||||||
|
.overlay-info .bookmarked:after {
|
||||||
|
background: yellow;
|
||||||
|
}
|
||||||
|
.overlay-info .marked:not(.on),
|
||||||
|
.overlay-info .bookmarked:not(.on) {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
.overlay-info .marked:not(.on):before,
|
||||||
|
.overlay-info .marked:not(.on):after,
|
||||||
|
.overlay-info .bookmarked:not(.on):after {
|
||||||
|
background: gray;
|
||||||
|
}
|
||||||
/*************************************************** Global status ***/
|
/*************************************************** Global status ***/
|
||||||
.global-status {
|
.global-status {
|
||||||
display: block;
|
display: block;
|
||||||
@ -1208,7 +1282,7 @@ stretching in width... */
|
|||||||
width: 100px;
|
width: 100px;
|
||||||
margin-left: -50px;
|
margin-left: -50px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.up-indicator:after,
|
.up-indicator:after,
|
||||||
.down-indicator:after {
|
.down-indicator:after {
|
||||||
@ -1340,12 +1414,12 @@ stretching in width... */
|
|||||||
.global-mode-indicators .marks-visible,
|
.global-mode-indicators .marks-visible,
|
||||||
.context-mode-indicators .current-image-marked {
|
.context-mode-indicators .current-image-marked {
|
||||||
color: blue;
|
color: blue;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
text-shadow: rgba(0, 0, 0, 0.5) 0.1em 0.1em 0.4em, rgba(0, 0, 0, 0.5) 0.1em 0.1em;
|
text-shadow: rgba(0, 0, 0, 0.5) 0.1em 0.1em 0.4em, rgba(0, 0, 0, 0.5) 0.1em 0.1em;
|
||||||
}
|
}
|
||||||
.context-mode-indicators .current-image-bookmarked {
|
.context-mode-indicators .current-image-bookmarked {
|
||||||
color: yellow;
|
color: yellow;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
text-shadow: rgba(0, 0, 0, 0.5) 0.1em 0.1em 0.4em, rgba(0, 0, 0, 0.5) 0.1em 0.1em;
|
text-shadow: rgba(0, 0, 0, 0.5) 0.1em 0.1em 0.4em, rgba(0, 0, 0, 0.5) 0.1em 0.1em;
|
||||||
}
|
}
|
||||||
.global-mode-indicators .marked-only-visible .shown,
|
.global-mode-indicators .marked-only-visible .shown,
|
||||||
@ -1517,7 +1591,7 @@ progress:not(value)::-webkit-progress-bar {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
color: red;
|
color: red;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.progress-bar progress {
|
.progress-bar progress {
|
||||||
display: block;
|
display: block;
|
||||||
|
|||||||
@ -269,7 +269,7 @@ button:hover {
|
|||||||
-webkit-app-region: no-drag;
|
-webkit-app-region: no-drag;
|
||||||
}
|
}
|
||||||
.title-bar .button:hover {
|
.title-bar .button:hover {
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-bar .close:hover {
|
.title-bar .close:hover {
|
||||||
@ -357,7 +357,7 @@ button:hover {
|
|||||||
color: silver;
|
color: silver;
|
||||||
opacity: 0.9;
|
opacity: 0.9;
|
||||||
|
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.viewer:empty:after,
|
.viewer:empty:after,
|
||||||
.ribbon-set:empty:after {
|
.ribbon-set:empty:after {
|
||||||
@ -1048,6 +1048,85 @@ stretching in width... */
|
|||||||
background: red;
|
background: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.overlay-info.full,
|
||||||
|
.overlay-info.minimal {
|
||||||
|
display: block;
|
||||||
|
/* XXX is this correct??? */
|
||||||
|
z-index: 1000,
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay-info.minimal {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.overlay-info.minimal .full-only {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* XXX REUSE: this is the same as selected/bookmarked image markers... */
|
||||||
|
.overlay-info .marked,
|
||||||
|
.overlay-info .marked:after,
|
||||||
|
.overlay-info .marked:before,
|
||||||
|
.overlay-info .bookmarked:after {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
content: "";
|
||||||
|
font-size: 0pt;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
margin: 4px;
|
||||||
|
margin-left: 6px;
|
||||||
|
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
|
||||||
|
box-shadow: 2px 2px 20px -2px rgba(0,0,0,0.7);
|
||||||
|
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
|
background: blue;
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* tick... */
|
||||||
|
.overlay-info .marked {
|
||||||
|
background: transparent;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
.overlay-info .marked:before,
|
||||||
|
.overlay-info .marked:after {
|
||||||
|
position: absolute;
|
||||||
|
bottom: auto;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
.rotate(-45deg);
|
||||||
|
}
|
||||||
|
.overlay-info .marked:before {
|
||||||
|
width: 3px;
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
.overlay-info .marked:after {
|
||||||
|
width: 12px;
|
||||||
|
height: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.overlay-info .bookmarked:after {
|
||||||
|
background: yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay-info .marked:not(.on),
|
||||||
|
.overlay-info .bookmarked:not(.on) {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
.overlay-info .marked:not(.on):before,
|
||||||
|
.overlay-info .marked:not(.on):after,
|
||||||
|
.overlay-info .bookmarked:not(.on):after {
|
||||||
|
background: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************** Global status ***/
|
/*************************************************** Global status ***/
|
||||||
@ -1078,7 +1157,7 @@ stretching in width... */
|
|||||||
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.up-indicator:after,
|
.up-indicator:after,
|
||||||
.down-indicator:after {
|
.down-indicator:after {
|
||||||
@ -1217,13 +1296,13 @@ stretching in width... */
|
|||||||
.global-mode-indicators .marks-visible,
|
.global-mode-indicators .marks-visible,
|
||||||
.context-mode-indicators .current-image-marked {
|
.context-mode-indicators .current-image-marked {
|
||||||
color: blue;
|
color: blue;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
text-shadow: rgba(0,0,0,0.5) 0.1em 0.1em 0.4em,
|
text-shadow: rgba(0,0,0,0.5) 0.1em 0.1em 0.4em,
|
||||||
rgba(0,0,0,0.5) 0.1em 0.1em;
|
rgba(0,0,0,0.5) 0.1em 0.1em;
|
||||||
}
|
}
|
||||||
.context-mode-indicators .current-image-bookmarked {
|
.context-mode-indicators .current-image-bookmarked {
|
||||||
color: yellow;
|
color: yellow;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
text-shadow: rgba(0,0,0,0.5) 0.1em 0.1em 0.4em,
|
text-shadow: rgba(0,0,0,0.5) 0.1em 0.1em 0.4em,
|
||||||
rgba(0,0,0,0.5) 0.1em 0.1em;
|
rgba(0,0,0,0.5) 0.1em 0.1em;
|
||||||
}
|
}
|
||||||
@ -1422,7 +1501,7 @@ progress:not(value)::-webkit-progress-bar {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
color: red;
|
color: red;
|
||||||
cursor: hand;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.progress-bar progress {
|
.progress-bar progress {
|
||||||
display: block;
|
display: block;
|
||||||
|
|||||||
@ -2505,36 +2505,130 @@ var makeStateIndicatorItem = function(container, type, text){
|
|||||||
// XXX should we use this or makeStateIndicatorItem(..)???
|
// XXX should we use this or makeStateIndicatorItem(..)???
|
||||||
// ...investigate the features of the above...
|
// ...investigate the features of the above...
|
||||||
// - .attr('text')???
|
// - .attr('text')???
|
||||||
var makeExpandingInfoItem = function(container, cls, align){
|
var makeExpandingInfoItem = function(container, cls, align, full_only){
|
||||||
var e = $('<span>')
|
var e = $('<span>')
|
||||||
.addClass(cls + ' expanding-text ' + align)
|
.addClass(cls + ' expanding-text ' + align +' '+ (full_only && 'full-only'))
|
||||||
.append($('<span class="shown">'))
|
.append($('<span class="shown">'))
|
||||||
.append($('<span class="hidden">'))
|
.append($('<span class="hidden">'))
|
||||||
container.append(e)
|
container.append(e)
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
var makeInfoItem = function(container, cls, align){
|
var makeInfoItem = function(container, cls, align, full_only){
|
||||||
var e = $('<span>')
|
var e = $('<span>')
|
||||||
.addClass(cls +' '+ align)
|
.addClass(cls +' '+ align +' '+ (full_only && 'full_only'))
|
||||||
container.append(e)
|
container.append(e)
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Format:
|
var ImageStateIndicatorActions = actions.Actions({
|
||||||
// full:
|
updateStateIndicators: ['- Interface/',
|
||||||
// [ (12/123) DSC_1234.jpg GID:a1b2c3 T:2016-01-28 08:37:50 B M C ]
|
function(gid){
|
||||||
// or
|
gid = gid || this.current
|
||||||
// [ DSC_1234.jpg GID:a1b2c3 T:2016-01-28 08:37:50 B M C (12/123) ]
|
|
||||||
//
|
var that = this
|
||||||
// minimal (no background):
|
|
||||||
// [ (12/123) B M C ]
|
// make/get indicator containers...
|
||||||
// or
|
/*
|
||||||
// [ B M C (12/123) ]
|
var image = this.ribbons.viewer.find('.state-indicator-container.image-info')
|
||||||
//
|
if(image.length == 0){
|
||||||
// hidden:
|
image = makeStateIndicator('image-info')
|
||||||
// [ ]
|
.appendTo(this.ribbons.viewer)
|
||||||
//
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
var global = this.ribbons.viewer.find('.state-indicator-container.global-info')
|
||||||
|
if(global.length == 0){
|
||||||
|
//global = makeStateIndicator('global-info')
|
||||||
|
global = makeStateIndicator('global-info overlay-info')
|
||||||
|
|
||||||
|
var align = ''
|
||||||
|
var order = this.config['global-state-indicator-elements'].slice()
|
||||||
|
|
||||||
|
var i = order.indexOf('---')
|
||||||
|
// rearrange the tail section...
|
||||||
|
// NOTE: this is here as we need to push the floated
|
||||||
|
// right items in reverse order...
|
||||||
|
if(i >= 0){
|
||||||
|
order = order.concat(order.splice(i+1, order.length).reverse())
|
||||||
|
}
|
||||||
|
|
||||||
|
order.forEach(function(elem){
|
||||||
|
var full_only = that.config['global-state-indicator-elements-full-only'].indexOf(elem) >= 0
|
||||||
|
// spacer...
|
||||||
|
if(elem == '---'){
|
||||||
|
align = 'float-right'
|
||||||
|
|
||||||
|
// expanding indicators...
|
||||||
|
} else if(elem == 'gid' || elem == 'path'){
|
||||||
|
makeExpandingInfoItem(global, elem, align, full_only)
|
||||||
|
|
||||||
|
// simple indicators...
|
||||||
|
} else if(elem == 'index'){
|
||||||
|
makeInfoItem(global, elem, align, full_only)
|
||||||
|
|
||||||
|
// toggler indicators...
|
||||||
|
} else if(elem == 'bookmark' || elem == 'mark'){
|
||||||
|
makeInfoItem(global, elem+'ed', align, full_only)
|
||||||
|
.click(function(){
|
||||||
|
that['toggle'+elem.capitalize()]()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
global.appendTo(this.ribbons.viewer)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!gid){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// populate the info...
|
||||||
|
|
||||||
|
var img = this.images && gid in this.images && this.images[gid]
|
||||||
|
|
||||||
|
// gid..
|
||||||
|
global.find('.gid .shown').text(gid.slice(-6))
|
||||||
|
global.find('.gid .hidden').text(gid)
|
||||||
|
|
||||||
|
// path...
|
||||||
|
global.find('.path .shown').text(img && img.path || '---')
|
||||||
|
global.find('.path .hidden').text(img && img.path || '---')
|
||||||
|
|
||||||
|
// pos...
|
||||||
|
global.find('.index')
|
||||||
|
.text(
|
||||||
|
(this.data.getImageOrder('ribbon', gid)+1)
|
||||||
|
+'/'+
|
||||||
|
this.data.getImages(gid).len)
|
||||||
|
|
||||||
|
// NOTE: we are not using .toggleMark('?') and friends
|
||||||
|
// here to avoid recursion as we might be handling
|
||||||
|
// them here...
|
||||||
|
// ...this also simpler than handling '?' and other
|
||||||
|
// special toggler args in the handler...
|
||||||
|
var tags = this.data.getTags(gid)
|
||||||
|
|
||||||
|
// marks...
|
||||||
|
global.find('.marked')[
|
||||||
|
tags.indexOf('selected') < 0 ?
|
||||||
|
'removeClass'
|
||||||
|
: 'addClass']('on')
|
||||||
|
global.find('.bookmarked')[
|
||||||
|
tags.indexOf('bookmark') < 0 ?
|
||||||
|
'removeClass'
|
||||||
|
: 'addClass']('on')
|
||||||
|
}],
|
||||||
|
toggleStateIndicator: ['Interface/Toggle state indicator modes',
|
||||||
|
toggler.CSSClassToggler(
|
||||||
|
function(){
|
||||||
|
return this.ribbons.viewer.find('.state-indicator-container.global-info') },
|
||||||
|
function(){ return this.config['global-state-indicator-modes'] },
|
||||||
|
function(state){ this.config['global-state-indicator-mode'] = state }) ],
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
// XXX an alternative approach:
|
// XXX an alternative approach:
|
||||||
// - global status area
|
// - global status area
|
||||||
// - status bar for local status
|
// - status bar for local status
|
||||||
@ -2552,7 +2646,11 @@ var makeInfoItem = function(container, cls, align){
|
|||||||
//
|
//
|
||||||
// XXX Q: can title bar be used instead of global state indication???
|
// XXX Q: can title bar be used instead of global state indication???
|
||||||
// ...especially if we are indicating only crop...
|
// ...especially if we are indicating only crop...
|
||||||
// XXX
|
// XXX add styling:
|
||||||
|
// - element spacing
|
||||||
|
// - tip text
|
||||||
|
// - avoid multi-line -- scroll???
|
||||||
|
// XXX rename to status bar???
|
||||||
var ImageStateIndicator =
|
var ImageStateIndicator =
|
||||||
module.ImageStateIndicator = core.ImageGridFeatures.Feature({
|
module.ImageStateIndicator = core.ImageGridFeatures.Feature({
|
||||||
title: '',
|
title: '',
|
||||||
@ -2565,126 +2663,39 @@ module.ImageStateIndicator = core.ImageGridFeatures.Feature({
|
|||||||
],
|
],
|
||||||
|
|
||||||
config: {
|
config: {
|
||||||
'global-info-elements': [
|
'global-state-indicator-elements': [
|
||||||
'path',
|
// XXX should index be here or to the right???
|
||||||
'gid',
|
|
||||||
'---',
|
|
||||||
'index',
|
'index',
|
||||||
|
//'path',
|
||||||
|
'gid',
|
||||||
|
|
||||||
|
'---',
|
||||||
|
|
||||||
'mark',
|
'mark',
|
||||||
'bookmark',
|
'bookmark',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'global-state-indicator-elements-full-only': [
|
||||||
|
'gid',
|
||||||
|
],
|
||||||
|
|
||||||
|
'global-state-indicator-modes': [
|
||||||
|
'none',
|
||||||
|
'minimal',
|
||||||
|
'full',
|
||||||
|
],
|
||||||
|
'global-state-indicator-mode': null,
|
||||||
},
|
},
|
||||||
|
|
||||||
actions: actions.Actions({
|
actions: ImageStateIndicatorActions,
|
||||||
// XXX for some reason mark indicator clicking does not work in
|
|
||||||
// single image mode...
|
|
||||||
updateStateIndicators: ['- Interface/',
|
|
||||||
function(gid){
|
|
||||||
gid = gid || this.current
|
|
||||||
|
|
||||||
var that = this
|
|
||||||
|
|
||||||
// make/get indicator containers...
|
|
||||||
var image = this.ribbons.viewer.find('.state-indicator-container.image-info')
|
|
||||||
if(image.length == 0){
|
|
||||||
image = makeStateIndicator('image-info')
|
|
||||||
.appendTo(this.ribbons.viewer)
|
|
||||||
}
|
|
||||||
|
|
||||||
var global = this.ribbons.viewer.find('.state-indicator-container.global-info')
|
|
||||||
if(global.length == 0){
|
|
||||||
//global = makeStateIndicator('global-info')
|
|
||||||
global = makeStateIndicator('global-info overlay-info')
|
|
||||||
|
|
||||||
var align = ''
|
|
||||||
var order = this.config['global-info-elements'].slice()
|
|
||||||
|
|
||||||
var i = order.indexOf('---')
|
|
||||||
// rearrange the tail section...
|
|
||||||
// NOTE: this is here as we need to push the floated
|
|
||||||
// right items in reverse order...
|
|
||||||
if(i >= 0){
|
|
||||||
order = order.concat(order.splice(i+1, order.length).reverse())
|
|
||||||
}
|
|
||||||
|
|
||||||
order.forEach(function(elem){
|
|
||||||
// spacer...
|
|
||||||
if(elem == '---'){
|
|
||||||
align = 'float-right'
|
|
||||||
|
|
||||||
// expanding indicators...
|
|
||||||
} else if(elem == 'gid' || elem == 'path'){
|
|
||||||
makeExpandingInfoItem(global, elem, align)
|
|
||||||
|
|
||||||
// simple indicators...
|
|
||||||
} else if(elem == 'index'){
|
|
||||||
makeInfoItem(global, elem, align)
|
|
||||||
|
|
||||||
// toggler indicators...
|
|
||||||
} else if(elem == 'bookmark' || elem == 'mark'){
|
|
||||||
makeInfoItem(global, elem+'ed', align)
|
|
||||||
.click(function(){
|
|
||||||
that['toggle'+elem.capitalize()]()
|
|
||||||
})
|
|
||||||
// XXX use CSS for this...
|
|
||||||
.text(elem[0].toUpperCase())
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
global.appendTo(this.ribbons.viewer)
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!gid){
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// populate the info...
|
|
||||||
|
|
||||||
var img = this.images && gid in this.images && this.images[gid]
|
|
||||||
|
|
||||||
// gid..
|
|
||||||
global.find('.gid .shown').text(gid.slice(-6))
|
|
||||||
global.find('.gid .hidden').text(gid)
|
|
||||||
|
|
||||||
// path...
|
|
||||||
global.find('.path .shown').text(img && img.path || '---')
|
|
||||||
global.find('.path .hidden').text(img && img.path || '---')
|
|
||||||
|
|
||||||
// pos...
|
|
||||||
global.find('.index')
|
|
||||||
.text(
|
|
||||||
(this.data.getImageOrder('ribbon', gid)+1)
|
|
||||||
+'/'+
|
|
||||||
this.data.getImages(gid).len)
|
|
||||||
|
|
||||||
// NOTE: we are not using .toggleMark('?') and friends
|
|
||||||
// here to avoid recursion as we might be handling
|
|
||||||
// them here...
|
|
||||||
// ...this also simpler than handling '?' and other
|
|
||||||
// special toggler args in the handler...
|
|
||||||
var tags = this.data.getTags(gid)
|
|
||||||
|
|
||||||
// marks...
|
|
||||||
global.find('.marked')
|
|
||||||
[tags.indexOf('selected') < 0 ? 'removeClass' : 'addClass']('on')
|
|
||||||
// XXX STUB: add a css rule for visualising the above...
|
|
||||||
.css({
|
|
||||||
opacity: tags.indexOf('selected') < 0 ? '0.5' : '1',
|
|
||||||
})
|
|
||||||
global.find('.bookmarked')
|
|
||||||
[tags.indexOf('bookmark') < 0 ? 'removeClass' : 'addClass']('on')
|
|
||||||
// XXX STUB: add a css rule for visualising the above...
|
|
||||||
.css({
|
|
||||||
opacity: tags.indexOf('bookmark') < 0 ? '0.5' : '1',
|
|
||||||
})
|
|
||||||
}],
|
|
||||||
|
|
||||||
// XXX add toggler to toggle global image indicator (status bar) modes...
|
|
||||||
// XXX
|
|
||||||
}),
|
|
||||||
|
|
||||||
handlers: [
|
handlers: [
|
||||||
|
['start',
|
||||||
|
function(){
|
||||||
|
if(this.config['global-state-indicator-mode']){
|
||||||
|
this.toggleStateIndicator(this.config['global-state-indicator-mode'])
|
||||||
|
}
|
||||||
|
}],
|
||||||
[[
|
[[
|
||||||
'focusImage',
|
'focusImage',
|
||||||
'toggleBookmark',
|
'toggleBookmark',
|
||||||
|
|||||||
@ -219,9 +219,10 @@ module.GLOBAL_KEYBOARD = {
|
|||||||
},
|
},
|
||||||
I: {
|
I: {
|
||||||
default: 'showMetadata',
|
default: 'showMetadata',
|
||||||
shift: 'showMetadata: "current" "full"',
|
shift: 'toggleStateIndicator',
|
||||||
|
|
||||||
ctrl: 'toggleMark!: "ribbon"',
|
ctrl: 'toggleMark!: "ribbon"',
|
||||||
|
'ctrl+shift': 'showMetadata: "current" "full"',
|
||||||
|
|
||||||
'meta+alt': 'showDevTools',
|
'meta+alt': 'showDevTools',
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user