From b255cf190cfc1efe05428f073234b1575ca9049e Mon Sep 17 00:00:00 2001 From: azivner Date: Sat, 9 Jun 2018 10:34:51 -0400 Subject: [PATCH] fixes for zoom factor setting --- src/public/javascripts/dialogs/options.js | 9 ++++- src/public/javascripts/services/zoom.js | 40 ++++++++++++----------- src/public/stylesheets/style.css | 2 +- src/views/index.ejs | 26 ++++----------- 4 files changed, 36 insertions(+), 41 deletions(-) diff --git a/src/public/javascripts/dialogs/options.js b/src/public/javascripts/dialogs/options.js index 4a9e692b0..acddb65a7 100644 --- a/src/public/javascripts/dialogs/options.js +++ b/src/public/javascripts/dialogs/options.js @@ -4,6 +4,7 @@ import protectedSessionHolder from '../services/protected_session_holder.js'; import server from '../services/server.js'; import infoService from "../services/info.js"; import zoomService from "../services/zoom.js"; +import utils from "../services/utils.js"; const $dialog = $("#options-dialog"); const $tabs = $("#options-tabs"); @@ -50,8 +51,14 @@ addTabHandler((function() { const $html = $("html"); function optionsLoaded(options) { - $zoomFactorSelect.val(options.zoomFactor); $themeSelect.val(options.theme); + + if (utils.isElectron()) { + $zoomFactorSelect.val(options.zoomFactor); + } + else { + $zoomFactorSelect.prop('disabled', true); + } } $themeSelect.change(function() { diff --git a/src/public/javascripts/services/zoom.js b/src/public/javascripts/services/zoom.js index de0875f02..9eb45d61c 100644 --- a/src/public/javascripts/services/zoom.js +++ b/src/public/javascripts/services/zoom.js @@ -2,26 +2,15 @@ import server from "./server.js"; import utils from "./utils.js"; import optionsInitService from "./options_init.js"; -function decreaseZoomFactor() { - const webFrame = require('electron').webFrame; +const MIN_ZOOM = 0.5; +const MAX_ZOOM = 2.0; - if (webFrame.getZoomFactor() > 0.2) { - const webFrame = require('electron').webFrame; - const newZoomFactor = webFrame.getZoomFactor() - 0.1; - - webFrame.setZoomFactor(newZoomFactor); - - server.put('options/zoomFactor/' + newZoomFactor); - } +async function decreaseZoomFactor() { + await setZoomFactorAndSave(getCurrentZoom() - 0.1); } -function increaseZoomFactor() { - const webFrame = require('electron').webFrame; - const newZoomFactor = webFrame.getZoomFactor() + 0.1; - - webFrame.setZoomFactor(newZoomFactor); - - server.put('options/zoomFactor/' + newZoomFactor); +async function increaseZoomFactor() { + await setZoomFactorAndSave(getCurrentZoom() + 0.1); } function setZoomFactor(zoomFactor) { @@ -32,9 +21,22 @@ function setZoomFactor(zoomFactor) { } async function setZoomFactorAndSave(zoomFactor) { - setZoomFactor(zoomFactor); + if (!utils.isElectron()) { + return; + } - await server.put('options/zoomFactor/' + zoomFactor); + if (zoomFactor >= MIN_ZOOM && zoomFactor <= MAX_ZOOM) { + setZoomFactor(zoomFactor); + + await server.put('options/zoomFactor/' + zoomFactor); + } + else { + console.log(`Zoom factor ${zoomFactor} outside of the range, ignored.`); + } +} + +function getCurrentZoom() { + return require('electron').webFrame.getZoomFactor(); } if (utils.isElectron()) { diff --git a/src/public/stylesheets/style.css b/src/public/stylesheets/style.css index 27c2f147e..09e9cd908 100644 --- a/src/public/stylesheets/style.css +++ b/src/public/stylesheets/style.css @@ -371,7 +371,7 @@ div.ui-tooltip { display: flex; } -.btn:not(.btn-primary) { +.btn:not(.btn-primary):not(.btn-danger) { border-color: #bbb; background-color: #eee; } diff --git a/src/views/index.ejs b/src/views/index.ejs index 6ca38bbe6..6bdc39543 100644 --- a/src/views/index.ejs +++ b/src/views/index.ejs @@ -342,6 +342,8 @@
  • About Trilium
  • +

    Settings on this options tab are saved automatically after each change.

    +
    @@ -353,28 +355,12 @@
    - - + + +
    -

    Settings on this options tab are saved automatically after each change.

    +

    Zooming can be controlled with CTRL-+ and CTRL-= shortcuts as well.