From d796fee5b7fbba7bf3f85704f1e4f0fa2fd7aa6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= Date: Sun, 2 Feb 2020 21:46:39 +0100 Subject: [PATCH] formatUnits: export .settings with the current configuration; call hook refresh only on changes --- src/formatUnits.js | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/formatUnits.js b/src/formatUnits.js index de9f6882..8ba8a159 100644 --- a/src/formatUnits.js +++ b/src/formatUnits.js @@ -6,6 +6,7 @@ const defaults = { coordSpacer: ', ', system: 'si' } +let settings = defaults const distanceUnits = { si: ['cm', 'm', 'km'], @@ -24,7 +25,8 @@ module.exports = { area: value => formatUnit('area')(value)(areaUnits[global.options.formatUnitsSystem || defaults.system]), coord: value => formatcoords(value).format(global.options.formatUnitsCoordFormat || defaults.coordFormat, { latLonSeparator: global.options.formatUnitsCoordSpacer || defaults.coordSpacer - }) + }), + settings } register_hook('options_form', def => { @@ -63,6 +65,26 @@ register_hook('options_form', def => { } }) -register_hook('options_save', def => { - call_hooks('format-units-refresh') +register_hook('options_save', data => { + let old = JSON.stringify(settings) + + settings.coordFormat = data.formatUnitsCoordFormat + settings.coordSpacer = data.formatUnitsCoordSpacer + settings.system = data.formatUnitsSystem + + if (old !== JSON.stringify(settings)) { + call_hooks('format-units-refresh') + } +}) + +register_hook('init', () => { + let old = JSON.stringify(settings) + + settings.coordFormat = global.options.formatUnitsCoordFormat || defaults.coordFormat + settings.coordSpacer = global.options.formatUnitsCoordSpacer || defaults.coordSpacer + settings.system = global.options.formatUnitsSystem || defaults.system + + if (old !== JSON.stringify(settings)) { + call_hooks('format-units-refresh') + } })