diff --git a/ui/base.js b/ui/base.js index b83752f1..b47fa4b3 100755 --- a/ui/base.js +++ b/ui/base.js @@ -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) diff --git a/ui/data.js b/ui/data.js index f51cec87..fb61fc30 100755 --- a/ui/data.js +++ b/ui/data.js @@ -996,8 +996,10 @@ function loadSettings(){ if(toggleSingleImageMode('?') == 'on'){ var w = SETTINGS['screen-images-single-image-mode'] - var p = SETTINGS['single-image-mode-proportions'] - toggleImageProportions(p) + 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') diff --git a/ui/keybindings.js b/ui/keybindings.js index 395d4754..35d69917 100755 --- a/ui/keybindings.js +++ b/ui/keybindings.js @@ -130,12 +130,14 @@ var KEYBOARD_CONFIG = { title: 'Single image mode', doc: 'To toggle between this and ribbon modes press Enter.', + /* 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() }), diff --git a/ui/setup.js b/ui/setup.js index 89001324..9cd9ca5b 100755 --- a/ui/setup.js +++ b/ui/setup.js @@ -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() })