sliders can now be controlled by arrow keys
authorCalin Crisan <ccrisan@gmail.com>
Sat, 9 Nov 2013 16:05:18 +0000 (18:05 +0200)
committerCalin Crisan <ccrisan@gmail.com>
Sat, 9 Nov 2013 16:05:18 +0000 (18:05 +0200)
doc/todo.txt
static/js/main.js
static/js/ui.js

index ae41efb774aaec6cefa6f7da2ad79a9c9c7182a7..dc1a2ac9cd5c1592fb2a687ef1e1885360fd188f 100644 (file)
@@ -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
index a210093f9936eb6b61d68783493e4349ac1f3b96..b253910d47bae266e6432618a959c8fdf1846e4c 100644 (file)
@@ -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 */
index b4d2d5cda618cddfcd89a315213c3053bc6ad416..67ab5e1e9ba7cd55f517864d55f59b48ed0259b2 100644 (file)
@@ -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;
         }
     });