]> www.vanbest.org Git - motioneye-debian/commitdiff
the number of rows when laying out frames is now configurable as a preference
authorCalin Crisan <ccrisan@gmail.com>
Sun, 4 Dec 2016 15:53:56 +0000 (17:53 +0200)
committerCalin Crisan <ccrisan@gmail.com>
Sun, 4 Dec 2016 15:53:56 +0000 (17:53 +0200)
motioneye/prefs.py
motioneye/static/css/main.css
motioneye/static/js/main.js
motioneye/templates/main.html

index d43ab3df73021d20ab1e4cb159b4e27963430ce0..0b3a8c1090ef6cae58ddb5be2e30a395da21ee98 100644 (file)
@@ -26,6 +26,7 @@ _PREFS_FILE_NAME = 'prefs.json'
 _DEFAULT_PREFS = {
     'layout_columns': 3,
     'fit_frames_vertically': True,
+    'layout_rows': 1,
     'framerate_factor': 1,
     'resolution_factor': 1
 }
index 52e3601aae9d258a209693f70ceb199cabd4b1be..4ad129e24035d3e449c3db03341e58917e48bcaa 100644 (file)
@@ -1228,7 +1228,6 @@ img.camera {
     display: block;
     transition: opacity 0.2s ease;
     opacity: 1;
-    min-height: 160px;
 }
 
 img.camera.error,
index 32e37fabaf1c97898485160275751297ea2b90b0..016b2f1f2ec3b11d1f19853c45e97527f11407af 100644 (file)
@@ -16,6 +16,7 @@ var pageContainer = null;
 var overlayVisible = false;
 var layoutColumns = 1;
 var fitFramesVertically = false;
+var layoutRows = 1;
 
 
     /* Object utilities */
@@ -734,6 +735,11 @@ function initUI() {
         updateLayout();
         savePrefs();
     });
+    $('#layoutRowsSlider').change(function () {
+        layoutRows = parseInt(this.value);
+        updateLayout();
+        savePrefs();
+    });
     $('#framerateDimmerSlider').change(function () {
         framerateFactor = parseInt(this.value) / 100;
         savePrefs();
@@ -972,7 +978,8 @@ function setLayoutColumns(columns) {
 function updateLayout() {
     if (fitFramesVertically) {
         /* make sure the height of each camera
-         * is smaller than the height of the screen */
+         * is smaller than the height of the screen
+         * divided by the number of layout rows */
         
         /* find the tallest frame */
         var frames = getCameraFrames();
@@ -1005,7 +1012,7 @@ function updateLayout() {
         }
     
         var windowHeight = $(window).height() - heightOffset;
-        var ratio = maxHeightFrame.width() / maxHeightFrame.height();
+        var ratio = maxHeightFrame.width() / maxHeightFrame.height() / layoutRows;
         var width = parseInt(ratio * windowHeight * columns);
         var maxWidth = windowWidth;
         
@@ -1604,8 +1611,9 @@ function configUiValid() {
 
 function prefsUi2Dict() {
     var dict = {
-        'layout_columns': $('#layoutColumnsSlider').val(),
+        'layout_columns': parseInt($('#layoutColumnsSlider').val()),
         'fit_frames_vertically': $('#fitFramesVerticallySwitch')[0].checked,
+        'layout_rows': parseInt($('#layoutRowsSlider').val()),
         'framerate_factor': $('#framerateDimmerSlider').val() / 100,
         'resolution_factor': $('#resolutionDimmerSlider').val() / 100
     };
@@ -1616,6 +1624,7 @@ function prefsUi2Dict() {
 function dict2PrefsUi(dict) {
     $('#layoutColumnsSlider').val(dict['layout_columns']);
     $('#fitFramesVerticallySwitch')[0].checked = dict['fit_frames_vertically'];
+    $('#layoutRowsSlider').val(dict['layout_rows']);
     $('#framerateDimmerSlider').val(dict['framerate_factor'] * 100);
     $('#resolutionDimmerSlider').val(dict['resolution_factor'] * 100);
 
@@ -1625,6 +1634,7 @@ function dict2PrefsUi(dict) {
 function applyPrefs(dict) {
     setLayoutColumns(dict['layout_columns']);
     fitFramesVertically = dict['fit_frames_vertically']
+    layoutRows = dict['layout_rows'];
     framerateFactor = dict['framerate_factor'];
     resolutionFactor = dict['resolution_factor'];
     
index 9a7cdf0ee569fdc8251ca8d5d415fbb11b739ae4..d7de62afac5b247ed6d1d328702d5208fd4c45de 100644 (file)
                         <td class="settings-item-value"><input type="text" class="range styled prefs" id="layoutColumnsSlider"></td>
                         <td><span class="help-mark" title="configures the number of columns used to lay out the camera frames">?</span></td>
                     </tr>
-                    <tr class="settings-item" min="1" max="4" snap="1" ticksnum="4" decimals="0" id="fitFramesVerticallyRow">
+                    <tr class="settings-item">
                         <td class="settings-item-label"><span class="settings-item-label">Fit Frames Vertically</span></td>
                         <td class="settings-item-value"><input type="checkbox" class="styled prefs" id="fitFramesVerticallySwitch"></td>
                         <td><span class="help-mark" title="controls whether frame sizes can be reduced to vertically fit the window or not">?</span></td>
                     </tr>
+                    <tr class="settings-item" min="1" max="4" snap="1" ticksnum="4" decimals="0" id="layoutRows" depends="fitFramesVertically">
+                        <td class="settings-item-label"><span class="settings-item-label">Layout Rows</span></td>
+                        <td class="settings-item-value"><input type="text" class="range styled prefs" id="layoutRowsSlider"></td>
+                        <td><span class="help-mark" title="configures the number of rows used to lay out the camera frames">?</span></td>
+                    </tr>
                     <tr class="settings-item" min="0" max="100" snap="2" ticksnum="6" decimals="0">
                         <td class="settings-item-label"><span class="settings-item-label">Frame Rate Dimmer</span></td>
                         <td class="settings-item-value"><input type="text" class="range styled prefs" id="framerateDimmerSlider"></td>