made image proportions change automatically depending on zoom level in single image mode, moved meaningless 1-9 bindings to ribbon mode only...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-06-08 21:32:22 +04:00
parent 6f05e8a633
commit 07415e244b
4 changed files with 45 additions and 13 deletions

View File

@ -981,7 +981,7 @@ function resetToOriginalImage(image){
/********************************************************* Zooming ***/
function fitNImages(n){
function fitNImages(n, fixed_proportions){
var image = getImage()
var w = image.outerWidth(true)
var h = image.outerHeight(true)

View File

@ -996,8 +996,10 @@ function loadSettings(){
if(toggleSingleImageMode('?') == 'on'){
var w = SETTINGS['screen-images-single-image-mode']
if(window.PROPORTIONS_RATIO_THRESHOLD == null){
var p = SETTINGS['single-image-mode-proportions']
toggleImageProportions(p)
}
} else {
var w = SETTINGS['screen-images-ribbon-mode']
toggleImageInfo(SETTINGS['image-info-ribbon-mode'] == 'on' ? 'on' : 'off')

View File

@ -130,12 +130,14 @@ var KEYBOARD_CONFIG = {
title: 'Single image mode',
doc: 'To toggle between this and ribbon modes press <b>Enter</b>.',
/*
F: doc('Toggle view proportions',
function(){
var mode = toggleImageProportions()
showStatus('Fitting image to:', mode + '...')
centerRibbons()
}),
*/
Esc: doc('Exit single image mode',
function(){
toggleSingleImageMode('off')
@ -226,6 +228,18 @@ var KEYBOARD_CONFIG = {
return false
}),
},
// zooming...
'#1': doc('Fit one image', function(){ fitNImages(1) }),
'#2': doc('Fit two images', function(){ fitNImages(2) }),
'#3': doc('Fit three images', function(){ fitNImages(3) }),
'#4': doc('Fit four images', function(){ fitNImages(4) }),
'#5': doc('Fit five images', function(){ fitNImages(5) }),
'#6': doc('Fit six images', function(){ fitNImages(6) }),
'#7': doc('Fit seven images', function(){ fitNImages(7) }),
'#8': doc('Fit eight images', function(){ fitNImages(8) }),
'#9': doc('Fit nine images', function(){ fitNImages(9) }),
},
@ -410,16 +424,6 @@ var KEYBOARD_CONFIG = {
// zooming...
'#1': doc('Fit one image', function(){ fitNImages(1) }),
'#2': doc('Fit two images', function(){ fitNImages(2) }),
'#3': doc('Fit three images', function(){ fitNImages(3) }),
'#4': doc('Fit four images', function(){ fitNImages(4) }),
'#5': doc('Fit five images', function(){ fitNImages(5) }),
'#6': doc('Fit six images', function(){ fitNImages(6) }),
'#7': doc('Fit seven images', function(){ fitNImages(7) }),
'#8': doc('Fit eight images', function(){ fitNImages(8) }),
'#9': doc('Fit nine images', function(){ fitNImages(9) }),
'-': doc('Zoom in', function(){ zoomOut() }),
'=': doc('Zoom out', function(){ zoomIn() }),

View File

@ -3,6 +3,13 @@
*
**********************************************************************/
// A threshold after which the image block ratio will be changed to
// 'fit-viewer' in single image mode...
//
// NOTE: if null this feature will be disabled.
var PROPORTIONS_RATIO_THRESHOLD = 1.5
/**********************************************************************
* Setup
@ -160,6 +167,25 @@ function setupDataBindings(viewer){
SETTINGS['screen-images-ribbon-mode'] = n
}
// update proportions...
if(window.PROPORTIONS_RATIO_THRESHOLD != null
&& toggleSingleImageMode('?') == 'on'){
var viewer = $('.viewer')
//var w = getVisibleImageSize('width')
var h = getVisibleImageSize('height')
//var W = viewer.innerWidth()
var H = viewer.innerHeight()
//var m = Math.min(W/w, H/h)
var m = H/h
if(m < PROPORTIONS_RATIO_THRESHOLD){
toggleImageProportions('fit-viewer')
} else {
toggleImageProportions('none')
}
}
// update previews...
updateImages()
})