From 82965b573641b156370737495099bc5f4761a754 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 9 Nov 2013 18:05:18 +0200 Subject: [PATCH] sliders can now be controlled by arrow keys --- doc/todo.txt | 1 - static/js/main.js | 10 +++++----- static/js/ui.js | 40 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 43 insertions(+), 8 deletions(-) diff --git a/doc/todo.txt b/doc/todo.txt index ae41efb..dc1a2ac 100644 --- a/doc/todo.txt +++ b/doc/todo.txt @@ -2,7 +2,6 @@ -> add a view log functionality -> add a previewer for snapshots -> add a previewer for movies --> increase the maximal number of threshold pixels (maybe express it in % as well) -> style scroll bars -> hint text next to section titles diff --git a/static/js/main.js b/static/js/main.js index a210093..b253910 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -132,10 +132,10 @@ function initUI() { }); /* sliders */ - makeSlider($('#brightnessSlider'), 0, 100, 0, null, 5, 0, '%'); - makeSlider($('#contrastSlider'), 0, 100, 0, null, 5, 0, '%'); - makeSlider($('#saturationSlider'), 0, 100, 0, null, 5, 0, '%'); - makeSlider($('#hueSlider'), 0, 100, 0, null, 5, 0, '%'); + makeSlider($('#brightnessSlider'), 0, 100, 2, null, 5, 0, '%'); + makeSlider($('#contrastSlider'), 0, 100, 2, null, 5, 0, '%'); + makeSlider($('#saturationSlider'), 0, 100, 2, null, 5, 0, '%'); + makeSlider($('#hueSlider'), 0, 100, 2, null, 5, 0, '%'); makeSlider($('#framerateSlider'), 1, 30, 0, [ {value: 1, label: '1'}, {value: 5, label: '5'}, @@ -157,7 +157,7 @@ function initUI() { makeSlider($('#streamingQualitySlider'), 0, 100, 0, null, 5, 0, '%'); makeSlider($('#imageQualitySlider'), 0, 100, 0, null, 5, 0, '%'); makeSlider($('#movieQualitySlider'), 0, 100, 0, null, 5, 0, '%'); - makeSlider($('#frameChangeThresholdSlider'), 0, 10000, 0, null, 3, 0, 'px'); + makeSlider($('#frameChangeThresholdSlider'), 0, 20000, 0, null, 3, 0, 'px'); makeSlider($('#noiseLevelSlider'), 0, 100, 0, null, 5, 0, '%'); /* text validators */ diff --git a/static/js/ui.js b/static/js/ui.js index b4d2d5c..67ab5e1 100644 --- a/static/js/ui.js +++ b/static/js/ui.js @@ -107,7 +107,7 @@ function makeSlider($input, minVal, maxVal, snapMode, ticks, ticksNumber, decima } function getPos() { - return parseInt(cursor.css('left')); + return parseInt(cursor.position().left * 100 / bar.width()); } function valToPos(val) { @@ -217,7 +217,43 @@ function makeSlider($input, minVal, maxVal, snapMode, ticks, ticksNumber, decima /* handle key events */ slider.keydown(function (e) { switch (e.which) { - // TODO + case 37: /* left */ + if (snapMode == 1) { /* strict snapping */ + // TODO implement me + } + else { + var step = (maxVal - minVal) / 200; + var val = Math.max(minVal, parseFloat($input.val()) - step); + if (decimals == 0) { + val = Math.floor(val); + } + + var origSnapMode = snapMode; + snapMode = 0; + $input.val(val).change(); + snapMode = origSnapMode; + } + + break; + + case 39: /* right */ + if (snapMode == 1) { /* strict snapping */ + // TODO implement me + } + else { + var step = (maxVal - minVal) / 200; + var val = Math.min(maxVal, parseFloat($input.val()) + step); + if (decimals == 0) { + val = Math.ceil(val); + } + + var origSnapMode = snapMode; + snapMode = 0; + $input.val(val).change(); + snapMode = origSnapMode; + } + + break; } }); -- 2.39.5